Właściwszym sposobem byłoby dodanie warunku w odpowiednich perceptionach npców (potwory to też npc), tak żeby sprawdzali czy bohater jest niewidzialny (jeśli danego itemu ma używać tylko bohater, wystarczyłaby zmienna globalna), a jeśli jest, to przerywali "postrzeganie".
Nie jest to jednak zajęcie dla osoby początkującej. O wiele prostsza byłaby metoda którą zaproponował Korek, czyli ustawienie nieszkodliwej gildii, z tym że prawdopodobnie nie działałoby to na strażników miejsc, którzy są po prostu tak zaprogramowani żeby nie wpuszczać gracza.
Ewentualnie możesz na siłę tymczasowo wstrzymać WSZYSTKIE perceptiony w grze, nie tylko w stosunku do gracza, ale w ogóle (np ludzie przestaną zauważać potwory i bandytów i na odwrót, wszyscy będą się ignorować). Wśród nich jest też perc_assesstalk odpowiedzialny za rozmowę, więc ona też będzie zablokowana (dość logiczne).
Aby to zrobić, skopiuj funkcję InitPerceptions z
_Work\data\Scripts\Content\AI\AI_Intern\Perception.d
i nadaj kopii inną nazwę, np PausePerceptions i zmień wszystkie drugie argumenty funkcji na 0, np:
Perc_SetRange (PERC_ASSESSDAMAGE, 0);
Wywołuj tą nową funkcję w momencie kiedy postać będzie stawała się niewidzialna, a InitPerceptions kiedy będzie stawała się widzialna z powrotem.
Tak jak pisałem to rozwiązanie bardzo uproszczone i nie do końca poprawne, bo npc przestaną zauważać nie tylko gracza, ale wszystkich w ogóle (chociaż reszta będzie normalnie widzialna).