diff options
author | shennetsind <ind@henn.et> | 2014-09-20 22:25:11 -0300 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2014-09-20 22:25:11 -0300 |
commit | 3e6e76b8c673e99d240a700912eb4d4a68b3be30 (patch) | |
tree | b8cca02f93b9252ed54a75bb596684a1f4cd2492 | |
parent | 204a558402678ad1b120397ea5da20b5695842a7 (diff) | |
download | hercules-3e6e76b8c673e99d240a700912eb4d4a68b3be30.tar.gz hercules-3e6e76b8c673e99d240a700912eb4d4a68b3be30.tar.bz2 hercules-3e6e76b8c673e99d240a700912eb4d4a68b3be30.tar.xz hercules-3e6e76b8c673e99d240a700912eb4d4a68b3be30.zip |
Fixed Bug 8186
Fixed issue with @disguise characters crashing their party mates when they open the party window.
Related 4147d9f7966e7ebd94811248527cc45af1e54941
http://hercules.ws/board/tracker/issue-8186-client-crashes-in-disguise-and-who/
Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r-- | src/map/clif.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index c7b0d11d0..b8051697e 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -3210,12 +3210,6 @@ void clif_changelook(struct block_list *bl,int type,int val) break; case LOOK_BASE: if( !sd ) break; - // We shouldn't update LOOK_BASE if the player is disguised - // if we do so the client will think that the player class - // is really a mob and issues like 7725 will happen in every - // SC_ that alters class_ in any way [Panikon] - if( sd->disguise != -1 ) - return; if( sd->sc.option&OPTION_COSTUME ) vd->weapon = vd->shield = 0; @@ -3295,7 +3289,7 @@ void clif_changelook(struct block_list *bl,int type,int val) } // prevent leaking the presence of GM-hidden objects - if( sc && sc->option&OPTION_INVISIBLE ) + if( sc && sc->option&OPTION_INVISIBLE && !disguised(bl) ) target = SELF; #if PACKETVER < 4 @@ -3316,11 +3310,12 @@ void clif_changelook(struct block_list *bl,int type,int val) WBUFB(buf,6)=type; WBUFL(buf,7)=val; } - clif->send(buf,packet_len(0x1d7),bl,target); - if( disguised(bl) && sd && sd->fontcolor ) { + if( disguised(bl) ) { + clif->send(buf,packet_len(0x1d7),bl,AREA_WOS); WBUFL(buf,2)=-bl->id; clif->send(buf,packet_len(0x1d7),bl,SELF); - } + } else + clif->send(buf,packet_len(0x1d7),bl,target); #endif } |