W świecie umieściłem określoną liczbę Mini-bossów, powiedzmy 10 i chcę wykorzystać odliczanie ile zostało, podobnie jak miało to miejsce przy zabijaniu brzytwiaków w kanionie. Niemniej wyskakują błędy i nie potrafię ogarnąć jak to naprawić.
Plik: Gothic II\_Work\Data\Scripts\Content\Story\B_Content\B_CountMiniBoss
Spoiler
FUNC INT C_AllMiniBossDead ()
{
if Npc_IsDead (SMeatbug)
&& Npc_IsDead (SGiant_DesertRat)
&& Npc_IsDead (SKeiler)
&& Npc_IsDead (SSwamprat)
&& Npc_IsDead (SBlattcrawler)
&& Npc_IsDead (SScavenger_Demon)
&& Npc_IsDead (SOrcBiter)
&& Npc_IsDead (SSwampDrone)
&& Npc_IsDead (SHarpie)
&& Npc_IsDead (SSwampshark)
{
return TRUE;
}
else
{
return FALSE;
};
};
FUNC int C_IAmMiniBoss (var C_NPC slf)
{
var C_NPC BOSS01; BOSS01 = Hlp_GetNpc(SMeatbug);
var C_NPC BOSS02; BOSS02 = Hlp_GetNpc(SGiant_DesertRat);
var C_NPC BOSS03; BOSS03 = Hlp_GetNpc(SKeiler);
var C_NPC BOSS04; BOSS04 = Hlp_GetNpc(SSwamprat);
var C_NPC BOSS05; BOSS05 = Hlp_GetNpc(SBlattcrawler);
var C_NPC BOSS06; BOSS06 = Hlp_GetNpc(SScavenger_Demon);
var C_NPC BOSS07; BOSS07 = Hlp_GetNpc(SOrcBiter);
var C_NPC BOSS08; BOSS08 = Hlp_GetNpc(SSwampDrone);
var C_NPC BOSS09; BOSS09 = Hlp_GetNpc(SHarpie);
var C_NPC BOSS10; BOSS10 = Hlp_GetNpc(SSwampshark);
if ((Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS01))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS02))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS03))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS04))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS05))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS06))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS07))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS08))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS09))
|| (Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(BOSS10)))
{
return TRUE;
}
else
{
return FALSE;
};
};
FUNC VOID B_CountMiniBoss ()
{
var string MiniBossText;
var string MiniBossLeft;
MiniBossLeft = IntToString (10 - MiniBossBodyCount);
MiniBossText = ConcatStrings(MiniBossLeft, PRINT_MiniBosLeft);
AI_PrintScreen (MiniBossText, -1, YPOS_GOLDGIVEN, FONT_ScreenSmall, 2);
};
Oraz dodana linijka do pliku: Gothic II\_Work\Data\Scripts\Content\AI\Human\ZS_Human\ZS_Dead
(i tutaj pojawia się błąd podczas sprawdzania)Spoiler
// ------ Greg ------
if C_IAmCanyonRazor (self) == TRUE
{
CanyonRazorBodyCount = CanyonRazorBodyCount +1;
if (MIS_Addon_Greg_ClearCanyon == LOG_RUNNING)
{
B_CountCanyonRazor ();
};
};
if C_IAmMiniBoss (self) == TRUE <---Linijka 35/ Line 35
{
MiniBossBodyCount = MiniBossBodyCount +1;
if (MIS_MiniBoss == LOG_RUNNING)
{
B_CountMiniBoss ();
};
};
// ------ Sumpfdrohne -------
if (self.aivar[AIV_MM_REAL_ID] == ID_SWAMPDRONE)
{
if (Npc_GetDistToNpc(self, other) < 300)
{
other.attribute[ATR_HITPOINTS] -= 50;
//Npc_ChangeAttribute(other, ATR_HITPOINTS, -50);
};
};
Oraz linijki do:
Gothic II\_Work\Data\Scripts\Content\Story\Story_Globals
Spoiler
var int MIS_MiniBoss;
Gothic II\_Work\Data\Scripts\Content\Story\Log_Entries\B_CloseTopics_Hoshi
Spoiler
B_CloseTopic (TOPIC_INNOSEYE,MIS_MiniBoss,0,6);
Gothic II\_Work\Data\Scripts\Content\Story\Dialoge\DIA_NONE_100_Xardas
Spoiler
instance DIA_Xardas_TODO (C_INFO) //E1
{
npc = NONE_100_Xardas;
nr = 1;
condition = DIA_Xardas_TODO_Condition;
information = DIA_Xardas_TODO_Info;
Permanent = FALSE;
description = "Co możemy zrobić?";
};
func int DIA_Xardas_TODO_Condition ()
{
if (Kapitel < 3)
{
return TRUE;
};
};
func void DIA_Xardas_TODO_Info ()
{
AI_Output (other, self, "DIA_Xardas_TODO_15_00"); //Co możemy zrobić?
AI_Output (self, other, "DIA_Xardas_TODO_14_01"); //Tym razem sami sobie nie poradzimy. W walce ze smokami może nam pomóc tylko moc Innosa.
AI_Output (self, other, "DIA_Xardas_TODO_14_02"); //W pobliskim mieście Khorinis stacjonuje oddział paladynów.
AI_Output (self, other, "DIA_Xardas_TODO_14_03"); //W ich posiadaniu znajduje się pewien potężny artefakt, dzięki któremu możemy pokonać paskudne gady.
AI_Output (self, other, "DIA_Xardas_TODO_14_04"); //Nazywają go 'Okiem Innosa'. Musisz koniecznie zdobyć to Oko.
AI_Output (self, other, "DIA_Xardas_TODO_14_05"); //Ostrzeż paladynów o smokach i za wszelką cenę przekonaj ich dowódcę, by nam pomógł.
AI_Output (self, other, "DIA_Addon_Xardas_Add_14_07"); //Gdy tylko z nim porozmawiasz, musisz odszukać artefakt Beliara.
AI_Output (self, other, "DIA_Addon_Xardas_Add_14_08"); //To odpowiednik Oka Innosa - nie wolno dopuścić, aby wpadł w ręce sług zła.
MIS_MiniBoss = LOG_RUNNING;
Log_CreateTopic (TOPIC_INNOSEYE, LOG_MISSION);
Log_SetTopicStatus(TOPIC_INNOSEYE, LOG_RUNNING);
B_LogEntry (TOPIC_INNOSEYE,"W mieście Khorinis przebywa grupa paladynów. Mają ze sobą potężny artefakt, Oko Innosa, którego moc pomoże nam pokonać smoki. Muszę tylko przekonać paladynów, aby wsparli naszą sprawę.");
};
Błąd pojawia się w pliku
ZS_Dead, od momentu dodanych przeze mnie linijek. Gdzie jest błąd, bo mi wydaje się, że ogarnąłem wszystko?