Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 05/29/13 in Posts

  1. rAthena is now back online following a period of extended downtime from May 8th ~ May 28th. This was caused by the unexpected failures of both hard drives the servers were running on. We do realize that the situation could have been better handled, and the Development Team is internally discussing the possibility of finding someone to help with administrative duties. I ask that all posts regarding the downtime remain in this topic, and be constructive in nature. While we can't change what happened, we can take steps to ensure that this does not happen again. We sincerely apologize for any inconvenience this may have caused, and thank you all for your patience.
    9 points
  2. File Name: [rAthena] & [eAthena] cell_noskill.patch File Submitter: Anakid File Submitted: 09 May 2013 File Category: Source Modifications Content Author: Anakid This mod won't allow you to cast any skills on the selected cells. This mod helps alot if you have pvp maps like UFC Arena and other PvP Colosseum. Tested/Compatible with rAthena SVN r17325 and eAthena SVN. Sample Script: - script Function#noskill -1,{OnWhisperGlobal:OnInit: setcell "prontera",147,174,164,162,cell_noskill,1; end;} Click here to download this file
    2 points
  3. roBrowser is an open source project that try to port Ragnarök Online in the browser using web technologies (javascript, HTML5, WebGL). It's goal for now is to match the official client, and in future add custom features on its core. As it use web technologies, it will allow to use it in all OS, and in future should work in all ables system that can render a web page. Get the source (Thanks to report all bugs) If you like roBrowser, you can help me improving it or even thinking about doing a donation ? Screenshots Some usefulls links : Source code Installation guide WebSite API Guide Forum Demo (Yep there is even a demo if you want to try it).
    1 point
  4. Borf (the author of BrowEdit Mapping Software) is in need of developers for his new BrowEdit 2.0 project. He is looking for skilled developers who are comfortable working in environments of C++, Open GL & User Interfaces to help him with his new BrowEdit 2.0 project. Please submit an application via a message to my rAthena forum name Syouji if you are interested in being a part of his team. This is a volunteered based project. BrowEdit 2.0 SVN Log: http://svnlog.borf.info/browedit.log New Feature Possibilities for BrowEdit 2.0 Real-Time Rendering of Changes Made Multi-User Share Mapping (Multiple users working on the same map in real-time) Proper Lightmap Calculations Across Models Faster & More Efficient Under a Java Build Re-Designed Edit Modes Quick Easy Copy/Paste Everything (E.g - Models/Lightbulbs/Effects/Sounds/Terrain) External Tool - Lightmaps Exporting to Other Tools for Easy Editing (E.g - Blender) Application Details - Name - Age - Time Zone - Programming Languages you're skilled with - Any portfolio work you've made (optional) - Contact Email BrowEdit 2.0 Preview
    1 point
  5. If anyone want to join this project, tell me or tell to Yommy -= xDiffPatcher =- Download xDiffPatcher This is our Next-Generation Diff Patcher, it requires a new style of diff file called xDiff, (xml based) each xdiff is specific for a single ragexe, and will not work on any other ragexe date. xDiff files are created with the xDiffGen software below. There is a recent build in the directory : xDiffPatcher\bin\Debug Source is included if anyone wants to improve somethings --------------------------------------------------- All the following software need to use php language. Please install it on your computer. This is CommandLine PHP, Do not attempt to run these scripts in a web browser We would recommend using Subversion since these projects are frequently updated with new features. - Linux : sudo apt-get install php5 - Windows : install this http://windows.php.net/download/#php-5.4 Open your control panel and search : Edit environment variable for your account In this Windows, the second part (title System variables), search the variable Path Enter your PHP directory at the end, including ';' before (e.g. ;C:\php) Now search your php.ini files Uncomment the line extension=php_sockets.dll (you have to remove the char ';') -= xDiffGen 2 =- Download xDiffGen2 To use that software, you have to put the decrypted exe in the Clients folder and open the file DiffGen.bat Then select the first option (0 - Local client folder), select your exe and the xDiff will be create in the Diffs folder some patches also extract some data (msgstringtables, packet_lengths, etc), these are put into the Extracted_Data folder Options 2 and 3 do not fully work as intended, since gravity are distributing new clients with Themida protection /sadface Options M and F are used to test a single patch against all clients to detect when some patterns fails (again not working with themida clients) -= Packet Parser =- Download PacketParser To use that software you have to place ws2_pp.dll from the dev folder, into your RO folder. Then hex edit your Ragexe.exe : search ws2_32.dll and replace the both occurrences by ws2_pp.dll Next you should extract the packetlength file using Packet Extract, And place it into packet parser\data\packet Next, open the parser.bat, choose Live Network Capture, choose your packet length tables file, and choose full_info Then open your Ragexe.exe (if done correct you will be prompted to use PacketParser) Enjoy -= Packet Extract =- Download this is a subscript of PacketParser above All you have to do here is to place your Ragexe.exe in the folder clients, with a pattern like this : 2013-05-22Ragexe.exe Open Packet_Extract.bat, select your exe Your Packet Data Length is now in the plens folder All credits to Yommy I just worked personally on the xDiffGen2 patches. We are open for anyone who wants to help with any of these projects. they are designed to be edited and hacked about with, and hope you can find some use with them
    1 point
  6. missing packet_db to make it work. 2012-03-07aragexe and 2012-04-17aragexe 0x0365,18,bookingregreq,2:4:6 use packet 0x0365 2012-04-10aragexe use packet 0x091D 0x091D,18,bookingregreq,2:4:6 2012-05-03aragexe to 2012-06-27aragexe use packet 0x0861 0x0861,18,bookingregreq,2:4:6 2012-07-02aragexe to 2012-07-16aragexe user packet 0x0879 0x0879,18,bookingregreq,2:4:6 Search System Making a Listing Use the "/recruit" command to bring up the party booking creation window. Choose desired classes, level, leveling area and roles. A maximum of 6 different classes can be selected at once. After hitting OK, a new "Searching" window will appear. To modify your listing, hit the modify button. Once you are finished putting together your party, hit the cancel button to close the listing. Finding a Party Click on the "Booking" button underneath the character infobox or use the "/booking" command. Input desired parameters and hit "Search". A list of available parties will appear, and you can contact the person who created the listing.
    1 point
  7. @Patskie You forgot a ; set .@zeny, 1000000 // 1,000,000 zeny and you need to check the zeny to prevent negative value. prontera,155,184,5 script Healer2 909,{ if (@t2 > gettimetick(2)) end; set .@t, 3; // Set Delay Seconds. set .@zeny, 1000000; // 1,000,000 zeny if (BaseLevel > 99) { if ( Zeny < .@zeny ) { dispbottom "I need "+ .@zeny +" Zeny to buff you !"; end; } set Zeny, Zeny - .@zeny; } skilleffect 28,32000; skilleffect 34,0; skilleffect 29,0; percentheal 100,100; sc_start SC_BLESSING,360000,10; sc_start SC_INCREASEAGI,360000,10; if (.@t) set @t2, gettimetick(2)+.@t; while ( .@t ) { dispbottom "You can use me again in "+ .@t +" second"+ ( ( .@t > 1 ) ? "s" : "" ) +"."; sleep2 1000 ; set .@t, .@t - 1; } end; }
    1 point
  8. Got this one somewhere before. Just try; Index: src/map/battle.c =================================================================== --- src/map/battle.c (revision 16822) +++ src/map/battle.c (working copy) @@ -1222,6 +1222,10 @@ damage += damage*sd->weapon_atk_rate[sd->weapontype1]/100;; } } + + if (flag&4 && sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_WIZARD) + damage += damage*150/100; + return damage; } @@ -1833,6 +1837,8 @@ case AC_DOUBLE: case MA_DOUBLE: skillratio += 10*(skill_lv-1); + if (sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE) + skillratio += 150; break; case AC_SHOWER: case MA_SHOWER: @@ -2044,6 +2050,8 @@ break; case PA_SHIELDCHAIN: skillratio += 30*skill_lv; + if (sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_HUNTER) + skillratio += 200; break; case WS_CARTTERMINATION: i = 10 * (16 - skill_lv); @@ -3016,6 +3024,7 @@ if( tstatus->race != RC_DEMIHUMAN ) cardfix=cardfix*(100+sd->right_weapon.addrace[RC_NONDEMIHUMAN])/100; + if( flag.lh ) { cardfix_=cardfix_*(100+sd->left_weapon.addrace[tstatus->race])/100; Index: src/map/skill.c =================================================================== --- src/map/skill.c (revision 16822) +++ src/map/skill.c (working copy) @@ -6075,9 +6075,17 @@ location = EQP_ACC; break; } - + + if (sd && sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_ROGUE) { + if (pc_search_inventory(sd, 7139) == -1) { + clif_skill_fail(sd,skillid,USESKILL_FAIL_NEED_ITEM,0); + break; + } else { + pc_delitem(sd, 7139, 1, 0, 1, LOG_TYPE_CONSUME); + } + } else //Special message when trying to use strip on FCP [Jobbie] - if( sd && skillid == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD]) + if( sd && skillid == ST_FULLSTRIP && tsc && tsc->data[SC_CP_WEAPON] && tsc->data[SC_CP_HELM] && tsc->data[SC_CP_ARMOR] && tsc->data[SC_CP_SHIELD] ) { clif_gospel_info(sd, 0x28); break; Index: src/map/status.c =================================================================== --- src/map/status.c (revision 16822) +++ src/map/status.c (working copy) @@ -2985,6 +2985,7 @@ sd->hprecov_rate = 0; if(sd->sprecov_rate < 0) sd->sprecov_rate = 0; + // Anti-element and anti-race if((skill=pc_checkskill(sd,CR_TRUST))>0) @@ -3000,6 +3001,13 @@ sd->magic_addrace[RC_DRAGON]+=skill; sd->subrace[RC_DRAGON]+=skill; } + + if(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_STAR) { + sd->right_weapon.addrace[RC_BOSS] += 100; + sd->left_weapon.addrace[RC_BOSS] += 100; + sd->right_weapon.addele[ELE_HOLY] += 100; + sd->left_weapon.addele[ELE_HOLY] += 100; + } if(sc->count){ if(sc->data[SC_CONCENTRATE]) { //Update the card-bonus data @@ -4182,6 +4190,8 @@ vit -= sc->data[SC_STOMACHACHE]->val1; if(sc->data[SC_KYOUGAKU]) vit -= sc->data[SC_KYOUGAKU]->val2; + if(sc->data[SC_SPIRIT] && (sc->data[SC_SPIRIT]->val2 == SL_WIZARD || sc->data[SC_SPIRIT]->val2 == SL_SAGE)) + vit += ((TBL_PC*)bl)->status.int_ / 5; return (unsigned short)cap_value(vit,0,USHRT_MAX); } @@ -4688,7 +4698,9 @@ flee2 += sc->data[SC_WHISTLE]->val3*10; if(sc->data[SC__UNLUCKY]) flee2 -= flee2 * sc->data[SC__UNLUCKY]->val2 / 100; - + if(sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_STAR) + flee2 += 10; + return (short)cap_value(flee2,10,SHRT_MAX); } static defType status_calc_def(struct block_list *bl, struct status_change *sc, int def) { @@ -5417,6 +5429,8 @@ maxhp -= sc->data[SC_MYSTERIOUS_POWDER]->val1 / 100; if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 2) maxhp += 500; + if(sc->data[SC_SPIRIT] && (sc->data[SC_SPIRIT]->val2 == SL_WIZARD || sc->data[SC_SPIRIT]->val2 == SL_SAGE)) + maxhp += ((TBL_PC*)bl)->status.base_level * 200; return cap_value(maxhp,1,UINT_MAX); }
    1 point
  9. check this. my be fix your problem. http://rathena.org/board/topic/82721-2012-04-10aragexe-client-weediff-plugins-please/#entry199531
    1 point
  10. prontera,155,184,5 script Healer 909,{ set .@t, 3; // Set Delay Seconds. if (@t2 > gettimetick(2)) end; OnTouch: skilleffect 28,32000; skilleffect 34,0; skilleffect 29,0; percentheal 100,100; sc_start SC_BLESSING,360000,10; sc_start SC_INCREASEAGI,360000,10; if (.@t) set @t2, gettimetick(2)+.@t; while ( .@t ) { dispbottom "You can use me again in "+ .@t +" second"+ ( ( .@t > 1 ) ? "s" : "" ) +"."; sleep2 1000 ; set .@t, .@t - 1; } end; }
    1 point
  11. 1 point
  12. if( (sfd = make_connection(host2ip("stats.rathena.org"),(uint16)25421,true,10) ) == -1 ) { Lol the more you know! I installed the modifications and replaced stats.rathena.org with localhost to test... uhm seems to be working fine. Thanks Akinari and fresh prince. Edit: If you're having this problem on an older version of rAthena and you don't want to update. You only need modify these files. Where + is add the line and - is remove the line. trunk/src/common/socket.h // Function prototype declaration int make_listen_bind(uint32 ip, uint16 port); -int make_connection(uint32 ip, uint16 port, bool silent); +int make_connection(uint32 ip, uint16 port, bool silent, int timeout); int realloc_fifo(int fd, unsigned int rfifo_size, unsigned int wfifo_size); int realloc_writefifo(int fd, size_t addition); int WFIFOSET(int fd, size_t len); trunk/src/map/chrif.c } chrif_state = 0; - char_fd = make_connection(char_ip, char_port,false); + char_fd = make_connection(char_ip, char_port,false,10); if (char_fd == -1)//Attempt to connect later. [Skotlex] return 0; trunk/src/char/char.c int sfd;/* stat server fd */ RFIFOSKIP(fd, 2);/* we skip first 2 bytes which are the 0x3008, so we end up with a buffer equal to the one we send */ - if( (sfd = make_connection(host2ip("stats.rathena.org"),(uint16)25421,true) ) == -1 ) { + if( (sfd = make_connection(host2ip("stats.rathena.org"),(uint16)25421,true,10) ) == -1 ) { RFIFOSKIP(fd, RFIFOW(fd,2) );/* skip this packet */ break;/* connection not possible, we drop the report */ } return 0; ShowInfo("Attempt to connect to login-server...\n"); - login_fd = make_connection(login_ip, login_port, false); + login_fd = make_connection(login_ip, login_port, false,10); if (login_fd == -1) { //Try again later. [Skotlex] login_fd = 0; trunk/src/common/socket.c-void setsocketopts(int fd) -{ - struct timeval timeout; +void setsocketopts(int fd,int delay_timeout){ int yes = 1; // reuse fix - timeout.tv_sec = 10; - timeout.tv_usec = 0; #if !defined(WIN32) // set SO_REAUSEADDR to true, unix only. on windows this option causesMy server didn't have a lot of this so I just replaced the void. opt.l_linger = 0; // Do not care if( sSetsockopt(fd, SOL_SOCKET, SO_LINGER, (char*)&opt, sizeof(opt)) ) ShowWarning("setsocketopts: Unable to set SO_LINGER mode for connection #%d!\n", fd); + } + if(delay_timeout){ + struct timeval timeout; + timeout.tv_sec = delay_timeout; + timeout.tv_usec = 0; + + if (sSetsockopt (fd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout,sizeof(timeout)) < 0) + ShowError("setsocketopts: Unable to set SO_RCVTIMEO timeout for connection #%d!\n"); + if (sSetsockopt (fd, SOL_SOCKET, SO_SNDTIMEO, (char *)&timeout,sizeof(timeout)) < 0) + ShowError("setsocketopts: Unable to set SO_SNDTIMEO timeout for connection #%d!\n"); } } return -1; } - setsocketopts(fd); + setsocketopts(fd,0); set_nonblocking(fd, 1); #ifndef MINICORE return -1; } - setsocketopts(fd); + setsocketopts(fd,0); set_nonblocking(fd, 1); server_address.sin_family = AF_INET; return fd; } -int make_connection(uint32 ip, uint16 port, bool silent) { +int make_connection(uint32 ip, uint16 port, bool silent,int timeout) { struct sockaddr_in remote_address; int fd; int result; return -1; } - setsocketopts(fd); + setsocketopts(fd,timeout); remote_address.sin_family = AF_INET; remote_address.sin_addr.s_addr = htonl(ip);This for me was actually the Setsocketopts above make_connection.
    1 point
  13. Tried in client 2012-04-10Ragexe;
    1 point
  14. My 2-teams battleground (5vs5) based idea: At the center of the map, will be a Fort, with an Emperium (fortified). The objective of the groups is to gain control of the Fort (destroying the Emperium) and remains with the Fort for 10 minutes. If the team remains with the Fort for 10 minutes, they win. It's complicated to gain control of the Fort, the Emperium will cause massive damage around it (5x5 cells, attack 300~1000, 1 attack per second, only on enemies). Each team has a Minor Fort, that create monsters to help. Created monsters has a view area of entire map and will attack the first enemy at sight (including the Emperium or enemy monsters). Staying near of your Minor Fort, it will recover 10% of HP and SP per second and if someone dies, they will be warped to their Minor Fort and can't move for (BaseLevel / 3) seconds. If someone go to the enemy's Minor Fort, they will receive massive damage (9999 per second). Map: bat_c01 (a copy) Example: Emperium: Vit 5, Int 80, Def 50, MDEF 70, massive damage around 5x5 cells with an attack of 300~1000, 1 attack per second, 600.000 HP, holy, angel, large. Spawned monsters: Zenorc sprite, Vit 1, Int 50, Str 50, Attack 200~500, 2 attacks per second, Bash, Heal ~1500 (heal allies, like Drosera), Meteor Assault, change target, holy, medium, angel, 5.800 HP.
    1 point
  15. Hello rAthena Community, I and a friend have translate the msg_athena.conf into German because Snow and/or Lemongrass need to much time. Here is the msg_athena.conf. I Hope you like it^^ -Review this please,thanks. German: Ich und eine Freund haben zusammen die msg_athena.conf ins Deutsche übersetzt, weil wir finden das Snow und/oder Lemongrass zu viel Zeit brauchen. Hier ist also die msg_athena.conf. Ich hoffe ihr mögt es.^^ Kommentiert es bitte, danke. File: http://pastebin.com/whJNG0aL Translate by Rynbef and Bakka. Rynbef~
    1 point
  16. http://rathena.org/board/topic/81994-help-how-to-edit-my-homunculus-s-level/ http://rathena.org/board/topic/80057-homunculus-max-level/
    1 point
  17. sometimes you put all in correct path but please double check all the last file you edit maybe you forgot some (,) or other integer is missing or excess. I experience that also before .
    1 point
  18. but i use this.. my solution is i change the regular homunculus lvl to 150 then it not continue to lvluping 600+
    1 point
  19. Hmm.. I realize the benefit of a Diff file, it's very easy to apply the patch, but the major downside for me is, I don't know how to create a diff file and if I want to change the client then I have to wait for a next version diff to be released by Diff maker, such as ai4rei.. And some people may want to customize their language into their natives too Location: Press Esc --> Video Configuration Korean: ÀüÀå Hex: C0FCC0E5 (near 4E6F4374726C00006974656D00000000736B696C6C) Suggestion: More [4D6F7265] Location: Press Esc --> Sound Configuration Korean: ÆÄƼ¿ø ã±â ¾Ë¶÷ Hex: N/A (msgstringtable) Suggestion: Use 3D Effect (?) Inventory Window: Location: Press Alt+E Korean: Àåºñ Hex: N/A (msgstringtable) Suggestion: Equip Korean: °³ÀÎ Hex: N/A (msgstringtable) Suggestion: Fav Korean: ¾ÆÀÌÅÛ ¹ö¸®±â Àá±Ý Hex: N/A (msgstringtable) Suggestion: Item Lock Party Window: Location: Press Alt+Z Korean: ÆÄƼ°á¼º Hex: N/A (msgstringtable) Suggestion: Create Party Location: Press Alt+Z --> Create Party Korean: ÆÄƼ À̸§ µî·Ï Hex: N/A (msgstringtable) Suggestion: Party Name Location: Party Window Korean: ÆÄƼÃÊ´ë Hex: N/A (msgstringtable) Suggestion: Add to Party Location: Party Window Korean: ÆÄƼŻÅð Hex: N/A (msgstringtable) Suggestion: Leave Party Location: Party Window --> Add to Party Korean: ÃÊ´ëÇÒ Ä³¸¯ÅÍ À̸§ Hex: N/A (msgstringtable) Suggestion: Type character's name Location: Party Window --> Add to Party --> Press OK without typing anything Korean: ij¸¯Å͸íÀ» ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. Hex: N/A (msgstringtable) Suggestion: Please type the character's name you want to invite to this party. Location: Press Alt+Z --> Create Party --> Press OK without typing anything Korean: ÆÄƼÀ̸§À» ÀÔ·ÂÇÏ¼Å¾ß ÇÕ´Ï´Ù. Hex: N/A (msgstringtable) Suggestion: Please insert the name of your party.
    1 point
×
×
  • Create New...