diff options
author | malufett <malufett.eat.my.binaries@gmail.com> | 2015-01-12 02:12:55 +0800 |
---|---|---|
committer | malufett <malufett.eat.my.binaries@gmail.com> | 2015-01-12 02:12:55 +0800 |
commit | 819bc0c5bb225c51be77e585d5e1c8af00850657 (patch) | |
tree | cd1a6b2e6b32a4d0a135edab6190cdb8a6133577 /src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | |
parent | 670fca4c54445440c25e1114e64170e3934645f1 (diff) | |
download | hercules-819bc0c5bb225c51be77e585d5e1c8af00850657.tar.gz hercules-819bc0c5bb225c51be77e585d5e1c8af00850657.tar.bz2 hercules-819bc0c5bb225c51be77e585d5e1c8af00850657.tar.xz hercules-819bc0c5bb225c51be77e585d5e1c8af00850657.zip |
Fixed Bug where skill timer is not properly terminated/clear when the caster dies.
-Thanks to GM Nihad.
Signed-off-by: malufett <malufett.eat.my.binaries@gmail.com>
Diffstat (limited to 'src/plugins/HPMHooking/HPMHooking_map.Hooks.inc')
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 9efaa6718..e4e87abb9 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -63837,31 +63837,32 @@ void HP_skill_timerskill_notarget_unknown(int tid, int64 tick, struct block_list } return; } -void HP_skill_cleartimerskill_unknown(int skill_id) { +bool HP_skill_cleartimerskill_exception(int skill_id) { int hIndex = 0; - if( HPMHooks.count.HP_skill_cleartimerskill_unknown_pre ) { - void (*preHookFunc) (int *skill_id); + bool retVal___ = false; + if( HPMHooks.count.HP_skill_cleartimerskill_exception_pre ) { + bool (*preHookFunc) (int *skill_id); *HPMforce_return = false; - for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cleartimerskill_unknown_pre; hIndex++ ) { - preHookFunc = HPMHooks.list.HP_skill_cleartimerskill_unknown_pre[hIndex].func; - preHookFunc(&skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cleartimerskill_exception_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_cleartimerskill_exception_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id); } if( *HPMforce_return ) { *HPMforce_return = false; - return; + return retVal___; } } { - HPMHooks.source.skill.cleartimerskill_unknown(skill_id); + retVal___ = HPMHooks.source.skill.cleartimerskill_exception(skill_id); } - if( HPMHooks.count.HP_skill_cleartimerskill_unknown_post ) { - void (*postHookFunc) (int *skill_id); - for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cleartimerskill_unknown_post; hIndex++ ) { - postHookFunc = HPMHooks.list.HP_skill_cleartimerskill_unknown_post[hIndex].func; - postHookFunc(&skill_id); + if( HPMHooks.count.HP_skill_cleartimerskill_exception_post ) { + bool (*postHookFunc) (bool retVal___, int *skill_id); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_cleartimerskill_exception_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_cleartimerskill_exception_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &skill_id); } } - return; + return retVal___; } bool HP_skill_castend_id_unknown(struct unit_data *ud, struct block_list *src, struct block_list *target) { int hIndex = 0; |