Cześć! mam błąd podczas włączania gry wyskakuje bład U:PAR Unknown identifier : AIVAR (Line 86) Nie rozumiem dokładnie jak aivar jest błędiem. Plik wygląda tak.
// **************************************************
// EXIT
// **************************************************
INSTANCE DIA_Scatty_Exit (C_INFO)
{
npc = Grd_210_Scatty;
nr = 999;
condition = DIA_Scatty_Exit_Condition;
information = DIA_Scatty_Exit_Info;
permanent = 1;
description = DIALOG_ENDE;
};
FUNC INT DIA_Scatty_Exit_Condition()
{
return 1;
};
FUNC VOID DIA_Scatty_Exit_Info()
{
AI_StopProcessInfos ( self );
};
// **************************************************
// Was machst du hier
// **************************************************
INSTANCE DIA_Scatty_WhatDoYouDo (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_WhatDoYouDo_Condition;
information = DIA_Scatty_WhatDoYouDo_Info;
permanent = 0;
description = "Czym się tutaj zajmujesz?";
};
FUNC INT DIA_Scatty_WhatDoYouDo_Condition()
{
return 1;
};
FUNC VOID DIA_Scatty_WhatDoYouDo_Info()
{
AI_Output (other,self,"DIA_Scatty_WhatDoYouDo_15_00"); //Czym się tutaj zajmujesz?
AI_Output (self,other,"DIA_Scatty_WhatDoYouDo_01_01"); //Organizuję walki na arenie. Przyjmuję zakłady, pozyskuję nowych wojowników... No wiesz.
};
// **************************************************
// Join OC
// **************************************************
var int Scatty_ChargeKirgo;
var int Scatty_ChargeKharim;
var int Scatty_ChargeGorHanis;
// **************************************************
INSTANCE DIA_Scatty_JoinOC (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_JoinOC_Condition;
information = DIA_Scatty_JoinOC_Info;
permanent = 0;
description = "Chcę dołączyć do waszego obozu. Możesz mi pomóc?";
};
FUNC INT DIA_Scatty_JoinOC_Condition()
{
if (Npc_GetTrueGuild (hero) == GIL_NONE)
{
return 1;
};
};
FUNC VOID DIA_Scatty_JoinOC_Info()
{
AI_Output (other,self,"DIA_Scatty_JoinOC_15_00"); //Chcę dołączyć do waszego obozu. Możesz mi pomóc?
AI_Output (self,other,"DIA_Scatty_JoinOC_01_01"); //Pomogę ci, jeśli zrobisz na mnie odpowiednio dobre wrażenie.
AI_Output (self,other,"DIA_Scatty_JoinOC_01_02"); //Najlepsi wojownicy z wszystkich obozów przybywają tutaj, by stanąć w szranki na mojej arenie.
AI_Output (self,other,"DIA_Scatty_JoinOC_01_03"); //Wyzwij któregoś z nich na pojedynek. Zobaczę, co potrafisz, i jeśli mi się spodoba, może szepnę słówko w twoim imieniu.
Scatty_ChargeKirgo = LOG_RUNNING;
Scatty_ChargeKharim = LOG_RUNNING;
Scatty_ChargeGorHanis = LOG_RUNNING;
Kirgo.aivar[AIV_WASDEFEATEDBYSC] = FALSE; //Linia 86
Kirgo.aivar[AIV_HASDEFEATEDSC] = FALSE;
Kharim.aivar[AIV_WASDEFEATEDBYSC] = FALSE;
Kharim.aivar[AIV_HASDEFEATEDSC] = FALSE;
Hanis.aivar[AIV_WASDEFEATEDBYSC] = FALSE;
Hanis.aivar[AIV_HASDEFEATEDSC] = FALSE;
B_LogEntry( CH1_JoinOC, "Scatty, organizator walk na arenie, chciałby zobaczyć, jak sobie poradzę w starciu z którymś z jego wojowników.");
};
// **************************************************
// KIRGO SUCCESS
// **************************************************
INSTANCE DIA_Scatty_KirgoSuccess (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_KirgoSuccess_Condition;
information = DIA_Scatty_KirgoSuccess_Info;
permanent = 0;
description = "Walczyłem z Kirgo!";
};
FUNC INT DIA_Scatty_KirgoSuccess_Condition()
{
if ( (Scatty_ChargeKirgo == LOG_RUNNING) && (Kirgo_Charged == TRUE) && ( (Kirgo.aivar[AIV_WASDEFEATEDBYSC] == TRUE) || (Kirgo.aivar[AIV_HASDEFEATEDSC] == TRUE) ) )
{
return 1;
};
};
FUNC VOID DIA_Scatty_KirgoSuccess_Info()
{
AI_Output (other,self,"DIA_Scatty_KirgoSuccess_15_00"); //Walczyłem z Kirgo!
if (Kirgo.aivar[AIV_HASDEFEATEDSC] == TRUE)
{
AI_Output (self,other,"DIA_Scatty_KirgoSuccess_01_01"); //Tak, ale przegrałeś!
AI_Output (self,other,"DIA_Scatty_KirgoSuccess_01_02"); //Chyba nie myślisz, że będę pod wrażeniem takiego popisu...
Scatty_ChargeKirgo = LOG_FAILED;
B_LogEntry( CH1_JoinOC, "Porażka w walce z Kirgo nie zjednała mi bynajmniej sympatii Scatty'ego.");
}
else if (Kirgo.aivar[AIV_WASDEFEATEDBYSC] == TRUE)
{
AI_Output (self,other,"DIA_Scatty_KirgoSuccess_01_03"); //I pokonałeś go! Całkiem nieźle jak na takiego żółtodzioba! Jestem pod wrażeniem!
Scatty_ChargeKirgo = LOG_SUCCESS;
B_LogEntry( CH1_JoinOC, "Scatty był pod wrażeniem mojej walki z Kirgo.");
B_GiveXP (XP_kirgovictory);
};
};
// **************************************************
// KHARIM SUCCESS
// **************************************************
INSTANCE DIA_Scatty_KHARIMSuccess (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_KHARIMSuccess_Condition;
information = DIA_Scatty_KHARIMSuccess_Info;
permanent = 0;
description = "Wyzwałem Kharima na pojedynek!";
};
FUNC INT DIA_Scatty_KHARIMSuccess_Condition()
{
if ( (Scatty_ChargeKHARIM == LOG_RUNNING) && (Kharim_Charged == TRUE) && ( (Kharim.aivar[AIV_WASDEFEATEDBYSC] == TRUE) || (Kharim.aivar[AIV_HASDEFEATEDSC] == TRUE) ) )
{
return 1;
};
};
FUNC VOID DIA_Scatty_KHARIMSuccess_Info()
{
AI_Output (other,self,"DIA_Scatty_KHARIMSuccess_15_00"); //Wyzwałem Kharima na pojedynek!
if (Kharim.aivar[AIV_HASDEFEATEDSC] == TRUE)
{
AI_Output (self,other,"DIA_Scatty_KHARIMSuccess_01_01"); //I spuścił ci niezłe baty!
if (Npc_GetTrueGuild (hero) == GIL_NONE)
{
AI_Output (self,other,"DIA_Scatty_KHARIMSuccess_01_02"); //Ale muszę przyznać, że wybrałeś sobie dobrego przeciwnika. Nie znoszę tych sukinsynów z Nowego Obozu.
AI_Output (self,other,"DIA_Scatty_KHARIMSuccess_01_03"); //Widzę, że myślimy podobnie. Przyda się nam ktoś taki jak ty!
};
Scatty_ChargeKHARIM = LOG_FAILED;
B_GiveXP(XP_Kharimlost);
B_LogEntry( CH1_JoinOC, "Zostałem pokonany przez Kharima! Scatty podziwia moją odwagę, ale uważa, że wojownik ze mnie żaden.");
}
else if (Kharim.aivar[AIV_WASDEFEATEDBYSC] == TRUE)
{
AI_Output (self,other,"DIA_Scatty_KHARIMSuccess_01_04"); //I pokonałeś go! Muszę przyznać, że świetnie sobie poradziłeś. Kharim od dawna uchodził za jednego z najlepszych wojowników w kolonii.
AI_Output (self,other,"DIA_Scatty_KHARIMSuccess_01_05"); //Jestem pod wrażeniem!
Scatty_ChargeKHARIM = LOG_SUCCESS;
B_LogEntry( CH1_JoinOC, "Pokazałem Kharimowi, gdzie raki zimują. Scatty był pod wrażeniem.");
B_GiveXP(XP_kharimvictory);
};
};
// **************************************************
// Warum andere Lager Kämpfer
// **************************************************
INSTANCE DIA_Scatty_OtherCamps (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_OtherCamps_Condition;
information = DIA_Scatty_OtherCamps_Info;
permanent = 0;
description = "Myślałem, że Stary i Nowy Obóz nie dogadują się najlepiej. Dlaczego pozwalacie obcym walczyć na waszej arenie?";
};
FUNC INT DIA_Scatty_OtherCamps_Condition()
{
if (Npc_KnowsInfo(hero,DIA_Scatty_WhatDoYouDo))
{
return 1;
};
};
FUNC VOID DIA_Scatty_OtherCamps_Info()
{
AI_Output (other,self,"DIA_Scatty_OtherCamps_15_00"); //Myślałem, że Stary i Nowy Obóz nie dogadują się najlepiej. Dlaczego pozwalacie obcym walczyć na waszej arenie?
AI_Output (self,other,"DIA_Scatty_OtherCamps_01_01"); //To proste. Raz w tygodniu organizujemy walki, a Kopacze lubią patrzeć, jak Szkodniki z Nowego Obozu dostają po głowie.
AI_Output (self,other,"DIA_Scatty_OtherCamps_01_02"); //Gdy walczy któryś z nich przyjmuję więcej zakładów, a to dobrze wpływa na interes!
AI_Output (self,other,"DIA_Scatty_OtherCamps_01_03"); //Osobiście nienawidzę tych wieprzy z Nowego Obozu, ale w tych trudnych czasach żaden pieniądz nie śmierdzi...
};
// **************************************************
// Will Wetten
// **************************************************
INSTANCE DIA_Scatty_WannaBet (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_WannaBet_Condition;
information = DIA_Scatty_WannaBet_Info;
permanent = 1;
description = "Chciałbym obstawić walkę.";
};
FUNC INT DIA_Scatty_WannaBet_Condition()
{
if (Npc_KnowsInfo(hero,DIA_Scatty_WhatDoYouDo))
{
return 1;
};
};
FUNC VOID DIA_Scatty_WannaBet_Info()
{
AI_Output (other,self,"DIA_Scatty_WannaBet_15_00"); //Chciałbym obstawić walkę.
AI_Output (self,other,"DIA_Scatty_WannaBet_01_01"); //Przecież teraz nikt nie walczy!
AI_Output (self,other,"DIA_Scatty_WannaBet_01_02"); //Najbliższa walka odbędzie się dopiero za kilka dni. Będzie ogłoszenie!
};
// **************************************************
// Will Kämpfen
// **************************************************
INSTANCE DIA_Scatty_WannaFight (C_INFO)
{
npc = Grd_210_Scatty;
nr = 1;
condition = DIA_Scatty_WannaFight_Condition;
information = DIA_Scatty_WannaFight_Info;
permanent = 1;
description = "Chciałbym stoczyć walkę na arenie.";
};
FUNC INT DIA_Scatty_WannaFight_Condition()
{
// if (Npc_KnowsInfo(hero,DIA_Scatty_WhatDoYouDo))
// {
// return 1;
// };
};
FUNC VOID DIA_Scatty_WannaFight_Info()
{
AI_Output (other,self,"DIA_Scatty_WannaFight_15_00"); //Chciałbym stoczyć walkę na arenie.
AI_Output (self,other,"DIA_Scatty_WannaFight_01_01"); //Nie mogę ci pozwolić walczyć, póki nie dołączysz do któregoś z obozów.
AI_Output (self,other,"DIA_Scatty_WannaFight_01_02"); //Ludzi nie interesują niezależni wojownicy.
};
// **************************************************
// TRAIN
// **************************************************
INSTANCE DIA_Scatty_TRAIN (C_INFO)
{
npc = Grd_210_Scatty;
nr = 10;
condition = DIA_Scatty_TRAIN_Condition;
information = DIA_Scatty_TRAIN_Info;
permanent = 1;
description = "Zajmujesz się również szkoleniem wojowników?";
};
FUNC INT DIA_Scatty_TRAIN_Condition()
{
if (Npc_KnowsInfo(hero,DIA_Scatty_WhatDoYouDo))
{
return 1;
};
};
FUNC VOID DIA_Scatty_TRAIN_Info()
{
if( log_scattytrain == FALSE)
{
Log_CreateTopic (GE_TeacherOC,LOG_NOTE);
B_LogEntry(GE_TeacherOC, "Scatty może mnie nauczyć walki jednoręcznym orężem.");
log_scattytrain = TRUE;
};
AI_Output (other,self,"DIA_Scatty_TRAIN_15_00"); //Zajmujesz się również szkoleniem wojowników?
AI_Output (self,other,"DIA_Scatty_TRAIN_01_01"); //Tak, ale nie za darmo. Jak chcesz, żebym cię czegoś nauczył, musisz zapłacić.
Info_ClearChoices (DIA_Scatty_TRAIN );
Info_AddChoice (DIA_Scatty_TRAIN,DIALOG_BACK ,DIA_Scatty_TRAIN_BACK);
if (Npc_GetTalentSkill(hero, NPC_TALENT_1H) == 1)
{
Info_AddChoice (DIA_Scatty_TRAIN,B_BuildLearnString(NAME_Learn1h_2, LPCOST_TALENT_1H_2,150) ,DIA_Scatty_TRAIN_2h);
};
if (Npc_GetTalentSkill(hero, NPC_TALENT_1H) == 0)
{
Info_AddChoice (DIA_Scatty_TRAIN,B_BuildLearnString(NAME_Learn1h_1, LPCOST_TALENT_1H_1,50) ,DIA_Scatty_TRAIN_1h);
};
};
func void DIA_Scatty_TRAIN_BACK()
{
Info_ClearChoices (DIA_Scatty_TRAIN );
};
func void DIA_Scatty_TRAIN_1h()
{
AI_Output (other,self,"DIA_Scatty_TRAIN_1h_15_00"); //Chciałbym nauczyć się walki jednoręcznym orężem.
if (Npc_HasItems(other,itminugget) >= 50)
{
if (B_GiveSkill(other, NPC_TALENT_1H, 1, LPCOST_TALENT_1H_1))
{
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_01"); //Mądra decyzja. Jednak zanim poznasz bardziej zaawansowane techniki, powinieneś nauczyć się prawidłowo trzymać oręż w ręku.
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_02"); //Początkujący często łapią zwykły miecz obydwoma rękami. Radziłbym ci się do tego nie przyzwyczajać, to fatalny nawyk.
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_03"); //Trzymaj broń jedną ręką, ostrzem do góry, i zacznij nią machać.
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_04"); //Musisz się nauczyć, jak zgrać twoje ruchy z bezwładnością oręża. Dzięki temu twoje ataki będą szybsze i bardziej zaskakujące.
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_05"); //Zapamiętaj sobie dobrze, co ci powiedziałem, a twój styl walki stanie się o wiele bardziej elegancki i skuteczny.
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_06"); //A, i jeszcze coś! Niektóre ciosy powodują większe obrażenia niż zwykle. Oczywiście, jako początkujący masz raczej niewielkie szanse na zadanie krytycznego uderzenia.
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_01_07"); //Ale to się zmieni w miarę czynienia przez ciebie postępów.
B_GiveInvItems(other,self,itminugget,50);
};
}
else
{
AI_Output (self,other,"DIA_Scatty_TRAIN_1h_NoOre_01_00"); //Nie masz wystarczającej ilości rudy!
};
};
func void DIA_Scatty_TRAIN_2h()
{
AI_Output (other,self,"DIA_Scatty_TRAIN_2h_15_01"); //Naucz mnie sprawniej posługiwać się jednoręczną bronią.
if (Npc_HasItems(other,itminugget) >= 150)
{
if (B_GiveSkill(other, NPC_TALENT_1H, 2, LPCOST_TALENT_1H_2))
{
AI_Output (self, other,"DIA_Scatty_TRAIN_2h_Info_01_02"); //Dobrze, podstawy już znasz. Nieznaczne opuszczenie broni zwiększy siłę twojego pierwszego ciosu.
AI_Output (self, other,"DIA_Scatty_TRAIN_2h_Info_01_03"); //Musisz wykorzystać siłę bezwładności, pamiętasz? Świetnie. Teraz nauczysz się lepiej balansować ciałem. Po zadaniu dwóch ciosów wykonaj obrót. To powinno zmylić twojego przeciwnika i pozwolić ci wyjść na dobrą pozycję do następnego ataku.
AI_Output (self, other,"DIA_Scatty_TRAIN_2h_Info_01_04"); //Wtedy wyprowadź następne cięcie z prawej strony...
AI_Output (self, other,"DIA_Scatty_TRAIN_2h_Info_01_05"); //I znowu do przodu. Pamiętaj - trening czyni mistrza, więc najlepiej weź się od razu do roboty!
B_GiveInvItems(other,self,itminugget,150);
};
}
else
{
AI_Output (self,other,"DIA_Scatty_TRAIN_2h_NoOre_01_00"); //Wróć, gdy będziesz miał wystarczająco dużo rudy.
};
};