Можно.Подскажите пожалуйста, а можно ли как то заставить нпс применить заклинание (свет например) , находясь в диалоге с ним?
INSTANCE DIA_Testt (C_Info)
{
npc = none_100_xardas;
nr = 2;
condition = DIA_Testt_condition;
information = DIA_Testt_info;
permanent = FALSE;
important = FALSE;
description = "Тест";
};
FUNC INT DIA_Testt_condition ()
{
return TRUE;
};
func void PlayLightOnHero()
{
Wld_PlayEffect("spellFX_Light", hero, hero, 0, 0, 0, FALSE );
};
func void DIA_Testt_info()
{
AI_Output(other,self,"DIA_Test_15_00"); //Тест
AI_Output(self,other,"DIA_Test_14_01"); //тест!
AI_PlayAni (self, "T_MAGRUN_2_SLESHOOT");
//внимание, эффект проиграется сразу, если нужно без костылей в этом месте, используем внешнюю функцию
//из плагина zParserExtender AI_CallScript
//AI_CallScript("PlayLightOnHero",self,other);
Wld_PlayEffect("spellFX_Light", hero, hero, 0, 0, 0, FALSE );
AI_PlayAni (self, "T_SLESHOOT_2_STAND");
};
Можно.
Daedalus:INSTANCE DIA_Testt (C_Info) { npc = none_100_xardas; nr = 2; condition = DIA_Testt_condition; information = DIA_Testt_info; permanent = FALSE; important = FALSE; description = "Тест"; }; FUNC INT DIA_Testt_condition () { return TRUE; }; func void PlayLightOnHero() { Wld_PlayEffect("spellFX_Light", hero, hero, 0, 0, 0, FALSE ); }; func void DIA_Testt_info() { AI_Output(other,self,"DIA_Test_15_00"); //Тест AI_Output(self,other,"DIA_Test_14_01"); //тест! AI_PlayAni (self, "T_MAGRUN_2_SLESHOOT"); //внимание, эффект проиграется сразу, если нужно без костылей в этом месте, используем внешнюю функцию //из плагина zParserExtender AI_CallScript //AI_CallScript("PlayLightOnHero",self,other); Wld_PlayEffect("spellFX_Light", hero, hero, 0, 0, 0, FALSE ); AI_PlayAni (self, "T_SLESHOOT_2_STAND"); };
Только я хз, почему таким образом закл оказывается в теле NPC, а не в BIP01 Head
func void B_UseFakeScroll()
{
var C_Npc target;
if(C_BodyStateContains(self,BS_SIT))
{
AI_Standup(self);
B_TurnToNpc(self,hero);
};
AI_RemoveWeapon(self);
CreateInvItem(self,Fakescroll);
target = Npc_GetLookAtTarget(self);
if(Hlp_IsValidNpc(target))
{
B_StopLookAt(self);
AI_UseItemToState(self,Fakescroll,1);
AI_Wait(self,1);
AI_UseItemToState(self,Fakescroll,-1);
B_LookAtNpc(self,hero);
}
else
{
AI_UseItemToState(self,Fakescroll,1);
AI_Wait(self,1);
AI_UseItemToState(self,Fakescroll,-1);
};
};
Ну а на основе фейкскрола нельзя сделать?
просто Fakescroll заменить на ItSc_LightDaedalus:func void B_UseFakeScroll() { var C_Npc target; if(C_BodyStateContains(self,BS_SIT)) { AI_Standup(self); B_TurnToNpc(self,hero); }; AI_RemoveWeapon(self); CreateInvItem(self,Fakescroll); target = Npc_GetLookAtTarget(self); if(Hlp_IsValidNpc(target)) { B_StopLookAt(self); AI_UseItemToState(self,Fakescroll,1); AI_Wait(self,1); AI_UseItemToState(self,Fakescroll,-1); B_LookAtNpc(self,hero); } else { AI_UseItemToState(self,Fakescroll,1); AI_Wait(self,1); AI_UseItemToState(self,Fakescroll,-1); }; };
Сам бы проверил, но пока не могу...
Ну фиг с ним))У фейкскрола прописана функция стейт, руны работают по другому принципу.
Предварительно надо активировать нужное заклинание, чтобы в руке мага появился соответствующий визуальный эффект.AI_PlayAni (self, "T_MAGRUN_2_SLESHOOT");
Что-то подобное потребуется для того, чтобы момент применения визуального эффекта совпал с моментом "каста" заклинания, а не со стартом диалога.просто Fakescroll заменить на ItSc_Light
AI_ReadySpell(self, SPL_Light, 0);
AI_Attack(self);
В Г1 такое не прокатывает вне состояния атаки. Приходится имитировать использование заклинания неписями.AI_Attack(self);
Ну пихнуть не всегда достаточноМмм..только что пихнул видос в бинке - не пашет