Próbuje napisać taki skrypt w dialogu by gość po rozmowie pobił bohatera, zabił NPCta obok i pobiegł do danego WP
Jak narazie udaje mi sie zrobić że albo gość bije bohatera i ucieka albo zabija NPCta i ucieka, a gdy PC_hero sie podniesie z ziemi to go leje drugi raz.
INSTANCE DIA_Lupino_HELLO2 (C_INFO)
{
npc = NONE_3402_Lupino;
nr = 1;
condition = DIA_Lupino_HELLO2_Condition;
information = DIA_Lupino_HELLO2_Info;
permanent = FALSE;
Important = TRUE;
};
FUNC INT DIA_Lupino_HELLO2_Condition()
{
if Hlp_StrCmp (Npc_GetNearestWP(self),"ST_PATH_06")
&& (Npc_KnowsInfo(other, DIA_Lupino_HELLO1) )
{
return TRUE;
};
};
FUNC VOID DIA_Lupino_HELLO2_Info()
{
AI_Output (self, other ,"DIA_Lupino_HELLO2_03_01"); //Text
AI_Output (self, other ,"DIA_Lupino_HELLO2_03_02"); //Text
AI_StopProcessInfos (self);
B_Attack (Lupino, other, AR_NONE,0);
B_Attack (Lupino Dinko, AR_KILL,0);
Npc_ExchangeRoutine (NONE_3402_Lupino,"RUN");
};
Próbowałęm kombinować z tymi funkcjami
B_ClearPerceptions(self);
Npc_SetTarget(self,other);
i z Aivarami, zmieniałem gildie temu Lupino ale tu chyba trzeba napisać funkcję a nie tylko dodać kilka linijek w dialogu. Pomóżcie jak to napisać
skrypt npc
instance NONE_3402_Lupino (Npc_Default)
{
// ------ NSC ------
name = "Lupino";
guild = GIL_NONE;
id = 3402;
voice = 7;
npctype = NPCTYPE_MAIN;
// ------ Attributes ------
B_SetAttributesToChapter(self, 5);
aivar[AIV_IgnoresArmor] = TRUE;
aivar[AIV_IGNORE_Murder] = TRUE;
// ------ NSC relevant talents ------
B_GiveNpcTalents (self);
// ------ Fight tactic ------
fight_tactic = FAI_HUMAN_STRONG;
// ------ Equipted weapons ------
EquipItem (self, ItMw_Gruchotacz_Lupino );
// ------ Inventory ------
B_CreateAmbientInv (self);
CreateInvItems (self, itfo_sausage, 2);
// ------ Visuals ------
B_SetNpcVisual (self, MALE, "Hum_Head_Bald", Face_N_Skurwiel, BodyTex_N, ITAR_Bandzior_C);
Mdl_SetModelFatness (self, 1.6);
Mdl_ApplyOverlayMds (self, "Humans_Militia.mds");
// ------ Fight skills ------
B_SetFightSkills (self, 60);
daily_routine = Rtn_PreStart_3402;
};
FUNC VOID Rtn_PreStart_3402 ()
{
TA_Stand_Guarding (08,00,23,00,"ST_PATH_02");
TA_Stand_Guarding (23,00,08,00,"ST_PATH_02");
};
FUNC VOID Rtn_Start_3402()
{
TA_Smoke_Joint (10,00,21,00,"ST_PATH_06");
TA_Smoke_Joint (21,00,10,00,"ST_PATH_06");
};
FUNC VOID Rtn_Run_3402 ()
{
TA_RunToWP (08,00,23,00,"ST_PATH_01");
TA_RunToWP (23,00,08,00,"ST_PATH_01");
};