summaryrefslogtreecommitdiff
path: root/src/map/clif.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/clif.c')
-rw-r--r--src/map/clif.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index bc4ade158..a1fc5447d 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -1865,8 +1865,8 @@ int clif_changemapserver(struct map_session_data *sd, char *mapname, int x, int
int clif_blown(struct block_list *bl) {
//Aegis packets says fixpos, but it's unsure whether slide works better or not.
-// return clif_fixpos(bl);
- return clif_slide(bl, bl->x, bl->y);
+ return clif_fixpos(bl);
+// return clif_slide(bl, bl->x, bl->y);
}
/*==========================================
*
@@ -4515,7 +4515,7 @@ int clif_skill_fail(struct map_session_data *sd,int skill_id,int type,int btype)
*------------------------------------------
*/
int clif_skill_damage(struct block_list *src,struct block_list *dst,
- unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type)
+ unsigned int tick,int sdelay,int ddelay,int damage,int div,int skill_id,int skill_lv,int type,int flag)
{
unsigned char buf[64];
struct status_change *sc;
@@ -4540,13 +4540,19 @@ int clif_skill_damage(struct block_list *src,struct block_list *dst,
WBUFL(buf,12)=tick;
WBUFL(buf,16)=sdelay;
WBUFL(buf,20)=ddelay;
+ WBUFW(buf,26)=skill_lv;
+ WBUFW(buf,28)=div;
+ if (flag && src->type == BL_PC)
+ { //Needed for appropiate knockback on the receiving client.
+ WBUFW(buf,24)=-30000;
+ WBUFB(buf,30)=6;
+ clif_send(buf,packet_len_table[0x114],src,SELF);
+ }
if (battle_config.hide_woe_damage && map_flag_gvg(src->m)) {
WBUFW(buf,24)=damage?div:0;
} else {
WBUFW(buf,24)=damage;
}
- WBUFW(buf,26)=skill_lv;
- WBUFW(buf,28)=div;
WBUFB(buf,30)=type;
clif_send(buf,packet_len_table[0x114],src,AREA);
if(disguised(src)) {
@@ -4571,13 +4577,19 @@ int clif_skill_damage(struct block_list *src,struct block_list *dst,
WBUFL(buf,12)=tick;
WBUFL(buf,16)=sdelay;
WBUFL(buf,20)=ddelay;
+ WBUFW(buf,28)=skill_lv;
+ WBUFW(buf,30)=div;
+ if (flag && src->type == BL_PC)
+ { //Needed for appropiate knockback on the receiving client.
+ WBUFL(buf,24)=-30000;
+ WBUFB(buf,32)=6;
+ clif_send(buf,packet_len_table[0x114],src,SELF);
+ }
if (battle_config.hide_woe_damage && map_flag_gvg(src->m)) {
WBUFL(buf,24)=damage?div:0;
} else {
WBUFL(buf,24)=damage;
}
- WBUFW(buf,28)=skill_lv;
- WBUFW(buf,30)=div;
WBUFB(buf,32)=type;
clif_send(buf,packet_len_table[0x1de],src,AREA);
if(disguised(src)) {