summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/clif.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/src/map/clif.c b/src/map/clif.c
index 06f180a35..5b32be54a 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -3339,6 +3339,10 @@ void clif_changelook(struct block_list *bl,int type,int val)
WBUFL(buf,7)=val;
}
clif->send(buf,packet_len(0x1d7),bl,target);
+ if( disguised(bl) && ((TBL_PC*)sd)->fontcolor ) {
+ WBUFL(buf,2)=-bl->id;
+ clif->send(buf,packet_len(0x1d7),bl,SELF);
+ }
#endif
}
@@ -5789,9 +5793,14 @@ void clif_resurrection(struct block_list *bl,int type)
WBUFL(buf,2)=bl->id;
WBUFW(buf,6)=0;
- clif->send(buf,packet_len(0x148),bl,type==1 ? AREA : AREA_WOS);
- if (disguised(bl))
- clif->spawn(bl);
+ clif->send(buf,packet_len(0x148),bl, type == 1 ? AREA : AREA_WOS);
+ if (disguised(bl)) {
+ if( ((TBL_PC*)bl)->fontcolor ) {
+ WBUFL(buf,2)=-bl->id;
+ clif->send(buf,packet_len(0x148),bl, SELF);
+ } else
+ clif->spawn(bl);
+ }
}
@@ -9874,6 +9883,8 @@ void clif_parse_GlobalMessage(int fd, struct map_session_data* sd)
if( sd->disguise == -1 ) {
pc_disguise(sd,sd->status.class_);
+ if( pc_isdead(sd) )
+ clif_clearunit_single(-sd->bl.id, CLR_DEAD, sd->fd);
sd->fontcolor_tid = add_timer(gettick()+5000, clif->undisguise_timer, sd->bl.id, 0);
} else if ( sd->disguise == sd->status.class_ && sd->fontcolor_tid != INVALID_TIMER ) {
const struct TimerData *timer;