summaryrefslogtreecommitdiff
path: root/src/plugins/HPMHooking
diff options
context:
space:
mode:
authormalufett <malufett.eat.my.binaries@gmail.com>2015-01-12 02:12:55 +0800
committermalufett <malufett.eat.my.binaries@gmail.com>2015-01-12 02:12:55 +0800
commit819bc0c5bb225c51be77e585d5e1c8af00850657 (patch)
treecd1a6b2e6b32a4d0a135edab6190cdb8a6133577 /src/plugins/HPMHooking
parent670fca4c54445440c25e1114e64170e3934645f1 (diff)
downloadhercules-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')
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc8
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc2
-rw-r--r--src/plugins/HPMHooking/HPMHooking_map.Hooks.inc29
3 files changed, 20 insertions, 19 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
index 06a046812..ec90fb1b6 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc
@@ -4747,8 +4747,8 @@ struct {
struct HPMHookPoint *HP_skill_timerskill_target_unknown_post;
struct HPMHookPoint *HP_skill_timerskill_notarget_unknown_pre;
struct HPMHookPoint *HP_skill_timerskill_notarget_unknown_post;
- struct HPMHookPoint *HP_skill_cleartimerskill_unknown_pre;
- struct HPMHookPoint *HP_skill_cleartimerskill_unknown_post;
+ struct HPMHookPoint *HP_skill_cleartimerskill_exception_pre;
+ struct HPMHookPoint *HP_skill_cleartimerskill_exception_post;
struct HPMHookPoint *HP_skill_castend_id_unknown_pre;
struct HPMHookPoint *HP_skill_castend_id_unknown_post;
struct HPMHookPoint *HP_skill_castend_nodamage_id_dead_unknown_pre;
@@ -9906,8 +9906,8 @@ struct {
int HP_skill_timerskill_target_unknown_post;
int HP_skill_timerskill_notarget_unknown_pre;
int HP_skill_timerskill_notarget_unknown_post;
- int HP_skill_cleartimerskill_unknown_pre;
- int HP_skill_cleartimerskill_unknown_post;
+ int HP_skill_cleartimerskill_exception_pre;
+ int HP_skill_cleartimerskill_exception_post;
int HP_skill_castend_id_unknown_pre;
int HP_skill_castend_id_unknown_post;
int HP_skill_castend_nodamage_id_dead_unknown_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
index 7c09737fa..9442e5b20 100644
--- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc
@@ -2409,7 +2409,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(skill->timerskill_dead_unknown, HP_skill_timerskill_dead_unknown) },
{ HP_POP(skill->timerskill_target_unknown, HP_skill_timerskill_target_unknown) },
{ HP_POP(skill->timerskill_notarget_unknown, HP_skill_timerskill_notarget_unknown) },
- { HP_POP(skill->cleartimerskill_unknown, HP_skill_cleartimerskill_unknown) },
+ { HP_POP(skill->cleartimerskill_exception, HP_skill_cleartimerskill_exception) },
{ HP_POP(skill->castend_id_unknown, HP_skill_castend_id_unknown) },
{ HP_POP(skill->castend_nodamage_id_dead_unknown, HP_skill_castend_nodamage_id_dead_unknown) },
{ HP_POP(skill->castend_nodamage_id_undead_unknown, HP_skill_castend_nodamage_id_undead_unknown) },
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;