- The no_spawn_on_player setting will now also work for static mobs, but only if the setting is set to 100 or higher.
- Some small cleanups.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8887 54d463be-8e91-2dee-dedb-b68131a5f0ec
- status_calc_misc will now be invoked in status_calc_bl even on the first call, since status could have gone up due to skill bonuses.
- Moved max HP/SP calculations to before invoking status_calc_misc
- Simplified distance and check_distance to use "aegis" methods (greater of dx/dy = distance), there's a new define in map.h called CIRCULAR_AREA, when set, the previous method is used, and map for each in range calls will also check for distances, making most ground skills and battle system use real circles instead of squares.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8609 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added config setting "partial_name_scan", which specifies whether @ given names should use a partial string lookup or absolute name lookup. Defaults to no (gm.conf)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8578 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Expanded status_calc_misc so it may also calculate the batk of characters as well as their regen data (if they have it)
- Fixed a memory leak when using charsave_method:1
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8576 54d463be-8e91-2dee-dedb-b68131a5f0ec
- pc_adopt will now preserve the kid's job/job-level/experience. This means that if you adopt a Swordman level 45, it will become a baby-swordman level 45, with the exact same exp as before.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8563 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Cleaned merc_hom_evolution to avoid free'ing/realloc'ing
- Fixed "args of aFree is freed pointer" on Homunc deletion
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8341 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Should have fixed the signed/unsigned comparison warnings in the main regen function.
- Fixed Energy Coat consuming 10x less SP per hit than it should.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8339 54d463be-8e91-2dee-dedb-b68131a5f0ec
- When Asura fails, the skill display will still come off.
- Cleaned up AM_CALLHOMUN so that the required item is specified on skill_require_db
- Cleaned up function merc_call_homun and added function merc_hom_vaporize to handle the respective cases.
- Cleaned up a bit unit_remove_map/unit_free on regards to homun. it will display the /sob emotion when the homun dies due to low intimacy. Moved removal of timers and all that to unit_free
- Cleaned up function merc_hom_dead
- Simplified lots of code around by using the new merc functions.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8279 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected states killer/killable being easily dispellable.
- Fixed the totally wrong text messages being used for @killer/@killable related atcommands, added appropiate entries to msg_athena
- Magic and Misc attacks will now get type "flee" when they do less than 1 damage, this blocks them from causing additional status effects when they are blocked.
- Cleaned up a bit the Basilica code, it should now properly end when you walk.
- Added an unnecessary qty check when inserting cards :P
- Fixed some logs not working when you enabled all logs.
- Corrected unmute being a level 60 command by default (should be 80)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8256 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Modified run_script so that when there are leaks, it will report the place where run_script was called from as source rather than the inner code of run_script (for debugging purposes)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8057 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Bladestop will no longer stop when you push either of the characters around.
- Fixed Enchant Poison having a near 100% chance of poisoning target on attack.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8015 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Adjusted map_countoncell to receive the BL_* defines currently used instead of 0 to signal all.
- BladeStop will now end when either of the characters is moved (knocked out?) around.
- Moved the Zeny penalty code from respawn to pc_dead.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7859 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Implemented Grandcross weird property where if there's noone on the path it'll hit twice for the skill's reported damage, and when there is (or you cant knockback the target) it'll do a splash attack that hits twice for 500% to all affected targets.
- Some cleaning of the combo code. TK Rankers will now get their combo-time extended each time they trigger a kick, enabling them to do "unlimited combos".
- Modified the autosave function to use a sweep across the player db instead of across connected clients. This will cause non-connected players (like autotraders) to also be saved on a regular interval, may help with possible data-loss from said characters on unclean shutdowns.
- Added function map_foreachpc
- Removed the code that forces aggressive mobs to go after a Homun instead of their master (no reason why there should be such a condition).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7721 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Save interval set to 300 (5 minutes): all characters will be saved in equal time-slots, so that everyone is saved every 5 minutes regardless of number of players online.
- Save interval set to -1000 (1000 ms): One character will be saved every second, regardless of amount of characters online.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7657 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
- 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
- Removed the debug message when a player logs out and is removed from memory, it is working fine.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7578 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Also cleaned up pc_equipitem. When dual wielding or equipping accessories, if the client actually specifies one of the two positions, it will be taken into account.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7550 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Renamed summons_inherit_effects to summons_trigger_autospells as the setting now only makes the attacks of the slaves trigger the autospells of the master (as it should be).
- Corrected code capping no_spawn_on_player to 50 when the max should be 100.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7459 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Scripting system screwing up script position after mixing timers with menus.
- NPC attached AI mobs display as alive when dead.
- View data not updating after buildin_unitdeadsit.
[Improved]
- NPCE_LOADMAP to execute after all (area) objects are sent to the player.
- Simplified scripting system. sd will now use pointer to the script state itself.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7388 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed character/storage being sent to be saved TWICE when you logged out while the storage is opened.
- Added save_settings map config. Specifies after which events do characters get saved (defaults to all): 1 - Trade successful, 2 - Vending transaction, 4 - Closing storage/guild storage, 8 - hatching a pet.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7375 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Rough implementation of Ground Drift according to description and jA info.
- Implemented Tatami Gaeshi using skill description and jA implementation for reference.
- map_foreachinpath calls will no longer go beyond the target point, as this function is required for skills other than SharpShooting now.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7344 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Changed setting for skill_nocast flag 16. It is no longer a "pk-mode map" setting, it's now a clone-forbidden skill. That is, skills with the flag 16 will never be copied by clones. If you use a PK-mode server, use flag 2 now to forbid skills from common maps.
- Default skills from not being cloned are Magnus Exorcism and Turn Undead.
- The map search free cell will now use the size of the map # of tries before giving up when the spawn area is the whole map. Added a check to inmediately give up when the number of spawn retries has reached the max specified (no_spawn_onplayer = 100).
- Cleaned up a bit the clone code to account for the unit flags UF_NOPC/UF_NOMOB when the skill is not ground-based (accounts for self skill that causes a ground-tile to be placed, like Dances).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7315 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- 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
- Fixed a few compiler warnings from VC
- Commented out the Homunculus Skills<->Status Change link which was causing some memory corruptions.
-
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7127 54d463be-8e91-2dee-dedb-b68131a5f0ec
- party Hp updates are no longer done each time the Hp is modified, but together with the party xy timer.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7083 54d463be-8e91-2dee-dedb-b68131a5f0ec