Closed Kor-Angar closed 3 years ago
проверка на (Npc_IsPlayer(self) поможет?
проверка на (Npc_IsPlayer(self) поможет?
Она всегда будет выполняться, если НПС в данный момент под контролем игрока.
if(Hlp_StrCmp(npc.name[0],"Я") == TRUE)
{
...
};
или, предпочтительнее:
var C_Npc her;
her = Hlp_GetNpc(PC_Hero);
if(Hlp_GetInstanceID(npc) == Hlp_GetInstanceID(her))
{
...
};
Это оказалось сложнее, потому что в момент загрузки сохранения эта функция вызывается раньше, чем происходит инициализация персонажа. Проверять некого.
Глюк происходит при переодевания доспех, т. е. Игра зугружена, включен марвин, далее НПС которым управляет игрок снимает доспех и одевает тот же или другой. 19:03, 5 ноября 2020 г., dosinabox notifications@github.com: Это оказалось сложнее, потому что в момент загрузки сохранения эта функция вызывается раньше, чем происходит инициализация персонажа. Проверять некого.
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe. -- Отправлено из мобильного приложения Яндекс.Почты
Я знаю об этом и это исправляется этой проверкой. Но если использовать эту проверку, то с ГГ будет слетать текстура тела при загрузке сохранения, потому что в этот момент проверить его нельзя.
Ясно19:17, 5 ноября 2020 г., dosinabox notifications@github.com: Я знаю об этом и это исправляется этой проверкой. Но если использовать эту проверку, то с ГГ будет слетать текстура тела при загрузке сохранения, потому что в этот момент проверить его нельзя.
—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe. -- Отправлено из мобильного приложения Яндекс.Почты
Ну по крайней мере теперь известно, что такое явление имеется. На каком то форуме видел что кто то тоже писал об этом. Мне было важно понять из-за чего это происходит, я узнал. Как это исправит мне для моих тестов тоже понятно.
Памятка:
Npc_IsPlayer()
- запрашивает у движка, управляет ли игрок персонажем.
C_NpcIsHero()
- определяет, является ли инстанция персонажа равной pc_hero.
исправлено пришлось хорошенько поработать над функциями инициализации миров
можно опять переодевать НПС через марвин без эффекта агента Смита из матрицы?
ну да
func void B_SetHeroSkin()
{
var int BodyTex;
if(C_NpcIsHero(hero))
{
if((MILArmor_Equipped == TRUE) || (NOVArmor_Equipped == TRUE) || (SLDArmor_Equipped == TRUE) || (OpenArmor_Equipped == TRUE) || (NakedBodySkin == TRUE))
{
BodyTex = BodyTex_N;
}
else if(G1BodySkin == TRUE)
{
BodyTex = BodyTex_Player_G1;
}
else if(SequelBodySkin == TRUE)
{
BodyTex = BodyTex_Player_Sequel;
}
else if(TattoosBodySkin == TRUE)
{
BodyTex = BodyTex_Tattoo_N;
}
else
{
BodyTex = BodyTex_Player_G2;
};
Mdl_SetVisualBody(hero,"hum_body_Naked0",BodyTex,0,"Hum_Head_Pony",Face_N_Player,0,NO_ARMOR);
};
};
Добавь пожалуйста проверку в B_SetHeroSkin на то НПС это герой. https://github.com/dosinabox/g2nr_unofficial_update/blob/aed56ebb175bc52740bf908b2ece4ef16490b17d/PrjGOTHIC/Story/B_Story/B_ArmorChecks.d#L315 а то я только сегодня понял почему у меня все НПС после переодевания брони через марвин клонировались в Героя :-(