Реализовано через скриптовую функцию (GetTalentSkill).
Npc_
GetTalentSkill запрашивает навык, а вот эта уже его ставит Npc_
SetTalentSkill
Оверлей по ходу применяется через движок и явно не задаётся. Это для мечей.
Вообщем-да, причем не сразу
Поэтому в Г2а до первого сейв-лоада ВСЕ НПЦ сражаются как необученные, лечиться в скриптах дублированием к присвоению таланта наложения оверлея. А вообще, если будет постоянный контроль\восстановление оверлея через триггер-скрипт, то даже и навык не нужен (который полезен только отображением в меню), а только его значения HitChance. Например скелетам навыки не присваиваются, а сразу оверлеи т.к. у них тогда вместо костей кровь при ударах польется
func void B_SetVisuals_Skeleton()
{
Mdl_SetVisual(self,"HumanS.mds");
Mdl_ApplyOverlayMds(self,"humans_1hST1.mds");
Mdl_ApplyOverlayMds(self,"humans_2hST2.mds");
Mdl_ApplyOverlayMds(self,"humans_BowT1.mds");
Mdl_ApplyOverlayMds(self,"humans_CBowT1.mds");
Mdl_ApplyOverlayMds(self,"humans_skeleton.mds");
Mdl_SetVisualBody(self,"Ske_Body2",DEFAULT,DEFAULT,"",DEFAULT,DEFAULT,-1);
};
Для акробатики в Г2 скорее всего аналогично. Работают эти функции только для моделей, построенных на базе humans.mds.
Мне кажется это от гильдии зависит, а не от модели. Т.е. же скелеты, если вынут меч, уже назад не могут зачехлить, да и лук с арбалетом не обучены юзать.. А вот если им поменять гильдию...
Я на орков шаманов Г2а успешно вешал оверлеи шаманов из Г1, чтобы с посохом файрболами пулялись.