235 Commits

Author SHA1 Message Date
skotlex
bbe820d3e3 - Corrected setting slaves_inherit_mode to not apply to morphosis skills.
- 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
2006-06-01 19:21:04 +00:00
skotlex
ff4b163da3 - Fixed slaves warping endlessly to their master when the master-slave distance exceeds 30.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6909 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-01 15:03:48 +00:00
skotlex
459b2a672f - Some small cleanups on status_calc_pet
- 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
2006-06-01 00:23:27 +00:00
skotlex
2c4bcef25a - Corrected the mob_ai&2 setting triggering rude-attacked due to can't walk delay.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6901 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-31 21:21:44 +00:00
skotlex
a2f222eb46 - Updated attr_fix_table reading code to account for ELE_MAX (will correctly read bigger elemental tables if ELE_MAX is changed)
- 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
2006-05-30 18:25:55 +00:00
skotlex
1d027c8db8 - Removed the on-die specific code from unit_remove_map and placed it on the corresponding *_dead functions. unit_remove_map should never assume the char died, it is just a "remove from map" function.
- 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
2006-05-30 17:06:55 +00:00
Lance
9516734715 Added decending npc to slaves. Custom feature.. nothing much.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6849 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-30 15:39:02 +00:00
Lance
435f579918 [Fixed]
- 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
2006-05-30 07:07:59 +00:00
skotlex
d3832b5146 - Fixed pc_gainexp resetting your exp to 0 rather than adding it in... -.-
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6828 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-29 20:20:42 +00:00
skotlex
048bd9bd8f - Added a division by zero check in mob_dead to prevent the (impossible) case where a mob dies with received damage of zero.
- Fixed compilation errors with SC_FLING...


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6821 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-29 16:01:02 +00:00
skotlex
f2cedb537e - Added functions status_revive, pc_revive and mob_revive to handle revival (it doesn't handles player respawning, though)
- Corrected alive, raisemap, raiseall to use these functions.
- Updated resurrection/mob-kaizel to use status_revive
- Added SC_BLADESTOP to the skill enum at the beginning of status.c (fixes Bladestop causing an unknown status change message)
- Fixed MSS_DEAD state skills not triggering.
- Corrected some compilation warnings on the merc.* files. 


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6807 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-28 17:58:56 +00:00
Lance
bb1b0409a1 - Suppressed compilation warnings (unsigned and signed mismatches)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6793 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-28 03:24:03 +00:00
skotlex
856240443d - Added structure status_data which holds status-related information (str, agi, etc, speed, amotion, adelay, dmotion, weapon-damage, race, size, etc) and weapon_atk structure with the weapon specific info (atk, atk2, element) to be used by all combat structures (TODO: Homun needs to be updated to use it)
- Cleaned up TBL_PC, TBL_MOB, TBL_PC and mob_db structures to use status_data.
- Set the NPC-Change Attribute duration on Time1, updated their max to 1 in the db.
- Berserk's HP cost interval is now defined as time2.
- Split damage received functions into pc_damage/pc_dead and mob_damage/mob_dead
- Rewrote the @heal related functions to use the new status_* healing functions.
- Added status functions to deal with damage and healing (status_damage, status_heal, status_percent_change) and a bunch of defines for easier handling of them (status_percent_heal, status_percent_damage, status_fix_damage, status_kill, etc)
- Splitted mob_once_spawn into two. mob_once_spawn_sub creates the mob instance without spawning it.
- Added defines for Elements (ELE_*)
- Modified battle_calc_(weapon/magic/misc)_attack to use the status data structure.
- Rewrote and cleaned up battle_calc_misc_attack
- Merged config options pc_attack_attr_none, mob_attack_attr_none, pet_attack_attr_none into attack_attr_none (type 4)
- Removed config options player_defense_type, monster_defense_type, pet_defense_type in favor of weapon_defense_type
- Cleaned up pet.c to stop invoking status_calc_pc when unnecessary
- Modified skill_calc_heal to take into account the MEDITATION bonus.
- Cleaned up code of Adjustment, Madness Cancel and other GS/NJ skills inside skill_check_condition
- Added status change SC_MODECHANGE which handles mob state changes (this SC is continous until manually ended, eg: like Weight50)
- Modified Slim Pitcher so it will work when casted by non-players. Will now also work with SP-healing items.
- Rewrote Freedom of Cast code to use function status_freecast_switch to switch adelay/speed when cast begins/ends.
- Modified Magic Power to store amplified MATK/MATK2 in val3/val4 for easier updating when used in conjunction with ground skills.
- Fixed Asura Strike being usable from within a combo regardless of combo skill.
- Modifed SC_DANCING to store speed-change in val3 (it is shared with skill duration...)
- Added StatusChangeFlagTable to store which statuses are changed by each SC
- Added SCB_* constants to specify the different stats that each sc changes. SCB_PC is the only one that means a change hardcoded in status_calc_pc, the rest are handled by status_calc_bl
- Added some helper functions to simplify with basic status calculations (status_base_atk, status_calc_misc, status_base_pc_maxhp, status_base_pc_maxsp)
- Added status_calc_mob which calculates initial status and special base status alterations (HP changes, stat changes due to big/small mobs, etc)
- Made all the status_calc functions static.
- Added status_calc_bl_sub_pc for PC related calculations that must happen after status-change adjustments.
- Added status_calc_bl which does status-change related calculations using as base the base_status of the bl object and the SCB_* flag passed.
- Added status_get_status_data and status_get_base_status to retrieve the bl objects current status_data and basic status_data (current never returns null, instead it returns a dummy structure with basic data)
- The main switch in status_change_start now only sets the tick and val values, therefore it is skipped when loading (flag&4)
- Cleaned up status_change_start and replaced many of the ex-japanese comments for english ones.
- Changed Hiding to store the speed penalty on val3. val4 stores interval SP cost.
- Changed Chase Walk to store Speed adjustment on val3, sp cost in val4
- Changed Cloaking to store speed penalty on val3, val4&2 signals wall-present, val4&1 is infinite cloaking.
- Changed Wind walk to store speed bonus on val3
- Rewrote Marionette Control to store the status to add/substract in val3/val4, it now works on anyone (players/mobs)
- Changed Improve concentration to store Card bonuses (which are not counted for total % increase) on val3/val4
- Changed SC_ADRENALINE, SC_CONCENTRATION, SC_ANGELUS, SC_IMPOSITIO, SC_MELTDOWN, SC_TRUESIGHT, SC_SUN_COMFORT, SC_MOON_COMFORT, SC_STAR_COMFORT, SC_QUAGMIRE, SC_GATLINGFEVER to store the bonus modifiers in their val values rather than calculate them in status_calc_*
- Status_change_start/end will use clif_status_load rather than clif_status_change when related bl is not on a map.
- Modified status_change_timer to use the status_charge function rather than directly substracting SP
- Added SC_ELEMENTALCHANGE to modify someone's base defense element.
- pc_clean_skilltree will now also remove item-granted skills.
- Learning skills will now only invoke status_calc_pc when the skill is passive.
- Cleaned up pc_steal_coin
- Cleaned up pc_check_base/job_lvup to only invoke the lv-up related packets and functions ONCE regardless of skill-levls earned.
- Cleaned up pc_ regen related functions.
- Made player-sprite mobs have item pickup animation and walkdelay when taking items.
- Cleaned up mob_dead code.
- Removed paramb, parame from struct map_session_data, replaced them by param_bonus[6],param_equip[6]
- mob special ai state 3 signals summon flora.
- Moved petDB pet_hungry_timer vars from TBL_PC to TBL_PET
- Cleaned up some pet functions, made the menu functions receive as argument both pet and master.
- Clones will copy a player's base status rather than battle status (so status-change alterations are not cloned)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6791 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-27 18:08:30 +00:00
Lance
56a69db8bd And another possible crash
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6783 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-26 23:43:41 +00:00
Lance
4519951609 * Fixed crashing in mob.c
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6782 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-26 23:36:36 +00:00
Lance
2681e4127b * Patches to allow everything to work right. + 1 more sample script.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6779 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-26 18:54:07 +00:00
Lance
7e5a2c9c34 Added a few more events in..
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6776 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-26 11:58:13 +00:00
Lance
8320520472 * Mob control engine tested 99% working so far.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6770 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-26 09:46:45 +00:00
Lance
c7535fdff4 * Fixed mob control commands.
* Fixed memory leak in scripts (again). Still have a few lying.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6749 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-25 12:04:09 +00:00
eaac
5df56ea5bc * Fix to the slave AI problem, by Skotlex
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6742 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-25 00:42:49 +00:00
skotlex
e6d15ee6a9 - Fixed summoned slaves being able to cast onspawn summon-skills (slaves aren't supposed to be able to call minions)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6735 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-24 18:45:25 +00:00
skotlex
1641349382 - Merged item_db.sql from stable :B
- Added a missing line (how did it get lost?) in mob_spawn to set aggressive state for angry mobs.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6731 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-24 16:47:10 +00:00
skotlex
6a7fd3930f - Corrected mob angry mode, now it only "restores" itself after being hit when the mob has no target within their range of sight rather than on picking a new target.
- Corrected a pair of incorrect sql query parsing logic in the login-sql ban request packet.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6724 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-24 13:42:12 +00:00
skotlex
e7a25fdeac - Corrected clif parse name request failing on disguised characters.
- Corrected Soul Drain draining from all non-ground-based skills including non-magic attacks.
- Corrected pc_setoption to change the option and then change class. changing option-wedding will automatically convert the view-class as well.
- Corrected the 15% drop rate increase when killing higher level mobs in pk-mode triggering for all mobs with lower level than yourself. Thanks to Vayu.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6709 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-23 13:51:42 +00:00
skotlex
8e1cd35c5a - Corrected the 20 lvl diff 15% exp bonus on pk_mode servers. Thanks to Vayu for pointing it out.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6698 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-22 17:33:58 +00:00
skotlex
078cab13fd - Fixed loginlog definition in main.sql, thanks to Tempesta
- Likely fixed the mob-skill random picking behaviour causing infinite loops sometimes.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6658 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-19 16:27:14 +00:00
skotlex
1b2a882dc3 - Added some braces to clear up the code in pc_additem, even though I doubt it'll fix the problem :X
- Modified mobskill_use behaviour to pick a random starting point and check skills from that, rather than always checking from first to last. Fixes skills with high priority blocking skills lower down in the list from triggering.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6657 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-19 15:38:15 +00:00
skotlex
5e600508f8 - Updated mob ai behaviour so that mobs use IDLE state skills when their current target cannot be reached for melee fighting.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6655 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-19 14:03:40 +00:00
skotlex
e2ba12927e - Modified mob_can_changetarget to return true always when the new target is the provoked-by character. Fixes provoke not making the mob change target when it already is locked on another player.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-17 15:23:25 +00:00
skotlex
aed41cb881 - Changed the behaviour of immobile mobs when they can't chase their target. Rather than using a longrange skill and then unlocking, they will use an attack/angry state skill and then unlock.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6599 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-15 17:10:41 +00:00
blackhole89
96bf1fd79e data.x=x; data.y=y was not done at all except when using random coordinates. dfhsdfhsdfh
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6581 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-14 11:01:13 +00:00
skotlex
a7301992bc - Reverted again the change that stuns the caster on Ske, Ska, Swoo when the target is a nonplayer (rather than always)
- Modified mob_spawn_once so that coordinates -1,-1 are "random around the player" while 0,0 are random around the whole map (regardless of whether there's a player attached or not)
- Knockback will no longer work on traps during woe.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6566 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-12 21:16:44 +00:00
skotlex
46d5c713cd - Updated cast times of Kaupe and Kaahi.
- Some small code cleanups.
- Sma has cast-dex reducable now.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6564 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-12 16:30:51 +00:00
skotlex
0b816774d5 - NPC_POWERUP and NPC_AGIUP now cause a increase in hit/flee (respectively) of 40% per level.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6558 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-11 20:58:45 +00:00
skotlex
9df8532910 - Fixed Fog of Wall's symmetry in respect to Misc attacks, they no longer get reduced by 50% regardless of who is standing on the fog.
- monster_ai&2 will now trigger the rude-attacked skill when the mob can't move and the attacker is out of it's attack range.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6536 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-09 20:11:47 +00:00
skotlex
483d1d7418 - Added missing icon for Joint Beat
- Mob-search functions will now skip enemies with no exp/job_exp.
- Treasure chests will now be excluded from the mob-drop listings (@whodrops)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6534 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-09 19:43:43 +00:00
skotlex
05667b0fa9 - Script commands sc_start, sc_start2 and sc_start4 will now start regardless of sc defense of the target player (that is, they cannot be avoided)
- Fixed a possible counter overflow in attacked_count, changed the var size to unsigned char since the code can handle the overflow now.
- Multiple targets again reduces armor defense, as reported by Tharis.
- Increased dex increase of NPC_POWERUP to +20 per level.
- Fog of Wall's -50 hit reduction is now only for ranged attacks.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6528 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-09 17:08:09 +00:00
Lupus
a866920e15 removed old logs
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6510 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-07 09:50:37 +00:00
skotlex
db83032024 - Added a npc-script-event cache to avoid looking up event-scripts every time they need to be executed. Events cached are all those defined in script_config.
- Since the cache holds direct pointers to the npcs/events, do NOT unload the related NPCs or you'll get dangling pointers. However, @reloadscript will work fine.
- Set the etc_log to on to see a summary of npcs/events loaded for script execution on startup.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6494 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-05 23:22:16 +00:00
skotlex
88722161e5 - Being in Enjoyable Rest state will now also trigger the HP/SP Time skills (even if there's no other TK around).
- Renamed SC_TKDORI to SC_TKREST (makes more sense if you ask me)
- Added battle config settings view_range_rate and chase_range_rate to adjust the view-range and chase-range (range2/range3) of the mob_db without having to manually change them.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6490 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-05 16:30:47 +00:00
reddozen
578f1bc99a fixed my MVP drop conf
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6481 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-05 02:15:56 +00:00
skotlex
352ba1bd12 - Some clean-ups in the mob_ai
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6478 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-04 21:41:51 +00:00
skotlex
96bafcccea - Cleaned up and used mob_skill_event function when hit by a ground-skill.
- Added one grace range in the mob_loot search function which should fix mob_can_reach failing when invoked with the same distance that distance_bl returned.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6475 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-04 20:19:03 +00:00
skotlex
b30e1fdda7 - Cleaned up the mob-random-walking code.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6468 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-04 16:44:15 +00:00
skotlex
eae69d7bf5 - Pair of almost insignificant changes in mob.c (removed a unneeded next_walktime set on loot-lock and usage of range2 rather than 3 for min_chase when locking an "attacked by" target)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6464 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-04 00:19:49 +00:00
reddozen
29db2f4743 added support to regulate MVP drops [Reddozen]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6439 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-02 00:20:17 +00:00
skotlex
ffea9656f8 - Removed attack_type from sd->state structure (it's only use was for soul-drain!)
- Moved the soul-drain code to skill_counter_additionaleffect


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6392 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-30 06:01:16 +00:00
skotlex
9310d31229 - Fixed possible crash when mob drop logs is enabled.
- The drop log tables are useless now that mobs have more slots, that thing needs to be rewritten...


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6391 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-30 04:58:52 +00:00
skotlex
38243e373c - Modified the mob_db structure. The mvp related columns were moved to before the drops, amount of drops increased from 10 to 15.
- Updated sql-files/mob_db.sql to latest.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6354 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-29 00:34:36 +00:00
skotlex
f8db64c952 - Added constant MAX_MOB_DROP to specify the amount of normal drops a mob has. The mob_db reading code will automatically parse the file according to the number of drops expected (the Mexp/Mper and MVP item rewards must still be after the normal drops). Set to 10 currently.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6347 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-28 15:53:03 +00:00