From 1a8c1081563174cdea5630ad5bc992405cd86e7d Mon Sep 17 00:00:00 2001 From: Lance Date: Mon, 15 May 2006 10:19:14 +0000 Subject: * Players with OPTION_INVISIBLE should not be sent to clients. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@6594 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/clif.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/map/clif.c b/src/map/clif.c index c8610caf3..d46f52397 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -1319,6 +1319,8 @@ int clif_spawn(struct block_list *bl) if (pcdb_checkid(vd->class_)) { //Player spawn packet. + if(((TBL_PC *)bl)->status.option & OPTION_INVISIBLE) + return 0; clif_set0078(bl, vd, buf); #if PACKETVER > 3 if (WBUFW(buf,0)==0x78) { @@ -1486,8 +1488,11 @@ int clif_move(struct block_list *bl) { len = clif_set007b(bl,vd,ud,buf); clif_send(buf,len,bl,AREA_WOS); - if (disguised(bl)) + if (disguised(bl)){ + if(((TBL_PC *)bl)->status.option & OPTION_INVISIBLE) + return 0; clif_setdisguise((TBL_PC*)bl, buf, len, 0); + } //Stupid client that needs this resent every time someone walks :X if(vd->cloth_color) @@ -3737,6 +3742,9 @@ void clif_getareachar_char(struct map_session_data* sd,struct block_list *bl) if (!vd || vd->class_ == INVISIBLE_CLASS) return; + if(bl->type == BL_PC && ((TBL_PC *)bl)->status.option & OPTION_INVISIBLE) + return; + ud = unit_bl2ud(bl); if (ud && ud->walktimer != -1) { @@ -3813,6 +3821,8 @@ int clif_fixpos2(struct block_list* bl) len = clif_set0078(bl,vd,buf); if (disguised(bl)) { + if(((TBL_PC *)bl)->status.option & OPTION_INVISIBLE) + return 0; clif_send(buf,len,bl,AREA_WOS); clif_setdisguise((TBL_PC*)bl, buf, len, 0); clif_setdisguise((TBL_PC*)bl, buf, len, 1); @@ -4116,7 +4126,7 @@ int clif_outsight(struct block_list *bl,va_list ap) { //tsd has lost sight of the bl object. switch(bl->type){ case BL_PC: - if (((TBL_PC*)bl)->vd.class_ != INVISIBLE_CLASS) + if (((TBL_PC*)bl)->vd.class_ != INVISIBLE_CLASS || !(((TBL_PC*)bl)->status.option & OPTION_INVISIBLE)) clif_clearchar_id(bl->id,0,tsd->fd); if(sd->chatID){ struct chat_data *cd; -- cgit v1.2.3-70-g09d2