diff options
Diffstat (limited to 'src/plugins')
5 files changed, 76 insertions, 12 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc index d1bff9280..c6cca0b0c 100644 --- a/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_char.Hooks.inc @@ -3707,14 +3707,14 @@ void HP_chr_login_map_server_ack(int fd, uint8 flag) { } return; } -void HP_chr_parse_char_login_map_server(int fd) { +void HP_chr_parse_char_login_map_server(int fd, uint32 ipl) { int hIndex = 0; if( HPMHooks.count.HP_chr_parse_char_login_map_server_pre ) { - void (*preHookFunc) (int *fd); + void (*preHookFunc) (int *fd, uint32 *ipl); *HPMforce_return = false; for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_login_map_server_pre; hIndex++ ) { preHookFunc = HPMHooks.list.HP_chr_parse_char_login_map_server_pre[hIndex].func; - preHookFunc(&fd); + preHookFunc(&fd, &ipl); } if( *HPMforce_return ) { *HPMforce_return = false; @@ -3722,13 +3722,13 @@ void HP_chr_parse_char_login_map_server(int fd) { } } { - HPMHooks.source.chr.parse_char_login_map_server(fd); + HPMHooks.source.chr.parse_char_login_map_server(fd, ipl); } if( HPMHooks.count.HP_chr_parse_char_login_map_server_post ) { - void (*postHookFunc) (int *fd); + void (*postHookFunc) (int *fd, uint32 *ipl); for(hIndex = 0; hIndex < HPMHooks.count.HP_chr_parse_char_login_map_server_post; hIndex++ ) { postHookFunc = HPMHooks.list.HP_chr_parse_char_login_map_server_post[hIndex].func; - postHookFunc(&fd); + postHookFunc(&fd, &ipl); } } return; diff --git a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc index 1ebd9fd1a..375b78e11 100644 --- a/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_login.Hooks.inc @@ -1418,14 +1418,14 @@ void HP_login_char_server_connection_status(int fd, struct login_session_data *s } return; } -void HP_login_parse_request_connection(int fd, struct login_session_data *sd, const char *ip) { +void HP_login_parse_request_connection(int fd, struct login_session_data *sd, const char *ip, uint32 ipl) { int hIndex = 0; if( HPMHooks.count.HP_login_parse_request_connection_pre ) { - void (*preHookFunc) (int *fd, struct login_session_data *sd, const char *ip); + void (*preHookFunc) (int *fd, struct login_session_data *sd, const char *ip, uint32 *ipl); *HPMforce_return = false; for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_request_connection_pre; hIndex++ ) { preHookFunc = HPMHooks.list.HP_login_parse_request_connection_pre[hIndex].func; - preHookFunc(&fd, sd, ip); + preHookFunc(&fd, sd, ip, &ipl); } if( *HPMforce_return ) { *HPMforce_return = false; @@ -1433,13 +1433,13 @@ void HP_login_parse_request_connection(int fd, struct login_session_data *sd, co } } { - HPMHooks.source.login.parse_request_connection(fd, sd, ip); + HPMHooks.source.login.parse_request_connection(fd, sd, ip, ipl); } if( HPMHooks.count.HP_login_parse_request_connection_post ) { - void (*postHookFunc) (int *fd, struct login_session_data *sd, const char *ip); + void (*postHookFunc) (int *fd, struct login_session_data *sd, const char *ip, uint32 *ipl); for(hIndex = 0; hIndex < HPMHooks.count.HP_login_parse_request_connection_post; hIndex++ ) { postHookFunc = HPMHooks.list.HP_login_parse_request_connection_post[hIndex].func; - postHookFunc(&fd, sd, ip); + postHookFunc(&fd, sd, ip, &ipl); } } return; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index e35a4c81c..f3e3711c1 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -3697,6 +3697,10 @@ struct { struct HPMHookPoint *HP_pc_skill_post; struct HPMHookPoint *HP_pc_insert_card_pre; struct HPMHookPoint *HP_pc_insert_card_post; + struct HPMHookPoint *HP_pc_can_insert_card_pre; + struct HPMHookPoint *HP_pc_can_insert_card_post; + struct HPMHookPoint *HP_pc_can_insert_card_into_pre; + struct HPMHookPoint *HP_pc_can_insert_card_into_post; struct HPMHookPoint *HP_pc_steal_item_pre; struct HPMHookPoint *HP_pc_steal_item_post; struct HPMHookPoint *HP_pc_steal_coin_pre; @@ -8912,6 +8916,10 @@ struct { int HP_pc_skill_post; int HP_pc_insert_card_pre; int HP_pc_insert_card_post; + int HP_pc_can_insert_card_pre; + int HP_pc_can_insert_card_post; + int HP_pc_can_insert_card_into_pre; + int HP_pc_can_insert_card_into_post; int HP_pc_steal_item_pre; int HP_pc_steal_item_post; int HP_pc_steal_coin_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index 6501c0943..4e23425ec 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -1880,6 +1880,8 @@ struct HookingPointData HookingPoints[] = { { HP_POP(pc->bonus5, HP_pc_bonus5) }, { HP_POP(pc->skill, HP_pc_skill) }, { HP_POP(pc->insert_card, HP_pc_insert_card) }, + { HP_POP(pc->can_insert_card, HP_pc_can_insert_card) }, + { HP_POP(pc->can_insert_card_into, HP_pc_can_insert_card_into) }, { HP_POP(pc->steal_item, HP_pc_steal_item) }, { HP_POP(pc->steal_coin, HP_pc_steal_coin) }, { HP_POP(pc->modifybuyvalue, HP_pc_modifybuyvalue) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 04f31aea5..85f477bec 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -49461,6 +49461,60 @@ int HP_pc_insert_card(struct map_session_data *sd, int idx_card, int idx_equip) } return retVal___; } +bool HP_pc_can_insert_card(struct map_session_data *sd, int idx_card) { + int hIndex = 0; + bool retVal___ = false; + if( HPMHooks.count.HP_pc_can_insert_card_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *idx_card); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_insert_card_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_can_insert_card_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx_card); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.can_insert_card(sd, idx_card); + } + if( HPMHooks.count.HP_pc_can_insert_card_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *idx_card); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_insert_card_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_can_insert_card_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx_card); + } + } + return retVal___; +} +bool HP_pc_can_insert_card_into(struct map_session_data *sd, int idx_card, int idx_equip) { + int hIndex = 0; + bool retVal___ = false; + if( HPMHooks.count.HP_pc_can_insert_card_into_pre ) { + bool (*preHookFunc) (struct map_session_data *sd, int *idx_card, int *idx_equip); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_insert_card_into_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_pc_can_insert_card_into_pre[hIndex].func; + retVal___ = preHookFunc(sd, &idx_card, &idx_equip); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.pc.can_insert_card_into(sd, idx_card, idx_equip); + } + if( HPMHooks.count.HP_pc_can_insert_card_into_post ) { + bool (*postHookFunc) (bool retVal___, struct map_session_data *sd, int *idx_card, int *idx_equip); + for(hIndex = 0; hIndex < HPMHooks.count.HP_pc_can_insert_card_into_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_pc_can_insert_card_into_post[hIndex].func; + retVal___ = postHookFunc(retVal___, sd, &idx_card, &idx_equip); + } + } + return retVal___; +} int HP_pc_steal_item(struct map_session_data *sd, struct block_list *bl, uint16 skill_lv) { int hIndex = 0; int retVal___ = 0; |