diff options
Diffstat (limited to 'src/map/clif.c')
-rw-r--r-- | src/map/clif.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 3b15f3e1a..ffbc78cb1 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -99,6 +99,21 @@ static int max_char_id = DEFAULT_MAX_CHAR_ID; int clif_parse (int fd); /*========================================== + * Send specials effect to tarjet + *------------------------------------------*/ +int clif_specialeffecttoone(struct block_list *bl, struct block_list *dst, int type) +{ + struct map_session_data *sd = (struct map_session_data *)dst; + + WFIFOW(sd->fd,0) = 0x1f3; + WFIFOL(sd->fd,2) = bl->id; + WFIFOL(sd->fd,6) = type; + WFIFOSET(sd->fd, packet_len(0x1f3)); + + return 0; +} + +/*========================================== * mapŽI‚ÌipÝ’è *------------------------------------------*/ int clif_setip(const char* ip) @@ -3428,15 +3443,15 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) clif_refreshlook(&sd->bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,SELF); switch (bl->type) - { // FIXME: 'AREA' causes unneccessary spam since this should be 1:1 communication [ultramage] + { case BL_PC: { TBL_PC* tsd = (TBL_PC*)bl; clif_getareachar_pc(sd, tsd); if(tsd->state.size==2) // tiny/big players [Valaris] - clif_specialeffect(bl,423,AREA); + clif_specialeffecttoone(bl, &sd->bl, 423); else if(tsd->state.size==1) - clif_specialeffect(bl,421,AREA); + clif_specialeffecttoone(bl, &sd->bl, 421); } break; case BL_NPC: @@ -3450,9 +3465,9 @@ void clif_getareachar_unit(struct map_session_data* sd,struct block_list *bl) { TBL_MOB* md = (TBL_MOB*)bl; if(md->special_state.size==2) // tiny/big mobs [Valaris] - clif_specialeffect(bl,423,AREA); + clif_specialeffecttoone(bl, &sd->bl, 423); else if(md->special_state.size==1) - clif_specialeffect(bl,421,AREA); + clif_specialeffecttoone(bl, &sd->bl, 421); } break; case BL_PET: |