From fa2f34ed861bbdb697dc752f5df4707f1a7c020c Mon Sep 17 00:00:00 2001 From: ultramage Date: Sat, 24 Oct 2009 10:45:36 +0000 Subject: [PATCH] Reverted the previous change to OnTouch not triggering for invisible chars. While this is the official behavior for OnTouch (as opposed to OnTouch2 which we don't have), this change would break npcs that assume you can't just walk past them cloaked. If there is a real need for implementing this behavior in the future, it should be done in a backwards-compatible way if possible (although, inverting the meaning of OnTouch/OnTouch2 would cause a lot of confusion). git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14096 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 1 + src/map/npc.c | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 54437e0120..39f55ea9eb 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,7 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 09/10/24 + * Reverted the previous change to OnTouch not triggering for invisible chars [ultramage] * 'OnTouch' script shouldn't trigger when you are invisible.(same as warps) [Inkfish] * Fixed character doesn't stop walking when walking into OnTouch area of an NPC who doesn't have an OnTouch label. [Inkfish] 09/10/18 diff --git a/src/map/npc.c b/src/map/npc.c index 9447478f23..d87619382c 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -776,9 +776,6 @@ int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y) if(sd->npc_id) return 1; - if (sd->sc.option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK)) - return 0; - for(i=0;isc.option&OPTION_INVISIBLE) { @@ -810,6 +807,8 @@ int npc_touch_areanpc(struct map_session_data* sd, int m, int x, int y) } switch(map[m].npc[i]->subtype) { case WARP: + if (sd->sc.option&(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK)) + break; // hidden chars cannot use warps pc_setpos(sd,map[m].npc[i]->u.warp.mapindex,map[m].npc[i]->u.warp.x,map[m].npc[i]->u.warp.y,0); break; case SCRIPT: