diff options
author | shennetsind <ind@henn.et> | 2013-11-28 13:20:02 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-11-28 13:20:02 -0200 |
commit | ae13db97ea770e37450e4e2c1a7919ce98d705a8 (patch) | |
tree | 193e3c349f022e2d76df2a0bc462476e29a91cb1 /src/map/clif.h | |
parent | 2761bb0af9ddfa8bd14cefa9b6e1b33b2940e7be (diff) | |
download | hercules-ae13db97ea770e37450e4e2c1a7919ce98d705a8.tar.gz hercules-ae13db97ea770e37450e4e2c1a7919ce98d705a8.tar.bz2 hercules-ae13db97ea770e37450e4e2c1a7919ce98d705a8.tar.xz hercules-ae13db97ea770e37450e4e2c1a7919ce98d705a8.zip |
Follow up fdb6de1aa34086fd4d22ae127437727f556cea3c
Modified reflect code so that each reflection source can judge whether to apply or not, necessary for mechanics such as item-bonus reflect triggers even on autoguard while reflect shield does not.
Re-added that "reflect shield" overhead display which I mistakenly removed in fdb6de1aa34086fd4d22ae127437727f556cea3c. Added code to refrain damage numbers from overlapping in the client, which would render them illegible.
Special Thanks to kyeme, Yommy.
http://hercules.ws/board/tracker/issue-7792-safety-wall-reflect-bug-body-relocation-error/
Signed-off-by: shennetsind <ind@henn.et>
Diffstat (limited to 'src/map/clif.h')
-rw-r--r-- | src/map/clif.h | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/map/clif.h b/src/map/clif.h index 890f2d4c2..8b78f27e9 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -9,6 +9,8 @@ #include "../common/db.h" #include "../common/mmo.h" #include "../common/socket.h" +#include "../map/map.h" +#include "../map/packets_struct.h" #include <stdarg.h> /** @@ -505,6 +507,11 @@ struct hCSData { unsigned int price; }; +struct cdelayed_damage { + struct packet_damage p; + struct block_list bl; +}; + /** * Vars **/ @@ -533,6 +540,8 @@ struct clif_interface { unsigned int cryptKey[3]; /* */ bool ally_only; + /* */ + struct eri *delayed_damage_ers; /* core */ int (*init) (bool minimal); void (*final) (void); @@ -634,7 +643,7 @@ struct clif_interface { void (*scriptclear) (struct map_session_data *sd, int npcid); /* client-user-interface-related */ void (*viewpoint) (struct map_session_data *sd, int npc_id, int type, int x, int y, int id, int color); - int (*damage) (struct block_list* src, struct block_list* dst, int64 tick, int sdelay, int ddelay, int64 damage, int div, int type, int64 damage2); + int (*damage) (struct block_list* src, struct block_list* dst, int sdelay, int ddelay, int64 damage, short div, unsigned char type, int64 damage2); void (*sitting) (struct block_list* bl); void (*standing) (struct block_list* bl); void (*arrow_create_list) (struct map_session_data *sd); @@ -1021,6 +1030,9 @@ struct clif_interface { void (*show_modifiers) (struct map_session_data *sd); /* */ void (*notify_bounditem) (struct map_session_data *sd, unsigned short index); + /* */ + int (*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 (*delay_damage_sub) (int tid, int64 tick, int id, intptr_t data); /*------------------------ *- Parse Incoming Packet *------------------------*/ |