summaryrefslogtreecommitdiff
path: root/src/plugins/HPMHooking
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/HPMHooking')
-rw-r--r--src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc24
-rw-r--r--src/plugins/HPMHooking/HPMHooking.HookingPoints.inc6
-rw-r--r--src/plugins/HPMHooking/HPMHooking.Hooks.inc156
3 files changed, 154 insertions, 32 deletions
diff --git a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc b/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
index 1f64a5057..9914c2f17 100644
--- a/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
+++ b/src/plugins/HPMHooking/HPMHooking.HPMHooksCore.inc
@@ -63,6 +63,8 @@ struct {
struct HPMHookPoint *HP_atcommand_base_commands_post;
struct HPMHookPoint *HP_atcommand_add_pre;
struct HPMHookPoint *HP_atcommand_add_post;
+ struct HPMHookPoint *HP_atcommand_msg_pre;
+ struct HPMHookPoint *HP_atcommand_msg_post;
struct HPMHookPoint *HP_battle_init_pre;
struct HPMHookPoint *HP_battle_init_post;
struct HPMHookPoint *HP_battle_final_pre;
@@ -83,8 +85,8 @@ struct {
struct HPMHookPoint *HP_battle_delay_damage_post;
struct HPMHookPoint *HP_battle_drain_pre;
struct HPMHookPoint *HP_battle_drain_post;
- struct HPMHookPoint *HP_battle_calc_return_damage_pre;
- struct HPMHookPoint *HP_battle_calc_return_damage_post;
+ struct HPMHookPoint *HP_battle_reflect_damage_pre;
+ struct HPMHookPoint *HP_battle_reflect_damage_post;
struct HPMHookPoint *HP_battle_attr_ratio_pre;
struct HPMHookPoint *HP_battle_attr_ratio_post;
struct HPMHookPoint *HP_battle_attr_fix_pre;
@@ -469,6 +471,8 @@ struct {
struct HPMHookPoint *HP_clif_cashshop_load_post;
struct HPMHookPoint *HP_clif_package_announce_pre;
struct HPMHookPoint *HP_clif_package_announce_post;
+ struct HPMHookPoint *HP_clif_item_drop_announce_pre;
+ struct HPMHookPoint *HP_clif_item_drop_announce_post;
struct HPMHookPoint *HP_clif_clearunit_single_pre;
struct HPMHookPoint *HP_clif_clearunit_single_post;
struct HPMHookPoint *HP_clif_clearunit_area_pre;
@@ -1283,6 +1287,10 @@ struct {
struct HPMHookPoint *HP_clif_show_modifiers_post;
struct HPMHookPoint *HP_clif_notify_bounditem_pre;
struct HPMHookPoint *HP_clif_notify_bounditem_post;
+ struct HPMHookPoint *HP_clif_delay_damage_pre;
+ struct HPMHookPoint *HP_clif_delay_damage_post;
+ struct HPMHookPoint *HP_clif_delay_damage_sub_pre;
+ struct HPMHookPoint *HP_clif_delay_damage_sub_post;
struct HPMHookPoint *HP_clif_pWantToConnection_pre;
struct HPMHookPoint *HP_clif_pWantToConnection_post;
struct HPMHookPoint *HP_clif_pLoadEndAck_pre;
@@ -5024,6 +5032,8 @@ struct {
int HP_atcommand_base_commands_post;
int HP_atcommand_add_pre;
int HP_atcommand_add_post;
+ int HP_atcommand_msg_pre;
+ int HP_atcommand_msg_post;
int HP_battle_init_pre;
int HP_battle_init_post;
int HP_battle_final_pre;
@@ -5044,8 +5054,8 @@ struct {
int HP_battle_delay_damage_post;
int HP_battle_drain_pre;
int HP_battle_drain_post;
- int HP_battle_calc_return_damage_pre;
- int HP_battle_calc_return_damage_post;
+ int HP_battle_reflect_damage_pre;
+ int HP_battle_reflect_damage_post;
int HP_battle_attr_ratio_pre;
int HP_battle_attr_ratio_post;
int HP_battle_attr_fix_pre;
@@ -5430,6 +5440,8 @@ struct {
int HP_clif_cashshop_load_post;
int HP_clif_package_announce_pre;
int HP_clif_package_announce_post;
+ int HP_clif_item_drop_announce_pre;
+ int HP_clif_item_drop_announce_post;
int HP_clif_clearunit_single_pre;
int HP_clif_clearunit_single_post;
int HP_clif_clearunit_area_pre;
@@ -6244,6 +6256,10 @@ struct {
int HP_clif_show_modifiers_post;
int HP_clif_notify_bounditem_pre;
int HP_clif_notify_bounditem_post;
+ int HP_clif_delay_damage_pre;
+ int HP_clif_delay_damage_post;
+ int HP_clif_delay_damage_sub_pre;
+ int HP_clif_delay_damage_sub_post;
int HP_clif_pWantToConnection_pre;
int HP_clif_pWantToConnection_post;
int HP_clif_pLoadEndAck_pre;
diff --git a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc b/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
index 319887f92..1d0ef8654 100644
--- a/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
+++ b/src/plugins/HPMHooking/HPMHooking.HookingPoints.inc
@@ -35,6 +35,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(atcommand->doload, HP_atcommand_doload) },
{ HP_POP(atcommand->base_commands, HP_atcommand_base_commands) },
{ HP_POP(atcommand->add, HP_atcommand_add) },
+ { HP_POP(atcommand->msg, HP_atcommand_msg) },
/* battle */
{ HP_POP(battle->init, HP_battle_init) },
{ HP_POP(battle->final, HP_battle_final) },
@@ -46,7 +47,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(battle->calc_weapon_attack, HP_battle_calc_weapon_attack) },
{ HP_POP(battle->delay_damage, HP_battle_delay_damage) },
{ HP_POP(battle->drain, HP_battle_drain) },
- { HP_POP(battle->calc_return_damage, HP_battle_calc_return_damage) },
+ { HP_POP(battle->reflect_damage, HP_battle_reflect_damage) },
{ HP_POP(battle->attr_ratio, HP_battle_attr_ratio) },
{ HP_POP(battle->attr_fix, HP_battle_attr_fix) },
{ HP_POP(battle->calc_cardfix, HP_battle_calc_cardfix) },
@@ -244,6 +245,7 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->cart_additem_ack, HP_clif_cart_additem_ack) },
{ HP_POP(clif->cashshop_load, HP_clif_cashshop_load) },
{ HP_POP(clif->package_announce, HP_clif_package_announce) },
+ { HP_POP(clif->item_drop_announce, HP_clif_item_drop_announce) },
{ HP_POP(clif->clearunit_single, HP_clif_clearunit_single) },
{ HP_POP(clif->clearunit_area, HP_clif_clearunit_area) },
{ HP_POP(clif->clearunit_delayed, HP_clif_clearunit_delayed) },
@@ -651,6 +653,8 @@ struct HookingPointData HookingPoints[] = {
{ HP_POP(clif->bank_withdraw, HP_clif_bank_withdraw) },
{ HP_POP(clif->show_modifiers, HP_clif_show_modifiers) },
{ HP_POP(clif->notify_bounditem, HP_clif_notify_bounditem) },
+ { HP_POP(clif->delay_damage, HP_clif_delay_damage) },
+ { HP_POP(clif->delay_damage_sub, HP_clif_delay_damage_sub) },
{ HP_POP(clif->pWantToConnection, HP_clif_pWantToConnection) },
{ HP_POP(clif->pLoadEndAck, HP_clif_pLoadEndAck) },
{ HP_POP(clif->pTickSend, HP_clif_pTickSend) },
diff --git a/src/plugins/HPMHooking/HPMHooking.Hooks.inc b/src/plugins/HPMHooking/HPMHooking.Hooks.inc
index eaf04930a..06a1299d5 100644
--- a/src/plugins/HPMHooking/HPMHooking.Hooks.inc
+++ b/src/plugins/HPMHooking/HPMHooking.Hooks.inc
@@ -789,6 +789,32 @@ bool HP_atcommand_add(char *name, AtCommandFunc func, bool replace) {
}
return retVal___;
}
+const char* HP_atcommand_msg(int msg_number) {
+ int hIndex = 0;
+ const char* retVal___ = NULL;
+ if( HPMHooks.count.HP_atcommand_msg_pre ) {
+ const char* (*preHookFunc) (int *msg_number);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_msg_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_atcommand_msg_pre[hIndex].func;
+ retVal___ = preHookFunc(&msg_number);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.atcommand.msg(msg_number);
+ }
+ if( HPMHooks.count.HP_atcommand_msg_post ) {
+ const char* (*postHookFunc) (const char* retVal___, int *msg_number);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_atcommand_msg_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_atcommand_msg_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &msg_number);
+ }
+ }
+ return retVal___;
+}
/* battle */
void HP_battle_init(bool minimal) {
int hIndex = 0;
@@ -1049,31 +1075,30 @@ void HP_battle_drain(struct map_session_data *sd, struct block_list *tbl, int64
}
return;
}
-int64 HP_battle_calc_return_damage(struct block_list *target, struct block_list *src, int64 damage, int flag, uint16 skill_id) {
+void HP_battle_reflect_damage(struct block_list *target, struct block_list *src, struct Damage *wd, uint16 skill_id) {
int hIndex = 0;
- int64 retVal___ = 0;
- if( HPMHooks.count.HP_battle_calc_return_damage_pre ) {
- int64 (*preHookFunc) (struct block_list *target, struct block_list *src, int64 *damage, int *flag, uint16 *skill_id);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_return_damage_pre; hIndex++ ) {
- preHookFunc = HPMHooks.list.HP_battle_calc_return_damage_pre[hIndex].func;
- retVal___ = preHookFunc(target, src, &damage, &flag, &skill_id);
+ if( HPMHooks.count.HP_battle_reflect_damage_pre ) {
+ void (*preHookFunc) (struct block_list *target, struct block_list *src, struct Damage *wd, uint16 *skill_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_damage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_battle_reflect_damage_pre[hIndex].func;
+ preHookFunc(target, src, wd, &skill_id);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
- return retVal___;
+ return;
}
}
{
- retVal___ = HPMHooks.source.battle.calc_return_damage(target, src, damage, flag, skill_id);
+ HPMHooks.source.battle.reflect_damage(target, src, wd, skill_id);
}
- if( HPMHooks.count.HP_battle_calc_return_damage_post ) {
- int64 (*postHookFunc) (int64 retVal___, struct block_list *target, struct block_list *src, int64 *damage, int *flag, uint16 *skill_id);
- for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_calc_return_damage_post; hIndex++ ) {
- postHookFunc = HPMHooks.list.HP_battle_calc_return_damage_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, target, src, &damage, &flag, &skill_id);
+ if( HPMHooks.count.HP_battle_reflect_damage_post ) {
+ void (*postHookFunc) (struct block_list *target, struct block_list *src, struct Damage *wd, uint16 *skill_id);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_battle_reflect_damage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_battle_reflect_damage_post[hIndex].func;
+ postHookFunc(target, src, wd, &skill_id);
}
}
- return retVal___;
+ return;
}
int HP_battle_attr_ratio(int atk_elem, int def_type, int def_lv) {
int hIndex = 0;
@@ -6066,6 +6091,31 @@ void HP_clif_package_announce(struct map_session_data *sd, unsigned short nameid
}
return;
}
+void HP_clif_item_drop_announce(struct map_session_data *sd, unsigned short nameid, char *monsterName) {
+ int hIndex = 0;
+ if( HPMHooks.count.HP_clif_item_drop_announce_pre ) {
+ void (*preHookFunc) (struct map_session_data *sd, unsigned short *nameid, char *monsterName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_drop_announce_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_item_drop_announce_pre[hIndex].func;
+ preHookFunc(sd, &nameid, monsterName);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return;
+ }
+ }
+ {
+ HPMHooks.source.clif.item_drop_announce(sd, nameid, monsterName);
+ }
+ if( HPMHooks.count.HP_clif_item_drop_announce_post ) {
+ void (*postHookFunc) (struct map_session_data *sd, unsigned short *nameid, char *monsterName);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_item_drop_announce_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_item_drop_announce_post[hIndex].func;
+ postHookFunc(sd, &nameid, monsterName);
+ }
+ }
+ return;
+}
void HP_clif_clearunit_single(int id, clr_type type, int fd) {
int hIndex = 0;
if( HPMHooks.count.HP_clif_clearunit_single_pre ) {
@@ -7426,14 +7476,14 @@ void HP_clif_viewpoint(struct map_session_data *sd, int npc_id, int type, int x,
}
return;
}
-int HP_clif_damage(struct block_list *src, struct block_list *dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, int type, int64 damage2) {
+int HP_clif_damage(struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2) {
int hIndex = 0;
int retVal___ = 0;
if( HPMHooks.count.HP_clif_damage_pre ) {
- int (*preHookFunc) (struct block_list *src, struct block_list *dst, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2);
+ int (*preHookFunc) (struct block_list *src, struct block_list *dst, int *sdelay, int *ddelay, int64 *damage, short *div, unsigned char *type, int64 *damage2);
for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_damage_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_clif_damage_pre[hIndex].func;
- retVal___ = preHookFunc(src, dst, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2);
+ retVal___ = preHookFunc(src, dst, &sdelay, &ddelay, &damage, &div, &type, &damage2);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -7441,13 +7491,13 @@ int HP_clif_damage(struct block_list *src, struct block_list *dst, int64 tick, i
}
}
{
- retVal___ = HPMHooks.source.clif.damage(src, dst, tick, sdelay, ddelay, damage, div, type, damage2);
+ retVal___ = HPMHooks.source.clif.damage(src, dst, sdelay, ddelay, damage, div, type, damage2);
}
if( HPMHooks.count.HP_clif_damage_post ) {
- int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2);
+ int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *dst, int *sdelay, int *ddelay, int64 *damage, short *div, unsigned char *type, int64 *damage2);
for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_damage_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_clif_damage_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, src, dst, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2);
+ retVal___ = postHookFunc(retVal___, src, dst, &sdelay, &ddelay, &damage, &div, &type, &damage2);
}
}
return retVal___;
@@ -16298,6 +16348,58 @@ void HP_clif_notify_bounditem(struct map_session_data *sd, unsigned short index)
}
return;
}
+int HP_clif_delay_damage(int64 tick, struct block_list *src, struct block_list *dst, int sdelay, int ddelay, int64 in_damage, short div, unsigned char type) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_clif_delay_damage_pre ) {
+ int (*preHookFunc) (int64 *tick, struct block_list *src, struct block_list *dst, int *sdelay, int *ddelay, int64 *in_damage, short *div, unsigned char *type);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delay_damage_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_delay_damage_pre[hIndex].func;
+ retVal___ = preHookFunc(&tick, src, dst, &sdelay, &ddelay, &in_damage, &div, &type);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.clif.delay_damage(tick, src, dst, sdelay, ddelay, in_damage, div, type);
+ }
+ if( HPMHooks.count.HP_clif_delay_damage_post ) {
+ int (*postHookFunc) (int retVal___, int64 *tick, struct block_list *src, struct block_list *dst, int *sdelay, int *ddelay, int64 *in_damage, short *div, unsigned char *type);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delay_damage_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_delay_damage_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tick, src, dst, &sdelay, &ddelay, &in_damage, &div, &type);
+ }
+ }
+ return retVal___;
+}
+int HP_clif_delay_damage_sub(int tid, int64 tick, int id, intptr_t data) {
+ int hIndex = 0;
+ int retVal___ = 0;
+ if( HPMHooks.count.HP_clif_delay_damage_sub_pre ) {
+ int (*preHookFunc) (int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delay_damage_sub_pre; hIndex++ ) {
+ preHookFunc = HPMHooks.list.HP_clif_delay_damage_sub_pre[hIndex].func;
+ retVal___ = preHookFunc(&tid, &tick, &id, &data);
+ }
+ if( *HPMforce_return ) {
+ *HPMforce_return = false;
+ return retVal___;
+ }
+ }
+ {
+ retVal___ = HPMHooks.source.clif.delay_damage_sub(tid, tick, id, data);
+ }
+ if( HPMHooks.count.HP_clif_delay_damage_sub_post ) {
+ int (*postHookFunc) (int retVal___, int *tid, int64 *tick, int *id, intptr_t *data);
+ for(hIndex = 0; hIndex < HPMHooks.count.HP_clif_delay_damage_sub_post; hIndex++ ) {
+ postHookFunc = HPMHooks.list.HP_clif_delay_damage_sub_post[hIndex].func;
+ retVal___ = postHookFunc(retVal___, &tid, &tick, &id, &data);
+ }
+ }
+ return retVal___;
+}
void HP_clif_pWantToConnection(int fd, struct map_session_data *sd) {
int hIndex = 0;
if( HPMHooks.count.HP_clif_pWantToConnection_pre ) {
@@ -63960,14 +64062,14 @@ int HP_unit_counttargeted(struct block_list *bl) {
}
return retVal___;
}
-int HP_unit_fixdamage(struct block_list *src, struct block_list *target, int64 tick, int sdelay, int ddelay, int64 damage, int div, int type, int64 damage2) {
+int HP_unit_fixdamage(struct block_list *src, struct block_list *target, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2) {
int hIndex = 0;
int retVal___ = 0;
if( HPMHooks.count.HP_unit_fixdamage_pre ) {
- int (*preHookFunc) (struct block_list *src, struct block_list *target, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2);
+ int (*preHookFunc) (struct block_list *src, struct block_list *target, int *sdelay, int *ddelay, int64 *damage, short *div, unsigned char *type, int64 *damage2);
for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_fixdamage_pre; hIndex++ ) {
preHookFunc = HPMHooks.list.HP_unit_fixdamage_pre[hIndex].func;
- retVal___ = preHookFunc(src, target, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2);
+ retVal___ = preHookFunc(src, target, &sdelay, &ddelay, &damage, &div, &type, &damage2);
}
if( *HPMforce_return ) {
*HPMforce_return = false;
@@ -63975,13 +64077,13 @@ int HP_unit_fixdamage(struct block_list *src, struct block_list *target, int64 t
}
}
{
- retVal___ = HPMHooks.source.unit.fixdamage(src, target, tick, sdelay, ddelay, damage, div, type, damage2);
+ retVal___ = HPMHooks.source.unit.fixdamage(src, target, sdelay, ddelay, damage, div, type, damage2);
}
if( HPMHooks.count.HP_unit_fixdamage_post ) {
- int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, int64 *tick, int *sdelay, int *ddelay, int64 *damage, int *div, int *type, int64 *damage2);
+ int (*postHookFunc) (int retVal___, struct block_list *src, struct block_list *target, int *sdelay, int *ddelay, int64 *damage, short *div, unsigned char *type, int64 *damage2);
for(hIndex = 0; hIndex < HPMHooks.count.HP_unit_fixdamage_post; hIndex++ ) {
postHookFunc = HPMHooks.list.HP_unit_fixdamage_post[hIndex].func;
- retVal___ = postHookFunc(retVal___, src, target, &tick, &sdelay, &ddelay, &damage, &div, &type, &damage2);
+ retVal___ = postHookFunc(retVal___, src, target, &sdelay, &ddelay, &damage, &div, &type, &damage2);
}
}
return retVal___;