From ae13db97ea770e37450e4e2c1a7919ce98d705a8 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Thu, 28 Nov 2013 13:20:02 -0200 Subject: 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 --- src/map/clif.h | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'src/map/clif.h') 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 /** @@ -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 *------------------------*/ -- cgit v1.2.3-60-g2f50