bi-666, сделал как вы мне посоветовали, но видимо сделал что-то не так, т.к. работает криво. Короче, вот скрипт, который на амулете: Begin 1Amuletscript short status short button short OnPCEquip short AmuletOnPC if ( menumode ) return endif if ( OnPCEquip == 1 ) Set status to 1 Set OnPCEquip to 2 endif if ( status == 1 ) MessageBox "Вызвать компаньона?" "Да" "Нет" Set status to 2 elseif ( status == 2 ); Set button to GetButtonPressed if ( button == -1 ) return elseif ( button == 0 ) PlaceAtPC "компаньон" 1 1 1 endif Set status to 0 endif if ( OnPCEquip == 0 ) Set AmuletOnPC to 2 endif End Последняя часть скрипта - по идее та самая переменная, устанавливающаяся в двойку при снятии амулета. На компаньона я повесил такой скрипт: short OnPCEquip short AmuletOnPC if ( OnPCEquip "1amulet" == 0 ) Set AmuletOnPC to 2 if ( AmuletOnPC == 2 ) "Компаньон"->PositionCell, "3966", "4524", "12451", 0, "id локации" Set AmuletOnPC to 0 endif endif Должно быть, чтобы пока амулет на мне, спутник со мной, а когда снимаю, его телепортирует ко мне в дом. Что в итоге: Компаньон призывается, при снятии амулета остаётся со мной, а в указанной локе появляется его копия. Если кто укажет мне на мою ошибку или исправит скрипт, буду благодарен, ибо уже намучился я с ним.