diff options
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking.Defs.inc | 12 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc | 24 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc | 6 | ||||
-rw-r--r-- | src/plugins/HPMHooking/HPMHooking_map.Hooks.inc | 159 |
4 files changed, 201 insertions, 0 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking.Defs.inc b/src/plugins/HPMHooking/HPMHooking.Defs.inc index 4f033ccaf..756c849fd 100644 --- a/src/plugins/HPMHooking/HPMHooking.Defs.inc +++ b/src/plugins/HPMHooking/HPMHooking.Defs.inc @@ -114,6 +114,8 @@ typedef struct Damage (*HPMHOOK_pre_battle_calc_attack) (int *attack_type, struc typedef struct Damage (*HPMHOOK_post_battle_calc_attack) (struct Damage retVal___, int attack_type, struct block_list *bl, struct block_list *target, uint16 skill_id, uint16 skill_lv, int count); typedef int64 (*HPMHOOK_pre_battle_calc_damage) (struct block_list **src, struct block_list **bl, struct Damage **d, int64 *damage, uint16 *skill_id, uint16 *skill_lv); typedef int64 (*HPMHOOK_post_battle_calc_damage) (int64 retVal___, struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv); +typedef int64 (*HPMHOOK_pre_battle_calc_pc_damage) (struct block_list **src, struct block_list **bl, struct Damage **d, int64 *damage, uint16 *skill_id, uint16 *skill_lv); +typedef int64 (*HPMHOOK_post_battle_calc_pc_damage) (int64 retVal___, struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv); typedef int64 (*HPMHOOK_pre_battle_calc_gvg_damage) (struct block_list **src, struct block_list **bl, int64 *damage, int *div_, uint16 *skill_id, uint16 *skill_lv, int *flag); typedef int64 (*HPMHOOK_post_battle_calc_gvg_damage) (int64 retVal___, struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag); typedef int64 (*HPMHOOK_pre_battle_calc_bg_damage) (struct block_list **src, struct block_list **bl, int64 *damage, int *div_, uint16 *skill_id, uint16 *skill_lv, int *flag); @@ -6314,8 +6316,12 @@ typedef int (*HPMHOOK_pre_skill_enchant_elemental_end) (struct block_list **bl, typedef int (*HPMHOOK_post_skill_enchant_elemental_end) (int retVal___, struct block_list *bl, int type); typedef int (*HPMHOOK_pre_skill_not_ok) (uint16 *skill_id, struct map_session_data **sd); typedef int (*HPMHOOK_post_skill_not_ok) (int retVal___, uint16 skill_id, struct map_session_data *sd); +typedef int (*HPMHOOK_pre_skill_not_ok_unknown) (uint16 *skill_id, struct map_session_data **sd); +typedef int (*HPMHOOK_post_skill_not_ok_unknown) (int retVal___, uint16 skill_id, struct map_session_data *sd); typedef int (*HPMHOOK_pre_skill_not_ok_hom) (uint16 *skill_id, struct homun_data **hd); typedef int (*HPMHOOK_post_skill_not_ok_hom) (int retVal___, uint16 skill_id, struct homun_data *hd); +typedef int (*HPMHOOK_pre_skill_not_ok_hom_unknown) (uint16 *skill_id, struct homun_data **hd); +typedef int (*HPMHOOK_post_skill_not_ok_hom_unknown) (int retVal___, uint16 skill_id, struct homun_data *hd); typedef int (*HPMHOOK_pre_skill_not_ok_mercenary) (uint16 *skill_id, struct mercenary_data **md); typedef int (*HPMHOOK_post_skill_not_ok_mercenary) (int retVal___, uint16 skill_id, struct mercenary_data *md); typedef int (*HPMHOOK_pre_skill_chastle_mob_changetarget) (struct block_list **bl, va_list ap); @@ -6326,6 +6332,8 @@ typedef int (*HPMHOOK_pre_skill_produce_mix) (struct map_session_data **sd, uint typedef int (*HPMHOOK_post_skill_produce_mix) (int retVal___, struct map_session_data *sd, uint16 skill_id, int nameid, int slot1, int slot2, int slot3, int qty); typedef int (*HPMHOOK_pre_skill_arrow_create) (struct map_session_data **sd, int *nameid); typedef int (*HPMHOOK_post_skill_arrow_create) (int retVal___, struct map_session_data *sd, int nameid); +typedef void (*HPMHOOK_pre_skill_castend_type) (int *type, struct block_list **src, struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag); +typedef void (*HPMHOOK_post_skill_castend_type) (int type, struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag); typedef int (*HPMHOOK_pre_skill_castend_nodamage_id) (struct block_list **src, struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag); typedef int (*HPMHOOK_post_skill_castend_nodamage_id) (int retVal___, struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag); typedef int (*HPMHOOK_pre_skill_castend_damage_id) (struct block_list **src, struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag); @@ -6410,6 +6418,8 @@ typedef void (*HPMHOOK_pre_skill_unitsetmapcell) (struct skill_unit **src, uint1 typedef void (*HPMHOOK_post_skill_unitsetmapcell) (struct skill_unit *src, uint16 skill_id, uint16 skill_lv, cell_t cell, bool flag); typedef int (*HPMHOOK_pre_skill_unit_onplace_timer) (struct skill_unit **src, struct block_list **bl, int64 *tick); typedef int (*HPMHOOK_post_skill_unit_onplace_timer) (int retVal___, struct skill_unit *src, struct block_list *bl, int64 tick); +typedef void (*HPMHOOK_pre_skill_unit_onplace_timer_unknown) (struct skill_unit **src, struct block_list **bl, int64 **tick); +typedef void (*HPMHOOK_post_skill_unit_onplace_timer_unknown) (struct skill_unit *src, struct block_list *bl, int64 *tick); typedef int (*HPMHOOK_pre_skill_unit_effect) (struct block_list **bl, va_list ap); typedef int (*HPMHOOK_post_skill_unit_effect) (int retVal___, struct block_list *bl, va_list ap); typedef int (*HPMHOOK_pre_skill_unit_timer_sub_onplace) (struct block_list **bl, va_list ap); @@ -6430,6 +6440,8 @@ typedef int (*HPMHOOK_pre_skill_unit_timer_sub) (union DBKey *key, struct DBData typedef int (*HPMHOOK_post_skill_unit_timer_sub) (int retVal___, union DBKey key, struct DBData *data, va_list ap); typedef void (*HPMHOOK_pre_skill_init_unit_layout) (void); typedef void (*HPMHOOK_post_skill_init_unit_layout) (void); +typedef void (*HPMHOOK_pre_skill_init_unit_layout_unknown) (int *skill_idx); +typedef void (*HPMHOOK_post_skill_init_unit_layout_unknown) (int skill_idx); typedef void (*HPMHOOK_pre_skill_validate_hittype) (struct config_setting_t **conf, struct s_skill_db **sk); typedef void (*HPMHOOK_post_skill_validate_hittype) (struct config_setting_t *conf, struct s_skill_db *sk); typedef void (*HPMHOOK_pre_skill_validate_skilltype) (struct config_setting_t **conf, struct s_skill_db **sk); diff --git a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc index 7131f486c..82123c633 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HPMHooksCore.inc @@ -110,6 +110,8 @@ struct { struct HPMHookPoint *HP_battle_calc_attack_post; struct HPMHookPoint *HP_battle_calc_damage_pre; struct HPMHookPoint *HP_battle_calc_damage_post; + struct HPMHookPoint *HP_battle_calc_pc_damage_pre; + struct HPMHookPoint *HP_battle_calc_pc_damage_post; struct HPMHookPoint *HP_battle_calc_gvg_damage_pre; struct HPMHookPoint *HP_battle_calc_gvg_damage_post; struct HPMHookPoint *HP_battle_calc_bg_damage_pre; @@ -5134,8 +5136,12 @@ struct { struct HPMHookPoint *HP_skill_enchant_elemental_end_post; struct HPMHookPoint *HP_skill_not_ok_pre; struct HPMHookPoint *HP_skill_not_ok_post; + struct HPMHookPoint *HP_skill_not_ok_unknown_pre; + struct HPMHookPoint *HP_skill_not_ok_unknown_post; struct HPMHookPoint *HP_skill_not_ok_hom_pre; struct HPMHookPoint *HP_skill_not_ok_hom_post; + struct HPMHookPoint *HP_skill_not_ok_hom_unknown_pre; + struct HPMHookPoint *HP_skill_not_ok_hom_unknown_post; struct HPMHookPoint *HP_skill_not_ok_mercenary_pre; struct HPMHookPoint *HP_skill_not_ok_mercenary_post; struct HPMHookPoint *HP_skill_chastle_mob_changetarget_pre; @@ -5146,6 +5152,8 @@ struct { struct HPMHookPoint *HP_skill_produce_mix_post; struct HPMHookPoint *HP_skill_arrow_create_pre; struct HPMHookPoint *HP_skill_arrow_create_post; + struct HPMHookPoint *HP_skill_castend_type_pre; + struct HPMHookPoint *HP_skill_castend_type_post; struct HPMHookPoint *HP_skill_castend_nodamage_id_pre; struct HPMHookPoint *HP_skill_castend_nodamage_id_post; struct HPMHookPoint *HP_skill_castend_damage_id_pre; @@ -5230,6 +5238,8 @@ struct { struct HPMHookPoint *HP_skill_unitsetmapcell_post; struct HPMHookPoint *HP_skill_unit_onplace_timer_pre; struct HPMHookPoint *HP_skill_unit_onplace_timer_post; + struct HPMHookPoint *HP_skill_unit_onplace_timer_unknown_pre; + struct HPMHookPoint *HP_skill_unit_onplace_timer_unknown_post; struct HPMHookPoint *HP_skill_unit_effect_pre; struct HPMHookPoint *HP_skill_unit_effect_post; struct HPMHookPoint *HP_skill_unit_timer_sub_onplace_pre; @@ -5250,6 +5260,8 @@ struct { struct HPMHookPoint *HP_skill_unit_timer_sub_post; struct HPMHookPoint *HP_skill_init_unit_layout_pre; struct HPMHookPoint *HP_skill_init_unit_layout_post; + struct HPMHookPoint *HP_skill_init_unit_layout_unknown_pre; + struct HPMHookPoint *HP_skill_init_unit_layout_unknown_post; struct HPMHookPoint *HP_skill_validate_hittype_pre; struct HPMHookPoint *HP_skill_validate_hittype_post; struct HPMHookPoint *HP_skill_validate_skilltype_pre; @@ -6149,6 +6161,8 @@ struct { int HP_battle_calc_attack_post; int HP_battle_calc_damage_pre; int HP_battle_calc_damage_post; + int HP_battle_calc_pc_damage_pre; + int HP_battle_calc_pc_damage_post; int HP_battle_calc_gvg_damage_pre; int HP_battle_calc_gvg_damage_post; int HP_battle_calc_bg_damage_pre; @@ -11173,8 +11187,12 @@ struct { int HP_skill_enchant_elemental_end_post; int HP_skill_not_ok_pre; int HP_skill_not_ok_post; + int HP_skill_not_ok_unknown_pre; + int HP_skill_not_ok_unknown_post; int HP_skill_not_ok_hom_pre; int HP_skill_not_ok_hom_post; + int HP_skill_not_ok_hom_unknown_pre; + int HP_skill_not_ok_hom_unknown_post; int HP_skill_not_ok_mercenary_pre; int HP_skill_not_ok_mercenary_post; int HP_skill_chastle_mob_changetarget_pre; @@ -11185,6 +11203,8 @@ struct { int HP_skill_produce_mix_post; int HP_skill_arrow_create_pre; int HP_skill_arrow_create_post; + int HP_skill_castend_type_pre; + int HP_skill_castend_type_post; int HP_skill_castend_nodamage_id_pre; int HP_skill_castend_nodamage_id_post; int HP_skill_castend_damage_id_pre; @@ -11269,6 +11289,8 @@ struct { int HP_skill_unitsetmapcell_post; int HP_skill_unit_onplace_timer_pre; int HP_skill_unit_onplace_timer_post; + int HP_skill_unit_onplace_timer_unknown_pre; + int HP_skill_unit_onplace_timer_unknown_post; int HP_skill_unit_effect_pre; int HP_skill_unit_effect_post; int HP_skill_unit_timer_sub_onplace_pre; @@ -11289,6 +11311,8 @@ struct { int HP_skill_unit_timer_sub_post; int HP_skill_init_unit_layout_pre; int HP_skill_init_unit_layout_post; + int HP_skill_init_unit_layout_unknown_pre; + int HP_skill_init_unit_layout_unknown_post; int HP_skill_validate_hittype_pre; int HP_skill_validate_hittype_post; int HP_skill_validate_skilltype_pre; diff --git a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc index cbf7ba79f..f03cd3c37 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.HookingPoints.inc @@ -71,6 +71,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(battle->final, HP_battle_final) }, { HP_POP(battle->calc_attack, HP_battle_calc_attack) }, { HP_POP(battle->calc_damage, HP_battle_calc_damage) }, + { HP_POP(battle->calc_pc_damage, HP_battle_calc_pc_damage) }, { HP_POP(battle->calc_gvg_damage, HP_battle_calc_gvg_damage) }, { HP_POP(battle->calc_bg_damage, HP_battle_calc_bg_damage) }, { HP_POP(battle->weapon_attack, HP_battle_weapon_attack) }, @@ -2631,12 +2632,15 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->can_cloak, HP_skill_can_cloak) }, { HP_POP(skill->enchant_elemental_end, HP_skill_enchant_elemental_end) }, { HP_POP(skill->not_ok, HP_skill_not_ok) }, + { HP_POP(skill->not_ok_unknown, HP_skill_not_ok_unknown) }, { HP_POP(skill->not_ok_hom, HP_skill_not_ok_hom) }, + { HP_POP(skill->not_ok_hom_unknown, HP_skill_not_ok_hom_unknown) }, { HP_POP(skill->not_ok_mercenary, HP_skill_not_ok_mercenary) }, { HP_POP(skill->chastle_mob_changetarget, HP_skill_chastle_mob_changetarget) }, { HP_POP(skill->can_produce_mix, HP_skill_can_produce_mix) }, { HP_POP(skill->produce_mix, HP_skill_produce_mix) }, { HP_POP(skill->arrow_create, HP_skill_arrow_create) }, + { HP_POP(skill->castend_type, HP_skill_castend_type) }, { HP_POP(skill->castend_nodamage_id, HP_skill_castend_nodamage_id) }, { HP_POP(skill->castend_damage_id, HP_skill_castend_damage_id) }, { HP_POP(skill->castend_pos2, HP_skill_castend_pos2) }, @@ -2679,6 +2683,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->sit_out, HP_skill_sit_out) }, { HP_POP(skill->unitsetmapcell, HP_skill_unitsetmapcell) }, { HP_POP(skill->unit_onplace_timer, HP_skill_unit_onplace_timer) }, + { HP_POP(skill->unit_onplace_timer_unknown, HP_skill_unit_onplace_timer_unknown) }, { HP_POP(skill->unit_effect, HP_skill_unit_effect) }, { HP_POP(skill->unit_timer_sub_onplace, HP_skill_unit_timer_sub_onplace) }, { HP_POP(skill->unit_move_sub, HP_skill_unit_move_sub) }, @@ -2689,6 +2694,7 @@ struct HookingPointData HookingPoints[] = { { HP_POP(skill->unit_timer, HP_skill_unit_timer) }, { HP_POP(skill->unit_timer_sub, HP_skill_unit_timer_sub) }, { HP_POP(skill->init_unit_layout, HP_skill_init_unit_layout) }, + { HP_POP(skill->init_unit_layout_unknown, HP_skill_init_unit_layout_unknown) }, { HP_POP(skill->validate_hittype, HP_skill_validate_hittype) }, { HP_POP(skill->validate_skilltype, HP_skill_validate_skilltype) }, { HP_POP(skill->validate_attacktype, HP_skill_validate_attacktype) }, diff --git a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc index 2317f9392..a948733f0 100644 --- a/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc +++ b/src/plugins/HPMHooking/HPMHooking_map.Hooks.inc @@ -1186,6 +1186,33 @@ int64 HP_battle_calc_damage(struct block_list *src, struct block_list *bl, struc } return retVal___; } +int64 HP_battle_calc_pc_damage(struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv) { + int hIndex = 0; + int64 retVal___ = 0; + if( HPMHooks.count.HP_battle_calc_pc_damage_pre ) { + int64 (*preHookFunc) (struct block_list **src, struct block_list **bl, struct Damage **d, int64 *damage, uint16 *skill_id, uint16 *skill_lv); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_pc_damage_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_battle_calc_pc_damage_pre[hIndex].func; + retVal___ = preHookFunc(&src, &bl, &d, &damage, &skill_id, &skill_lv); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.battle.calc_pc_damage(src, bl, d, damage, skill_id, skill_lv); + } + if( HPMHooks.count.HP_battle_calc_pc_damage_post ) { + int64 (*postHookFunc) (int64 retVal___, struct block_list *src, struct block_list *bl, struct Damage *d, int64 damage, uint16 skill_id, uint16 skill_lv); + for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_pc_damage_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_battle_calc_pc_damage_post[hIndex].func; + retVal___ = postHookFunc(retVal___, src, bl, d, damage, skill_id, skill_lv); + } + } + return retVal___; +} int64 HP_battle_calc_gvg_damage(struct block_list *src, struct block_list *bl, int64 damage, int div_, uint16 skill_id, uint16 skill_lv, int flag) { int hIndex = 0; int64 retVal___ = 0; @@ -68608,6 +68635,33 @@ int HP_skill_not_ok(uint16 skill_id, struct map_session_data *sd) { } return retVal___; } +int HP_skill_not_ok_unknown(uint16 skill_id, struct map_session_data *sd) { + int hIndex = 0; + int retVal___ = 0; + if( HPMHooks.count.HP_skill_not_ok_unknown_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct map_session_data **sd); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_unknown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_not_ok_unknown_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &sd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.not_ok_unknown(skill_id, sd); + } + if( HPMHooks.count.HP_skill_not_ok_unknown_post ) { + int (*postHookFunc) (int retVal___, uint16 skill_id, struct map_session_data *sd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_unknown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_not_ok_unknown_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, sd); + } + } + return retVal___; +} int HP_skill_not_ok_hom(uint16 skill_id, struct homun_data *hd) { int hIndex = 0; int retVal___ = 0; @@ -68635,6 +68689,33 @@ int HP_skill_not_ok_hom(uint16 skill_id, struct homun_data *hd) { } return retVal___; } +int HP_skill_not_ok_hom_unknown(uint16 skill_id, struct homun_data *hd) { + int hIndex = 0; + int retVal___ = 0; + if( HPMHooks.count.HP_skill_not_ok_hom_unknown_pre ) { + int (*preHookFunc) (uint16 *skill_id, struct homun_data **hd); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_hom_unknown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_not_ok_hom_unknown_pre[hIndex].func; + retVal___ = preHookFunc(&skill_id, &hd); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return retVal___; + } + } + { + retVal___ = HPMHooks.source.skill.not_ok_hom_unknown(skill_id, hd); + } + if( HPMHooks.count.HP_skill_not_ok_hom_unknown_post ) { + int (*postHookFunc) (int retVal___, uint16 skill_id, struct homun_data *hd); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_not_ok_hom_unknown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_not_ok_hom_unknown_post[hIndex].func; + retVal___ = postHookFunc(retVal___, skill_id, hd); + } + } + return retVal___; +} int HP_skill_not_ok_mercenary(uint16 skill_id, struct mercenary_data *md) { int hIndex = 0; int retVal___ = 0; @@ -68776,6 +68857,32 @@ int HP_skill_arrow_create(struct map_session_data *sd, int nameid) { } return retVal___; } +void HP_skill_castend_type(int type, struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_castend_type_pre ) { + void (*preHookFunc) (int *type, struct block_list **src, struct block_list **bl, uint16 *skill_id, uint16 *skill_lv, int64 *tick, int *flag); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_type_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_castend_type_pre[hIndex].func; + preHookFunc(&type, &src, &bl, &skill_id, &skill_lv, &tick, &flag); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.castend_type(type, src, bl, skill_id, skill_lv, tick, flag); + } + if( HPMHooks.count.HP_skill_castend_type_post ) { + void (*postHookFunc) (int type, struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_castend_type_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_castend_type_post[hIndex].func; + postHookFunc(type, src, bl, skill_id, skill_lv, tick, flag); + } + } + return; +} int HP_skill_castend_nodamage_id(struct block_list *src, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int64 tick, int flag) { int hIndex = 0; int retVal___ = 0; @@ -70008,6 +70115,32 @@ int HP_skill_unit_onplace_timer(struct skill_unit *src, struct block_list *bl, i } return retVal___; } +void HP_skill_unit_onplace_timer_unknown(struct skill_unit *src, struct block_list *bl, int64 *tick) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_unit_onplace_timer_unknown_pre ) { + void (*preHookFunc) (struct skill_unit **src, struct block_list **bl, int64 **tick); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onplace_timer_unknown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_unit_onplace_timer_unknown_pre[hIndex].func; + preHookFunc(&src, &bl, &tick); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.unit_onplace_timer_unknown(src, bl, tick); + } + if( HPMHooks.count.HP_skill_unit_onplace_timer_unknown_post ) { + void (*postHookFunc) (struct skill_unit *src, struct block_list *bl, int64 *tick); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_unit_onplace_timer_unknown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_unit_onplace_timer_unknown_post[hIndex].func; + postHookFunc(src, bl, tick); + } + } + return; +} int HP_skill_unit_effect(struct block_list *bl, va_list ap) { int hIndex = 0; int retVal___ = 0; @@ -70301,6 +70434,32 @@ void HP_skill_init_unit_layout(void) { } return; } +void HP_skill_init_unit_layout_unknown(int skill_idx) { + int hIndex = 0; + if( HPMHooks.count.HP_skill_init_unit_layout_unknown_pre ) { + void (*preHookFunc) (int *skill_idx); + *HPMforce_return = false; + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unit_layout_unknown_pre; hIndex++ ) { + preHookFunc = HPMHooks.list.HP_skill_init_unit_layout_unknown_pre[hIndex].func; + preHookFunc(&skill_idx); + } + if( *HPMforce_return ) { + *HPMforce_return = false; + return; + } + } + { + HPMHooks.source.skill.init_unit_layout_unknown(skill_idx); + } + if( HPMHooks.count.HP_skill_init_unit_layout_unknown_post ) { + void (*postHookFunc) (int skill_idx); + for(hIndex = 0; hIndex < HPMHooks.count.HP_skill_init_unit_layout_unknown_post; hIndex++ ) { + postHookFunc = HPMHooks.list.HP_skill_init_unit_layout_unknown_post[hIndex].func; + postHookFunc(skill_idx); + } + } + return; +} void HP_skill_validate_hittype(struct config_setting_t *conf, struct s_skill_db *sk) { int hIndex = 0; if( HPMHooks.count.HP_skill_validate_hittype_pre ) { |