diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 26 |
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)) { |