1
Skrypty / NPC po rozmowie nie prowadzi mnie do wyznaczonego waypointu.
« dnia: 2014-07-01, 22:07 »
Po kilku dniach, ponownie wracam, nie będę zakładał nowego tematu. Chciałem zrobić strażnika, wiecie, dwa ostrzeżenia jeśli pójdę dalej i za trzecim atak.
Stworzyłem "coś' na zasadzie strażnika bramy w khorinis, żadne błędy mi nie wyskakują lecz skrypt nie działa. NPC nie zatrzymuję mnie.
Stworzyłem "coś' na zasadzie strażnika bramy w khorinis, żadne błędy mi nie wyskakują lecz skrypt nie działa. NPC nie zatrzymuję mnie.
Kod: [Zaznacz]
//*********************************************************************
// Info EXIT
//*********************************************************************
INSTANCE DIA_SLD_3010_Nyga_EXIT (C_INFO)
{
npc = SLD_3010_Nyga;
nr = 999;
condition = DIA_SLD_3010_Nyga_EXIT_Condition;
information = DIA_SLD_3010_Nyga_EXIT_Info;
permanent = TRUE;
description = DIALOG_ENDE;
};
FUNC INT DIA_SLD_3010_Nyga_EXIT_Condition()
{
return TRUE;
};
FUNC VOID DIA_SLD_3010_Nyga_EXIT_Info()
{
AI_StopProcessInfos (self);
};
//*********************************************************************
// Info Hello
//*********************************************************************
INSTANCE DIA_SLD_3010_Nyga_Hello (C_INFO)
{
npc = SLD_3010_Nyga;
nr = 1;
condition = DIA_SLD_3010_Nyga_Hello_Condition;
information = DIA_SLD_3010_Nyga_Hello_Info;
permanent = FALSE;
description = "Gdzie leziesz ?";
important = 1;
};
FUNC INT DIA_SLD_3010_Nyga_Hello_Condition()
{
return TRUE;
};
FUNC VOID DIA_SLD_3010_Nyga_Hello_Info()
{
AI_Output (self, other, "DIA_SLD_3010_Nyga_Hello_15_00"); //Gdzie leziesz białasie ?
AI_DrawWeapon (self);
AI_Output (other, self, "DIA_SLD_3010_Nyga_Hello_01_01"); //Chciałem wejść do obozu.
AI_Output (self, other, "DIA_SLD_3010_Nyga_Hello_15_02"); //Pogięło cię białasku ? Nigdzie nie wejdziesz, tylko czarni bracia mogą wejść. Won mi stąd !
AI_RemoveWeapon (self);
AI_StopProcessInfos (self);
Log_CreateTopic (TOPIC_Czarny, LOG_MISSION);
Log_SetTopicStatus (TOPIC_Czarny, LOG_RUNNING);
B_LogEntry (TOPIC_Czarny,"Chciałem wejść do slumsów lecz jakiś gościu mi nie pozwolił, mówił, że tylko czarnoskórzy mogą wejść.");
};
const string Czarny_Czekpoint = "SLUMSY_DROGA_1";
//*********************************************************************
// 1 ostrzezenie
//*********************************************************************
INSTANCE DIA_SLD_3010_Nyga_Ostrzezenie (C_INFO)
{
npc = SLD_3010_Nyga;
nr = 1;
condition = DIA_SLD_3010_Nyga_Ostrzezenie_Condition;
information = DIA_SLD_3010_Nyga_Ostrzezenie_Info;
permanent = TRUE;
important = 1;
};
FUNC INT DIA_SLD_3010_Nyga_Ostrzezenie_Condition()
{
if (Npc_GetDistToWP(other, Czarny_Czekpoint) <= 1000)
{
Npc_SetRefuseTalk(self,5);
return FALSE;
};
};
FUNC VOID DIA_SLD_3010_Nyga_Ostrzezenie_Info()
{
AI_DrawWeapon (self);
AI_Output (self, other, "DIA_SLD_3010_Nyga_Ostrzezenie_15_00"); //Won mi stąd białasie, wpuszczam tylko czarnych braci.
AI_RemoveWeapon (self);
other.aivar[AIV_LastDistToWP] = Npc_GetDistToWP(other,Czarny_Czekpoint);
self.aivar[AIV_Guardpassage_Status] = GP_FirstWarnGiven;
AI_StopProcessInfos (self);
};
//*********************************************************************
// 2 ostrzezenie
//*********************************************************************
INSTANCE DIA_SLD_3010_Nyga_Drugieostrzezenie (C_INFO)
{
npc = SLD_3010_Nyga;
nr = 2;
condition = DIA_SLD_3010_Nyga_Drugieostrzezenie_Condition;
information = DIA_SLD_3010_Nyga_Drugieostrzezenie_Info;
permanent = TRUE;
important = 1;
};
FUNC INT DIA_SLD_3010_Nyga_Drugieostrzezenie_Condition()
{
if ((self.aivar[AIV_Guardpassage_Status] == GP_FirstWarnGiven )
&& (self.aivar[AIV_PASSGATE] == FALSE )
&& (Hlp_StrCmp(Npc_GetNearestWP(self),self.wp) == TRUE )
&& (Npc_GetDistToWP(other,Czarny_Czekpoint) < (other.aivar[AIV_LastDistToWP]-50) ))
{
return TRUE;
};
};
FUNC VOID DIA_SLD_3010_Nyga_Drugieostrzezenie_Info()
{
AI_DrawWeapon (self);
AI_Output (self, other, "DIA_SLD_3010_Nyga_Drugieostrzezenie_15_00"); //Głuchyś ? Jeszcze jeden krok i łeb ci utne !
AI_RemoveWeapon (self);
other.aivar[AIV_LastDistToWP] = Npc_GetDistToWP (other,Czarny_Czekpoint);
self.aivar[AIV_Guardpassage_Status] = GP_SecondWarnGiven;
AI_StopProcessInfos (self);
};
//*********************************************************************
// 3 - atak
//*********************************************************************
INSTANCE DIA_SLD_3010_Nyga_Atak (C_INFO)
{
npc = SLD_3010_Nyga;
nr = 3;
condition = DIA_SLD_3010_Nyga_Atak_Condition;
information = DIA_SLD_3010_Nyga_Atak_Info;
permanent = TRUE;
important = 1;
};
FUNC INT DIA_SLD_3010_Nyga_Atak_Condition()
{
if ((self.aivar[AIV_Guardpassage_Status] == GP_SecondWarnGiven )
&& (self.aivar[AIV_PASSGATE] == FALSE )
&& (Hlp_StrCmp(Npc_GetNearestWP(self),self.wp) == TRUE )
&& (Npc_GetDistToWP(other,Czarny_Czekpoint) < (other.aivar[AIV_LastDistToWP]-50) ))
{
return TRUE;
};
};
FUNC VOID DIA_SLD_3010_Nyga_Atak_Info()
{
other.aivar[AIV_LastDistToWP] = 0;
self.aivar[AIV_Guardpassage_Status] = GP_NONE;
AI_Output (self, other, "DIA_SLD_3010_Nyga_Atak_15_00"); //Przejebałeś se białasie !
AI_StopProcessInfos (self);
B_Attack (self, other, AR_GuardStopsIntruder, 0);
};