summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorshennetsind <ind@henn.et>2014-09-20 22:25:11 -0300
committershennetsind <ind@henn.et>2014-09-20 22:25:11 -0300
commit3e6e76b8c673e99d240a700912eb4d4a68b3be30 (patch)
treeb8cca02f93b9252ed54a75bb596684a1f4cd2492 /src
parent204a558402678ad1b120397ea5da20b5695842a7 (diff)
downloadhercules-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>
Diffstat (limited to 'src')
-rw-r--r--src/map/clif.c15
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
}