- Therefore, removed the session valid checks from intif.c
- Thanks for Flavio for figuring out how to reproduce the crash. And unthanks to me for introducing it on the first place D:
- Note: Every connection before being closed and free'd will set eof to 1 and invoke the parse function (clif_parse for players), and since this is the last invocation, it is clif_parse's job to do any cleanup necessary. The missing map_quit what did was to leave the player pointer reference in different db's, which lead to a dangling pointer! Which obviously leads to no good. The map server's code should always ensure that session[sd->fd]->session_data == sd ALL the time (except when sd->fd is 0).
- Finally, not writing any of this on the txt changelog file so Flavio can have the glory of the bugfix :B
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9368 54d463be-8e91-2dee-dedb-b68131a5f0ec
Description: A player quits and it's session is freed and set to NULL,
but the char server already sent a packet with player information
(registers, storage, ...). If a message is sent in consequence of
updating that info, a segmentation fault happens because
session[sd->fd] is already NULL.
Fix: make shure the session of the target player is valid before
processing the rest of the char server's message.
- Some minor cleanups.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9366 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Cleaned up clif_parse_Wis to prevent crashes from forged packets (using a strlen() on a string where you don't know if it's null-terminated is a NO-NO)
- Cleaned up the implementation of the ignore list so it's more efficient.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9282 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Moved the homunculus DB information from the player structure to the homun structure. Modified the homunculus creation packets to hold this information during creation, also, all initial values are handled by the map-server, the char server only assigns it a homun ID.
- Removed target_id/attacked_id from homun_data as it wasn't really used.
- Codes cleanup (removing of commented code mostly)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9031 54d463be-8e91-2dee-dedb-b68131a5f0ec
- The double continuation error will now display both scripts that triggered it.
- Loading the storage from the char-server will fail if player is already tagged in final save state.
- Removed setting ban_spoof_namer, sending invalid global-talk packets will now just kick the player out of the server.
- Added BL_NPC support to status_get_name
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8812 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added Gatling Fever's batk bonus.
- Some cleaning in status_damage which should prevent trying to free already free'd pointers when unit_remove_map invokes unit_free (when status_damage was going to invoke unit_free anyway)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8308 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added homun saving/loading support to char-TXT. Note that this is completely untested, so it may be as good as broken.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8299 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Reenabled @changesex
- Added function pet_create_egg which handles creating pet eggs correctly (when passed item id is indeed a valid petegg). Applied this on @createitem and getitem.
- Cleaned up code of @item
- Added define UNKNOWN_ITEM_ID (512 = apple)
- Added IT_* enumation item_Types to identify said data from items.
- Cleaned up the itemdb_isequip functions. itemdb_isequip will now return if the item is equipable by players, itemdb_isstackable returns if the item can be stacked, and itemdb_isidentified returns if the item should drop identified.
- Added defines CARD0_PET/CARD0_FORGE/CARD0_CREATED to identify if a given item has "invalid" cards, added define function itemdb_isspecial to simplify this check.
- Removed itemdb.c considering item ids above 20000 as invalid.
- Cleaned up script commands getitem and card-counting related ones.
- Cleaned up a bit more pc_isequip
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7613 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added function char_family to check if there's a family state given the three character ids, instead of doing individual checks all the time.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7553 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- SL_STIN/SL_STUN have dex-reducable casting times now.
- Added a warning on item loading when an item is of equippable type but has no equippable position.
- Turning an alliance to an opposition won't work now during WoE
- Slaves can summon other mobs now. The only ones who can't do this are player summoned mobs.
- Merged the following functions for faster processing of items:
clif_storageitemlist + clif_storageequiplist = clif_storagelist
clif_guildstorageitemlist + clif_guildstorageequiplist = clif_guildstoragelist
clif_itemlist + clif_equiplist = clif_inventorylist
- Increased max knockback value support to 25.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7109 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed super novices getting +10 to all stats temporarily whentheir death count isn't zero.
- Fixed Kahai displaying HP-SP as the total healed instead of HP
- Cleaned up skill_repairweapon to prevent crashes when the target vanishes/changes/whatever before the weapon to repair has been selected.
- Parsing the Storage/Guild Storage from the char server will now fail if the storage has been modified and not saved yet.
- Being hit now cancels confuse.
- Added back the bleeding icon.
- Fixed Combo Finish Soul Linked Effect being a 11x11 area o.O
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5121 54d463be-8e91-2dee-dedb-b68131a5f0ec
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. EVERYTHING ELSE
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec