fatsawhorse, ты в скрипте с биографией проверял биографии героев, или ты веришь сообщению, которое выскакивает во время боя? Ведь в строчке скрипта, выводящей сообщение, также должна быть проверка на побег/откуп:
Ты невнимательно смотрел, данный тебе ответ, 
здесь.
Так же ты не внял совету не выходить из функций без надобности. Ты написал:
а достаточно:
и Гуннар получит "маскировку". 
НО, при этом герой должен быть 
активным, о чём тебе писал 
XEPOMAHT. 
То есть он, к примеру, должен посетить какой-то объект и тогда через триггер 
!?OBx/y/z; всё сработает. 
Если тебе нужно/хочется сделать проверку героев на наличие артов и после этого наложить закл через
 !?TM; то в теле таймера можно запустить цикл !!DO с перечнем 
всех героев, где сперва узнать есть ли герой на карте и потом есть ли у него нужные арты. При этом 
НЕ делать выход из функции, если их 
нет, а давать закл, если они 
есть.