diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-12-06 21:04:29 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-12-06 21:04:29 +0000 |
commit | 5fcf05b8f1234d176994999ae9dcb239c27c19ad (patch) | |
tree | ccc066043d7e5c2f2e506b8d889ad0c666f5c4b2 | |
parent | 8dc3ebbb25683eab9349c26362ad42dbcfc94a04 (diff) | |
download | hercules-5fcf05b8f1234d176994999ae9dcb239c27c19ad.tar.gz hercules-5fcf05b8f1234d176994999ae9dcb239c27c19ad.tar.bz2 hercules-5fcf05b8f1234d176994999ae9dcb239c27c19ad.tar.xz hercules-5fcf05b8f1234d176994999ae9dcb239c27c19ad.zip |
- Likely fixed clif_set_disguise for PACKET_VER 9
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11864 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r-- | src/map/clif.c | 45 |
1 files changed, 26 insertions, 19 deletions
diff --git a/src/map/clif.c b/src/map/clif.c index 9ebf50600..cd14c4393 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -984,30 +984,37 @@ static int clif_set_unit_spawned(struct block_list* bl, unsigned char* buf) //Modifies the buffer for disguise characters and sends it to self. //Flag = 0: change id to negative, buf will have disguise data. //Flag = 1: change id to positive, class and option to make your own char invisible. -//Luckily, the offsets that need to be changed are the same in packets 0x78, 0x7b, 0x1d8 and 0x1da -//But no longer holds true for those packet of PACKETVER 7. static void clif_setdisguise(struct map_session_data *sd, unsigned char *buf,int len, int flag) { - if (flag) { - WBUFL(buf,2)=sd->bl.id; -#if PACKETVER >= 7 - switch (WBUFW(buf,0)) { - case 0x22c: - case 0x22b: - case 0x22a: - WBUFL(buf,12)=OPTION_INVISIBLE; - WBUFW(buf,16)=sd->status.class_; - break; - default: + if (!flag) { + WBUFL(buf,2)=-sd->bl.id; + clif_send(buf, len, &sd->bl, SELF); + return; + } + WBUFL(buf,2)=sd->bl.id; + switch (WBUFW(buf,0)) { + case 0x22c: +#if PACKETVER >= 9 + WBUFL(buf,13)=OPTION_INVISIBLE; + WBUFW(buf,17)=sd->status.class_; + break; + case 0x78: + case 0x7c: + WBUFW(buf,13)=OPTION_INVISIBLE; + WBUFW(buf,15)=sd->status.class_; + break; #endif - WBUFW(buf,12)=OPTION_INVISIBLE; - WBUFW(buf,14)=sd->status.class_; #if PACKETVER >= 7 - break; - } + case 0x22b: + case 0x22a: + WBUFL(buf,12)=OPTION_INVISIBLE; + WBUFW(buf,16)=sd->status.class_; + break; #endif - } else { - WBUFL(buf,2)=-sd->bl.id; + default: //0x78, 0x7b, 0x1d8 and 0x1da + WBUFW(buf,12)=OPTION_INVISIBLE; + WBUFW(buf,14)=sd->status.class_; + break; } clif_send(buf, len, &sd->bl, SELF); } |