Skip to content

Commit ea27728

Browse files
committed
Fixed issue where disguised char while invisible can't be seen via user with intravision.
Signed-off-by: Lorenzo Buitizon <the.keikun@gmail.com>
1 parent c1fa550 commit ea27728

1 file changed

Lines changed: 9 additions & 0 deletions

File tree

src/map/clif.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5020,6 +5020,15 @@ static void clif_getareachar_unit(struct map_session_data *sd, struct block_list
50205020
{
50215021
struct map_session_data *tsd = BL_UCAST(BL_PC, bl);
50225022
clif->getareachar_pc(sd, tsd);
5023+
/* When viewer has intravision/clairvoyance, ensure disguised hiders are still visible */
5024+
{
5025+
struct status_change *t_sc = status->get_sc(&tsd->bl);
5026+
if( t_sc && ( t_sc->option & ( OPTION_HIDE | OPTION_CLOAK | OPTION_CHASEWALK ) ) && clif->isdisguised(bl) ) {
5027+
if( sd->sc.data[SC_CLAIRVOYANCE] || sd->special_state.intravision ) {
5028+
clif->refreshlook(&sd->bl, bl->id, LOOK_BASE, tsd->status.class, SELF);
5029+
}
5030+
}
5031+
}
50235032
if (tsd->state.size == SZ_BIG) // tiny/big players [Valaris]
50245033
clif->specialeffect_single(bl,423,sd->fd);
50255034
else if (tsd->state.size == SZ_MEDIUM)

0 commit comments

Comments
 (0)