|
@@ -98,6 +98,21 @@ static int max_char_id = DEFAULT_MAX_CHAR_ID;
|
|
|
|
|
|
int clif_parse (int fd);
|
|
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�Ý’è
|
|
* mapŽI‚Ì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);
|
|
clif_refreshlook(&sd->bl,bl->id,LOOK_CLOTHES_COLOR,vd->cloth_color,SELF);
|
|
|
|
|
|
switch (bl->type)
|
|
switch (bl->type)
|
|
- { // FIXME: 'AREA' causes unneccessary spam since this should be 1:1 communication [ultramage]
|
|
|
|
|
|
+ {
|
|
case BL_PC:
|
|
case BL_PC:
|
|
{
|
|
{
|
|
TBL_PC* tsd = (TBL_PC*)bl;
|
|
TBL_PC* tsd = (TBL_PC*)bl;
|
|
clif_getareachar_pc(sd, tsd);
|
|
clif_getareachar_pc(sd, tsd);
|
|
if(tsd->state.size==2) // tiny/big players [Valaris]
|
|
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)
|
|
else if(tsd->state.size==1)
|
|
- clif_specialeffect(bl,421,AREA);
|
|
|
|
|
|
+ clif_specialeffecttoone(bl, &sd->bl, 421);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case BL_NPC:
|
|
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;
|
|
TBL_MOB* md = (TBL_MOB*)bl;
|
|
if(md->special_state.size==2) // tiny/big mobs [Valaris]
|
|
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)
|
|
else if(md->special_state.size==1)
|
|
- clif_specialeffect(bl,421,AREA);
|
|
|
|
|
|
+ clif_specialeffecttoone(bl, &sd->bl, 421);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case BL_PET:
|
|
case BL_PET:
|