diff options
author | Andrei Karas <akaras@inbox.ru> | 2014-11-28 15:05:43 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2014-12-06 16:16:07 +0300 |
commit | 95e00b5f0180131bf035bd9f52c83c2788ad10d9 (patch) | |
tree | 20e56937059531d49900fa6d8ab323b04a6e31d8 /src | |
parent | 7925f0bab99662bde537d6745102c25955d054cb (diff) | |
download | hercules-95e00b5f0180131bf035bd9f52c83c2788ad10d9.tar.gz hercules-95e00b5f0180131bf035bd9f52c83c2788ad10d9.tar.bz2 hercules-95e00b5f0180131bf035bd9f52c83c2788ad10d9.tar.xz hercules-95e00b5f0180131bf035bd9f52c83c2788ad10d9.zip |
update HPM hooks.
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc | 8 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc | 2 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | 53 |
3 files changed, 63 insertions, 0 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 5448186d0..74e765cee 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -423,6 +423,8 @@ struct { struct HPMHookPoint *HP_clif_send_post; struct HPMHookPoint *HP_clif_send_sub_pre; struct HPMHookPoint *HP_clif_send_sub_post; + struct HPMHookPoint *HP_clif_send_actual_pre; + struct HPMHookPoint *HP_clif_send_actual_post; struct HPMHookPoint *HP_clif_parse_pre; struct HPMHookPoint *HP_clif_parse_post; struct HPMHookPoint *HP_clif_parse_cmd_pre; @@ -505,6 +507,8 @@ struct { struct HPMHookPoint *HP_clif_changetraplook_post; struct HPMHookPoint *HP_clif_refreshlook_pre; struct HPMHookPoint *HP_clif_refreshlook_post; + struct HPMHookPoint *HP_clif_sendlook_pre; + struct HPMHookPoint *HP_clif_sendlook_post; struct HPMHookPoint *HP_clif_class_change_pre; struct HPMHookPoint *HP_clif_class_change_post; struct HPMHookPoint *HP_clif_skill_delunit_pre; @@ -5490,6 +5494,8 @@ struct { int HP_clif_send_post; int HP_clif_send_sub_pre; int HP_clif_send_sub_post; + int HP_clif_send_actual_pre; + int HP_clif_send_actual_post; int HP_clif_parse_pre; int HP_clif_parse_post; int HP_clif_parse_cmd_pre; @@ -5572,6 +5578,8 @@ struct { int HP_clif_changetraplook_post; int HP_clif_refreshlook_pre; int HP_clif_refreshlook_post; + int HP_clif_sendlook_pre; + int HP_clif_sendlook_post; int HP_clif_class_change_pre; int HP_clif_class_change_post; int HP_clif_skill_delunit_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index af376fe05..5d0545f82 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -221,6 +221,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->refresh_ip, HP_clif_refresh_ip) }, { HP_POP(clif->send, HP_clif_send) }, { HP_POP(clif->send_sub, HP_clif_send_sub) }, + { HP_POP(clif->send_actual, HP_clif_send_actual) }, { HP_POP(clif->parse, HP_clif_parse) }, { HP_POP(clif->parse_cmd, HP_clif_parse_cmd) }, { HP_POP(clif->decrypt_cmd, HP_clif_decrypt_cmd) }, @@ -262,6 +263,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(clif->changelook, HP_clif_changelook) }, { HP_POP(clif->changetraplook, HP_clif_changetraplook) }, { HP_POP(clif->refreshlook, HP_clif_refreshlook) }, + { HP_POP(clif->sendlook, HP_clif_sendlook) }, { HP_POP(clif->class_change, HP_clif_class_change) }, { HP_POP(clif->skill_delunit, HP_clif_skill_delunit) }, { HP_POP(clif->skillunit_update, HP_clif_skillunit_update) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 954436e94..6531492a3 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -5688,6 +5688,33 @@ int HP_clif_send_sub(struct block_list *bl, va_list ap) { } return retVal___; } +int HP_clif_send_actual(int fd, void *buf, int len) { + int hIndex = 0; + int retVal___ = 0; + if( HPMHooks.count.HP_clif_send_actual_pre ) { + int (*preHookFunc) (int *fd, void *buf, int *len); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_actual_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_send_actual_pre[hIndex].func; + retVal___ = preHookFunc(&fd, buf, &len); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.clif.send_actual(fd, buf, len); + } + if( HPMHooks.count.HP_clif_send_actual_post ) { + int (*postHookFunc) (int retVal___, int *fd, void *buf, int *len); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_send_actual_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_send_actual_post[hIndex].func; + retVal___ = postHookFunc(retVal___, &fd, buf, &len); + } + } + return retVal___; +} int HP_clif_parse(int fd) { int hIndex = 0; int retVal___ = 0; @@ -6757,6 +6784,32 @@ void HP_clif_refreshlook(struct block_list *bl, int id, int type, int val, enum } return; } +void HP_clif_sendlook(struct block_list *bl, int id, int type, int val, int val2, enum send_target target) { + int hIndex = 0; + if( HPMHooks.count.HP_clif_sendlook_pre ) { + void (*preHookFunc) (struct block_list *bl, int *id, int *type, int *val, int *val2, enum send_target *target); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendlook_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_clif_sendlook_pre[hIndex].func; + preHookFunc(bl, &id, &type, &val, &val2, &target); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.clif.sendlook(bl, id, type, val, val2, target); + } + if( HPMHooks.count.HP_clif_sendlook_post ) { + void (*postHookFunc) (struct block_list *bl, int *id, int *type, int *val, int *val2, enum send_target *target); + for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_sendlook_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_clif_sendlook_post[hIndex].func; + postHookFunc(bl, &id, &type, &val, &val2, &target); + } + } + return; +} void HP_clif_class_change(struct block_list *bl, int class_, int type) { int hIndex = 0; if( HPMHooks.count.HP_clif_class_change_pre ) { |