Ну точнее некуда, как написал Gratt.
Npc_IsPlayer вы
C_NpcIsHero всегда указывает на конкретного персонажа, то есть на PC_HERO, но я не использую её, вместо этого везде для главного героя делаю вот так
if (self.id == 0)
Проще некуда.
Слета характеристик после превращения и с 1000 попытки не поймал
Но злоупотреблять не стоит. Это касается в основном предметов, которые могут быть экипированными на именно на герое. Например НПС не даются бонусы от оружия, если они есть.
Тогда стоит посмотреть глубже в движке, почему иногда Npc_IsPlayer может выдать 0, после превращения. Может криво возвращается управление? Было замечено, что даже Npc_SetToFistMode(self); перенеслось на главного героя сломав все оверлеи.
В Г1 есть заклинание control, интересно, там тоже есть баг, когда ГГ берет в управление другого НПС и возвращается обратно?