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