- Removed a bunch of homun-related variables that are not needed at all. The alive condition is removed, now the code checks for the hp value to know if the homun is alive or not.
- Cleaned up a bit the skill-id function, homun skill checks (such as delay and skill-lv learned) should be correct now.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7727 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
- 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
- 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
- Changed the mob drop rate adjust function to receive a signed int argument. Probably will fix those drops with 0% becoming 100%
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7371 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Setting of variables with defined scope in some frequently executed script events.
* [Added]:
- Missing script_require_trigger flags for some power hungry events.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7325 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
- Large part of scripted mob control commands are removed.
- Large part of scripted player control commands are removed.
- Scripted mob slaves changing master ID.
[Added]:
- Unit control commands.
- CALLBACK_NPCCLICK for scripted mobs, added this to db/const.txt too.
- Macro RECURSIVE_MASTER_CHECK in battle.c
[Modified]:
- buildin_skilluseid and buildin_skillusepos -> buildin_unitskilluseid and buildin_unitskillusepos.
- md->callback_flag to short (double word). [Lance]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7233 54d463be-8e91-2dee-dedb-b68131a5f0ec
- buildin_checkcell, buildin_mobwarp, buildin_pcattack.
* [Improved]:
- buildin_skilluseid and buildin_skillusepos to accept a few more arguments.
- mob_script_callback to return sucess value.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7219 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Modified aspd_rate in status_data to hold aspd change on a base of 1000 = 100% rather than 100 = 100%. All status changes that affect aspd have been updated. Study and Single Action should now correctly give +0.5% aspd per level.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7213 54d463be-8e91-2dee-dedb-b68131a5f0ec
- the mvp_sd is removed when the mob is the emperium and there's no killer/exp-awarded (assumed killed by script), this prevents the on-kill event from triggering and giving the castle to whoever damaged the most the emperium without destroying it.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7208 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
- Added monster_ai setting &64, when enabled makes a mob run to any nearby npc-warp when their current target has switched maps.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7039 54d463be-8e91-2dee-dedb-b68131a5f0ec
- pc_gain_exp now also receives the source of the exp, when said source exists, bonuses are applicated as needed.
- Added status_kill when capturing a mob, should take care of the mob not respawning after caputed.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7037 54d463be-8e91-2dee-dedb-b68131a5f0ec
- mob_dead not to remove script controlled monsters with player sprites. (can be removed later using removemob command, it can be resurrected too :D)
* [Added]:
- buildin_mobdeadsit :D
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7024 54d463be-8e91-2dee-dedb-b68131a5f0ec
- temp++ gets issued before if(mvp_damage<(unsigned int)md->dmglog[i].dmg) in mob_damage. Thanks to seahorsix.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7023 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed mvp-exp calculations being messed up with more than one attacker.
- Changed the mob exp race bonus so that each player gets their own bonus, rather than the killer's bonus applying to everyone.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7003 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Hopefully fixed changing a mob's class causing them to get all sort of stat bonuses due to the mobs-level-up setting.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6994 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added a missing status_calc_mob on mob_spawn_guardian_sub
- Added clif_fixpos packets before attacking for the first time to clear any position sync issues with the client.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6985 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Moved MOB_SLAVEDISTANCE to mob.h
- NPC_CALLSLAVES now uses the slave-distance previously mentioned.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6940 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed a bug in status_revive
- Updated Holy Cross, Investigate and Finger Offensive to be usable by all weapons.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6938 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added define OPTION_CART which holds the 5 cart option values.
- Corrected pc_setoption to invoke status_calc_pc when getting/removing the cart.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6914 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed one valgrind error report.
- Added back the Freeze/Petrify adjustments of -50%def and +25%mdef (when where these lost?)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6903 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Aggressive mobs will now use battle_check_range rather than mob_can_reach to decide whether to lock-on or not to a target within sight-range.
- Added warnings in mob_readdb when the mob's element is invalid.
- Updated the corresponding entries in map.h to use ELE_MAX
- Added error messages in pc_bonus* functions when an invalid element is passed to the relevant bonuses.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6856 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Updated status_damage to handle the general death code (clearing status changes, clearing skill related data, sending death packet, etc). The return value from the *_dead functions will tell it what to do or not with the object (death aborted, clear it from map/memory, etc)
- Cleaned up pc_dead to take advantage of the fact that status changes are not ended until after the function.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6852 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Typo in mob_dead causing crash. Thanks to reddozen and his gang for testing.
- Compilation warnings
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6835 54d463be-8e91-2dee-dedb-b68131a5f0ec