132 Commits

Author SHA1 Message Date
Lance
26500644dd * Optional macro MEMSET_TURBO for faster low-level memory initializations.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-27 06:38:17 +00:00
skotlex
b7ef9a3032 - Updated vc-project files to compile with the new int_homun files.
- Hopefully fixed the crash when using charsave_method = 1


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8302 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-15 21:25:52 +00:00
skotlex
6abed14141 - Updated mob_db.sql to current mob_db.txt data.
- Some cleaning on chrif.c
- The char-server will allow off-line character saves when said char is tagged for final-save (this is the scenario when the char-map reconnect).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7722 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-18 02:41:10 +00:00
DracoRPG
15dd140846 Orn's and Albator's Homunculus system, finally, YAY!!
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7706 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-17 00:15:33 +00:00
skotlex
8580fff963 - Fixed Cart Termination's damage.
- Added the missing check to remove character from memory when logging out and using the charsave_method which saves character map-server-side.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7631 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-12 13:44:42 +00:00
skotlex
cd8587dc4d - Fixed clif_parse not checking for func_parse before sending data to the connected clients. This in turn required various code-rewrites in:
- duel related messaging functions (added clif targets DUEL/DUEL_WOS).
- intif whisper to gm function
- day/night timers
- Rewrote the parse_console function to stop allocating/deallocating memory on every call.
- Modified chrif_charselectreq to receive the player's ip among the data.
- Added function clif_disp_message, which is the same as clif_disp_onlyself, except you can specify the targets (it sends a guild-chat packet)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7617 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-11 20:16:55 +00:00
skotlex
ef4320d056 - Login-sql server will no longer change an account's state to "7" when banning a player. This should fix being able to use @ban to clear out a @blocked player. Players will now be identified as banned only through the banned-until timestamp.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7604 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-10 20:44:10 +00:00
skotlex
924284f1b9 - Added login-char packet 0x2737. Sets all characters offline (login-server side).
- Cleaned up char server "set all offline" implementation to remove only characters from the map-server from which the packet was invoked. It will also now correctly kick/set-character offline from the map-server if they are connected.
- Cleaned up the char-sql reconnect code. It no longer sets everyone to offline.
- Removed setting "kick_on_disconnect", servers will no longer kick characters out when there's a disconnection. Instead, it'll use the most logical approach: Set characters into a "lost" state when there's a disconnection, on reconnect, resent the list of online-characters, do a sync, and let the difference be characters to be removed. Also, the map-server won't release character data until it's saved and the ack returns from the char-server to prevent data loss (all this data is resent on reconnect for saving anyway).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7600 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-10 19:41:25 +00:00
skotlex
46fc93df01 - Some cleaning of the Sage endow skills.
- Added a check to free a character from memory when changing map servers.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7571 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-07 18:21:49 +00:00
skotlex
e0afdded8b - Okay, added a chrif_save_ack packet to the char-server so now the map server will know once a character was "final saved", and only then the character will be removed from memory. On char-server reconnection, all chars that are in final-save state are resent to save (if they are still in memory, it's because the ack hasn't gotten here from the char-server). This should effectively block all dupe problems due to heavy inter-server lag, however as it's untested, it currently prints some debug messages when people are saved and then removed from memory. Need testers so this can be debugged and merged to stable!
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7568 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-07 16:28:41 +00:00
skotlex
c7d866a034 - Made the map server send list of characters online to the char-server on reconnection regardless of "kick_on_disconnect" setting, as otherwise, a temporary disconnection would make the char-server tag all characters offline and refuse to save them afterwards.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7399 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-29 20:25:54 +00:00
skotlex
eba9a34f0b - Fixed guild storage being "eternally in use" if you quit/logout before closing it.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7395 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-29 15:53:30 +00:00
skotlex
f014b5db0d - Some indentation corrections.
- Ending SC_CLOAK/SC_HIDE/SC_CHASEWALK will now trigger ontouch npcs.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7394 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-29 15:27:48 +00:00
skotlex
fe7e59e6b8 - Map server will now resent the whole list of online characters to char-server on reconnect when the kick_on_disconnect setting is active.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7365 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-28 01:00:31 +00:00
skotlex
6d354a4b06 - Cleaned up the IP sync code to...
- Use charif_sendallwos rather than manually altering the buffers of each server.
- Use the id variable for identifying current char-server instead of scanning the connected servers for it (it's doing the same work twice)
- Added config setting sync_ip_interval to specify how long to go before updating ip. Defaults to 0 (disabled)
- Sending ip update packets will only be done when the ip changed now.
- Removed dns_str variables, and now char_ip_str/login_ip_str/map_ip_str will hold the unresolved dns address (as these variables have no use otherwise)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7360 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-27 17:02:59 +00:00
skotlex
4f1911ae63 - Fixed indentation on int_pet.c (how did it got messed up?)
- Added mapflag "loadevent", now load-map script events will ONLY trigger on maps with this mapflag on, rather than every map.
- High Jump can now be used in all versus maps.
- Added Kaite's opt3 value, taken from jA
- Added state dirty == 2 to storages. Signals when a storage was sent for final saving. Said storage is removed from memory after the ack from the char-server, and they are sent to save if the map/char servers reconnect before the act arrives. In short: they are guaranteed to be saved after a char logs out.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7358 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-27 14:54:01 +00:00
Lance
50ebb5e959 * [Fixed]:
- Compilation warnings and errors.
[Improved]: 
- Changed and moved IP sync status messages to elaborate more.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7290 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-22 08:50:36 +00:00
skotlex
4d27716bf1 - Tested and fixed resolve_hostbyname.
- Applied said function around most of the code where needed. Removed includes for the OS/network system pretty much from every file (our socket.c file should handle this)
- Added clif_getip_long, which returns the ip as a long. Prevents having to include the files to define the int_addr structure in all files that include clif.h
- Made the GM mute request bypass the manner_system setting.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7285 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-22 01:12:52 +00:00
skotlex
847d853332 - Added function parse_hostbyname() which takes a hostname and a char[4]. The hostname is resolved to an ip, whose individual components are stored in char[], the return value of the function is the inet_addr result of the lookup (or returns 0 when failed). Meant to be used in the rest of the code without the need to do socket/network related includes.
- Applied use of parse_hostbyname() in chrif.c to fix compilation errors.
- status_percent_change will now account for when the target's max hp/sp is above INT_MAX.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7281 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-21 18:30:39 +00:00
Lance
007cebae3b - and the documentation
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7276 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-21 10:57:42 +00:00
Lance
59d0fde84a * [Added]:
- DNS (WAN) sync for those pesky disconnections (dynamic ip renewal). 

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7275 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-21 10:55:26 +00:00
skotlex
ba4de26c1e - Removed the mysterious array of two of char_dat (char/sql server), replaced it with a static structure.
- Added function char_loadName to extract the character name of a given ID.
- Fixed fame-list updating crashing char-sql server when the given char-id just got into ranking.
- Sorry I didn't check if it compiles cleanly because I don't have sql here <.< (am gonna test it in a second, though)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7248 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-19 14:45:26 +00:00
skotlex
a14314da55 - Altered a bit how status_set_viewdata behaves in regards to Wedding/Xmas options.
- Added back OPTION_XMAS, but the actual value is missing!
- Corrected chrif_save so that the player is not set offline on map-change.
- Added change-look support in pc_setoption when specifying OPTION_XMAS
- Fixed clif_parse_RemoveOption removing all options instead of just Falcon/Cart/Peco


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7183 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-15 18:56:54 +00:00
skotlex
166265be07 - Fixed skill_unitsetting using layout->count for the for instead of group->count
- Added SC_INCDEXRATE/SC_INCAGIRATE. NPC_POWERUP/NPC_AGIUP now correctly increase dex/agi by 40% per level.
- Fixed char-sql server not deleting character variables


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6984 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-05 17:59:28 +00:00
skotlex
e62f6cc8f9 - Added variable other_mapserver_count to chrif.c which holds total count of connected map-servers. By using this we prevent sending unnecessary packets to the char-server when there's no more map-servers connected.
- Affected packets are whispers, announces, party messages, guild messages.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6955 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-03 15:48:46 +00:00
Lance
b3bf8b2464 [Fixed]:
- Suppressed compilation warning in chrif.c 

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6906 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-01 02:59:03 +00:00
Lance
8686c24f90 [Fixed]:
- Guys can't go across map-servers :( Thanks to Buuyo^

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6905 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-01 01:55:35 +00:00
skotlex
92255a237b - Moved the JOB_* defines from map.h to mmo.h, update char.c to use them.
- Added function char_read_fame_list for famelist reading. Invoked it on init, and made it be sent automatically to connecting map servers.
- Removed request to reload fame list when map server connects.
- Some cleaning of the fame-list reading code.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6895 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-31 20:08:40 +00:00
skotlex
053931237b - Some cleaning of the fame-update code, fixing a logic bug which made the ranking list fail to display the correct ranker names.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6891 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-31 15:07:37 +00:00
DracoRPG
d94ebfdd53 I'm still here!
Rewrote fame ranking lists

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6764 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-26 01:35:17 +00:00
Lance
23a13eb1fc Dangling pointer~
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6430 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-01 10:19:49 +00:00
Lance
7acd437879 * Fixed lack of initialization in chrif_authreq causing crashes in chrif_authok.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6420 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-01 01:55:17 +00:00
Lance
020b35d68a * Using malloc for memory allocations that doesn't need to be pre-initialized.
* Eliminated initializations for pointers returned by calloc.
* Moved grfio_final to do_init since it's not used after server boot.
* Optimized scripts to return CONSTSTR instead of allocating memory just to return a constant string. Some buildin functions still need work. 
* Disabled graph since it doesn't work yet.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6355 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-29 04:00:19 +00:00
skotlex
bec2797d52 - All GMs will be sent to the char server through packet 0x2aff now.
- Made mob_searchname compare versus sprite, name and jname now.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6263 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-25 02:51:01 +00:00
skotlex
dc8d892b45 - Added an Info message when pinging the SQL servers.
- Changed line terminators back to *nix on map.c because otherwise it's impossible to run a diff between the stable and trunk versions of the file.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6043 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-13 18:10:08 +00:00
skotlex
254d003229 - Fixed various include lines in the map server (of the type <include "nullpo.h"> -> <include "../common/nullpo.h">)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5985 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-11 14:24:46 +00:00
skotlex
19cd080eb9 - Added missing limits.h to chrif.c
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5780 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-28 03:23:59 +00:00
Lance
5d286a9b08 * GCC on Cygwin still complaining, resorted to including limits.h in malloc.h
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5770 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 13:33:11 +00:00
Lance
14fe8c03e8 * Refixed the fix with a constant list for Win32 users - limits.h (imported from MSVC)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5769 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 13:23:53 +00:00
codemaster
71fc788c75 Fixed a problem in chrif.c where USHRT_MAX was undefined. [Codemaster]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5766 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 10:20:26 +00:00
skotlex
f2d2edd1cd - Changed status_point/skill_point to unsigned short. Adjusted the code as necessary to prevent overflows.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5762 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 01:24:34 +00:00
skotlex
cee086fece - Fixed handling of the char_gm_read config for packet 0x2af7 (reloadgmdb)
- Added battle_config debuff_on_logout which removes Asura's SP regen delay and Strip-Equip effects on logout when set to yes (default).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5644 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-17 14:09:54 +00:00
skotlex
6e2b036285 - Shield Reflect is now passed through Devotion as well.
- Devotion won't work on guildmates now (only party-members)
- Devoted to characters lose the devotion effect when the Crusader is at less than 25% Hp.
- Changed Gravity Field's element to earth so that it may hit hidden chars.
- chrif_scdata_save will not send a save scdata request when the char has been already tagged as in the final save.
- Cleaned up status_change_start a bit to make status_change_end calls on a separate switch, before it is cancelled by the switch about "sc already active". If it fails because the sc is already active, now it returns 1.
- Cleaned SC_SUITON a bit to get rid of that compile warning.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5589 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-13 18:50:35 +00:00
skotlex
db973e2998 - The rate passed to status_change_start must now be in 0->10000 range.
- Added macros sc_start and sc_start4 to simplify invocation of status_change_start.
- Cleaned the active guild skills, requirements moved to skill_check_require, should now be usable by non-players as well (pets/mobs).
- Updated skill_cast_db time info. Magnum's time2 is skill-block time, St. Recovery/ Cure's time2 is the confuse/blind duration, added NPC_POWERUP/NPC_AGIUP durations, Napalm Vulcan's time2 is curse length, and most of Tarot Card's effects last time2 as well.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5454 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-04 01:54:56 +00:00
skotlex
8a67a7cf35 - Fame list size is now defined by MAX_FAME_LIST constant (mmo.h)
- Char server can now specify the max size for blacksmith/alchemist/taekwon rankers.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5435 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-02 21:11:50 +00:00
skotlex
62cb3db4e0 - Fixed crash in chrif_load_scdata warning message.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5293 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-16 03:12:22 +00:00
skotlex
d25d952fc6 - Cleaned up and reorganized status_change_start. Now it also receives the success % rate (0->100)
- Added local function status_get_sc_tick which takes care of reducing the effect duration as need is be.
- Modified status_get_sc_def to handle defense against all related statuses, now returns defense on a scale where 10000 is 100%.
- Added time2 to pangvoice, it is the player effect's duration while time1 is for the mon's effect.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5227 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-08 16:56:53 +00:00
skotlex
0496215b70 - Fixed the map server complain on the default user/password
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5161 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-02 13:17:48 +00:00
Valaris
3e1f72d709 * Fixed compile errors and warning in chrif.c and charsave.c. [Valaris]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5160 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-02 01:01:18 +00:00
Valaris
3983f053ea git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5159 54d463be-8e91-2dee-dedb-b68131a5f0ec 2006-02-02 00:50:39 +00:00