[G2 NK]Unknown identifier ELSE (line 94) 5344 24

O temacie

Autor Graveir

Zaczęty 7.10.2012 roku

Wyświetleń 5344

Odpowiedzi 24

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Mam taki dość spory problem(który kiedyś brzmiał tak samo,tylko wtedy przyczyną był średnik)po zainstalowaniu/wypakowaniu Service Packa 1.4 do G2 NK.A mianowicie zainstalowałem G2MDK,ściągnąłem service packa 1.4,zainstalowałem go w innym folderze niż gra,zdekompilowałem gothic.dat i tutaj pojawia się problem z w/w błędem i skryptem.Teraz nie ma żadnego średnika,ale wywala błąd.Daję oba skrypty(oryginalny i ten z service packa):
Spoiler
func void B_Addon_PiratesGoHome()
{
//---------------------------------------
Skip.aivar[AIV_PARTYMEMBER] = FALSE;
Matt.aivar[AIV_PARTYMEMBER] = FALSE;
Brandon.aivar[AIV_PARTYMEMBER] = FALSE;
RoastPirate.aivar[AIV_PARTYMEMBER] = FALSE;
BenchPirate.aivar[AIV_PARTYMEMBER] = FALSE;
AlligatorJack.aivar[AIV_PARTYMEMBER] = FALSE;

B_StartOtherRoutine (Skip,"START");
B_StartOtherRoutine (Matt,"START"); //START und NICHTS anderes!!!! HOGE
B_StartOtherRoutine (Brandon,"START");
B_StartOtherRoutine (RoastPirate,"START");
B_StartOtherRoutine (BenchPirate,"START");
B_StartOtherRoutine (AlligatorJack,"START");
};

func int C_GregsPiratesTooFar()
{
//if (Npc_GetDistToWP (self,"ADW_CANYON_TELEPORT_PATH_01A") > 15000)
//&& (Npc_GetDistToWP (self,"ADW_CANYON_PATH_TO_BANDITS_47") > 15000)

if (Npc_GetDistToWP (hero,"ADW_CANYON_MINE1_09") < 3000)
|| (Npc_GetDistToWP (hero,"ADW_CANYON_MINE2_04") < 2000)
|| (Npc_GetDistToWP (hero,"ADW_CANYON_LIBRARY_04") < 2000)
|| (Npc_GetDistToWP (hero,"ADW_CANYON_PATH_TO_BANDITS_25") < 6000)
|| (Npc_GetDistToWP (hero,"ADW_PIRATECAMP_WAY_16") < 8000)
{
return TRUE;
};

return FALSE;
};

func int C_HowManyPiratesInParty()
{
return
(
Skip.aivar[AIV_PARTYMEMBER]
+ Matt.aivar[AIV_PARTYMEMBER]
+ Brandon.aivar[AIV_PARTYMEMBER]
+ RoastPirate.aivar[AIV_PARTYMEMBER]
+ BenchPirate.aivar[AIV_PARTYMEMBER]
+ AlligatorJack.aivar[AIV_PARTYMEMBER]
);
};

func void B_Addon_PiratesFollowAgain()
{
// EXIT IF...

// ------ Hero am Strand ------
if (Npc_GetDistToWP (hero, "STRAND") < 4000)
{
return;
};

// ------ nicht ALLE nach Hause gegangen ------
if (C_HowManyPiratesInParty() != 0)
{
return;
};

// FUNC

if (Npc_GetDistToNpc (hero, Skip) <= 2000)
&& (!Npc_IsDead (Skip))
&& (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Skip))
{
Skip.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue (Skip);
B_StartOtherRoutine (Skip,"FOLLOW");
};

if (Npc_GetDistToNpc (hero, Matt) <= 2000)
&& (!Npc_IsDead (Matt))
&& (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Matt))
{
Matt.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue (Matt);
B_StartOtherRoutine (Matt,"FOLLOW");
};

if (Npc_GetDistToNpc (hero, Brandon) <= 2000)
&& (!Npc_IsDead (Brandon))
&& (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Brandon))
{
Brandon.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue (Brandon);
B_StartOtherRoutine (Brandon,"FOLLOW");
};

if (Npc_GetDistToNpc (hero, RoastPirate) <= 2000)
&& (!Npc_IsDead (RoastPirate))
&& (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(RoastPirate))
{
RoastPirate.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue (RoastPirate);
B_StartOtherRoutine (RoastPirate,"FOLLOW");
};

if (Npc_GetDistToNpc (hero, BenchPirate) <= 2000)
&& (!Npc_IsDead (BenchPirate))
&& (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(BenchPirate))
{
BenchPirate.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue (BenchPirate);
B_StartOtherRoutine (BenchPirate,"FOLLOW");
};

if (Npc_GetDistToNpc (hero, AlligatorJack) <= 2000)
&& (!Npc_IsDead (AlligatorJack))
&& (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(AlligatorJack))
{
AlligatorJack.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue (AlligatorJack);
B_StartOtherRoutine (AlligatorJack,"FOLLOW");
};
};

//************************************************************
//   C_TowerBanditsDead
//************************************************************
FUNC INT C_TowerBanditsDead ()
{
var C_NPC TowerBandit1; Towerbandit1 = Hlp_GetNpc (BDT_10100_Addon_Towerbandit);
var C_NPC TowerBandit2; Towerbandit2 = Hlp_GetNpc (BDT_10101_Addon_Towerbandit);
var C_NPC TowerBandit3; Towerbandit3 = Hlp_GetNpc (BDT_10102_Addon_Towerbandit);

IF Npc_IsDead (TowerBandit1)
&& Npc_IsDead (TowerBandit2)
&& Npc_IsDead (TowerBandit3)
{
return TRUE;

TowerBanditsDead = TRUE;
}
else
{
return FALSE;
};
};
Spoiler

func void B_Addon_PiratesGoHome()
{
Skip.aivar[AIV_PARTYMEMBER] = FALSE;
Matt.aivar[AIV_PARTYMEMBER] = FALSE;
Brandon.aivar[AIV_PARTYMEMBER] = FALSE;
RoastPirate.aivar[AIV_PARTYMEMBER] = FALSE;
BenchPirate.aivar[AIV_PARTYMEMBER] = FALSE;
AlligatorJack.aivar[AIV_PARTYMEMBER] = FALSE;
B_StartOtherRoutine(Skip,"START");
B_StartOtherRoutine(Matt,"START");
B_StartOtherRoutine(Brandon,"START");
B_StartOtherRoutine(RoastPirate,"START");
B_StartOtherRoutine(BenchPirate,"START");
B_StartOtherRoutine(AlligatorJack,"START");
};

func int C_GregsPiratesTooFar()
{
if((Npc_GetDistToWP(hero,"ADW_CANYON_MINE1_09") < 3000) || (Npc_GetDistToWP(hero,"ADW_CANYON_MINE2_04") < 2000) || (Npc_GetDistToWP(hero,"ADW_CANYON_LIBRARY_04") < 2000) || (Npc_GetDistToWP(hero,"ADW_CANYON_PATH_TO_BANDITS_25") < 6000) || (Npc_GetDistToWP(hero,"ADW_PIRATECAMP_WAY_16") < 8000))
{
return TRUE;
};
return FALSE;
};

func int C_HowManyPiratesInParty()
{
return Skip.aivar[AIV_PARTYMEMBER] + Matt.aivar[AIV_PARTYMEMBER] + Brandon.aivar[AIV_PARTYMEMBER] + RoastPirate.aivar[AIV_PARTYMEMBER] + BenchPirate.aivar[AIV_PARTYMEMBER] + AlligatorJack.aivar[AIV_PARTYMEMBER];
};

func void B_Addon_PiratesFollowAgain()
{
if(Npc_GetDistToWP(hero,"STRAND") < 4000)
{
return;
};
if(C_HowManyPiratesInParty() != 0)
{
return;
};
if((Npc_GetDistToNpc(hero,Skip) <= 2000) && !Npc_IsDead(Skip) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Skip)))
{
Skip.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue(Skip);
B_StartOtherRoutine(Skip,"FOLLOW");
};
if((Npc_GetDistToNpc(hero,Matt) <= 2000) && !Npc_IsDead(Matt) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Matt)))
{
Matt.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue(Matt);
B_StartOtherRoutine(Matt,"FOLLOW");
};
if((Npc_GetDistToNpc(hero,Brandon) <= 2000) && !Npc_IsDead(Brandon) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Brandon)))
{
Brandon.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue(Brandon);
B_StartOtherRoutine(Brandon,"FOLLOW");
};
if((Npc_GetDistToNpc(hero,RoastPirate) <= 2000) && !Npc_IsDead(RoastPirate) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(RoastPirate)))
{
RoastPirate.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue(RoastPirate);
B_StartOtherRoutine(RoastPirate,"FOLLOW");
};
if((Npc_GetDistToNpc(hero,BenchPirate) <= 2000) && !Npc_IsDead(BenchPirate) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(BenchPirate)))
{
BenchPirate.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue(BenchPirate);
B_StartOtherRoutine(BenchPirate,"FOLLOW");
};
if((Npc_GetDistToNpc(hero,AlligatorJack) <= 2000) && !Npc_IsDead(AlligatorJack) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(AlligatorJack)))
{
AlligatorJack.aivar[AIV_PARTYMEMBER] = TRUE;
Npc_ClearAIQueue(AlligatorJack);
B_StartOtherRoutine(AlligatorJack,"FOLLOW");
};
};

func int C_TowerBanditsDead()
{
var C_Npc TowerBandit1;
var C_Npc TowerBandit2;
var C_Npc TowerBandit3;
TowerBandit1 = Hlp_GetNpc(BDT_10100_Addon_TowerBandit);
TowerBandit2 = Hlp_GetNpc(BDT_10101_Addon_TowerBandit);
TowerBandit3 = Hlp_GetNpc(BDT_10102_Addon_TowerBandit);
if(Npc_IsDead(TowerBandit1) && Npc_IsDead(TowerBandit2) && Npc_IsDead(TowerBandit3))
{
return TRUE;
};
TowerBanditsDead = TRUE;
else
{
return FALSE;
};
};
Ten pierwszy spoiler to oryginał,a ten drugi to z service packa.Jest jakiś błąd w tym drugim?Bo ja żadnego przecinka,średnika ani żadnego innego drobiazgu nie zauważyłem.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Tu jest błąd:if(Npc_IsDead(TowerBandit1) && Npc_IsDead(TowerBandit2) && Npc_IsDead(TowerBandit3))
        {
                return TRUE;
        };
        TowerBanditsDead = TRUE;
        else
        {
                return FALSE;
        };
Wywal ;
        TowerBanditsDead = TRUE;

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Dobra,teraz nie wywala przy tym.Ale jest problem z dialogiem Bullca.A mianowicie chodzi o plik DIA_SLD_807_Bullco.Błąd o treści "Expected ';' (line 156)".Wklejam całość,ale linia 156 znajduje się po tekście "Nie wierzę! Ten koleżka wciąż tu jest!"
Spoiler

instance DIA_Bullco_EXIT(C_Info)
{
npc = Sld_807_Bullco;
nr = 999;
condition = DIA_Bullco_EXIT_Condition;
information = DIA_Bullco_EXIT_Info;
permanent = TRUE;
description = Dialog_Ende;
};


func int DIA_Bullco_EXIT_Condition()
{
return TRUE;
};

func void DIA_Bullco_EXIT_Info()
{
AI_StopProcessInfos(self);
};


instance DIA_Bullco_Hallo(C_Info)
{
npc = Sld_807_Bullco;
nr = 1;
condition = DIA_Bullco_Hallo_Condition;
information = DIA_Bullco_Hallo_Info;
permanent = TRUE;
description = "Jest coś, o czym powinniśmy pogadać...";
};


func int DIA_Bullco_Hallo_Condition()
{
return TRUE;
};

func void DIA_Bullco_Hallo_Info()
{
AI_Output(other,self,"DIA_Bullco_HALLO_15_00"); //Jest coś, o czym powinniśmy pogadać...
if(self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_LOST)
{
AI_Output(self,other,"DIA_Bullco_HALLO_06_01"); //Wygrałeś! A teraz idź sobie.
}
else
{
AI_Output(self,other,"DIA_Bullco_HALLO_06_02"); //Nic o tym nie wiem.
};
AI_StopProcessInfos(self);
};


instance DIA_Bullco_Quatscher(C_Info)
{
npc = Sld_807_Bullco;
nr = 2;
condition = DIA_Bullco_Quatscher_Condition;
information = DIA_Bullco_Quatscher_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Bullco_Quatscher_Condition()
{
if((self.aivar[AIV_DefeatedByPlayer] == FALSE) && (Sylvio_angequatscht >= 2))
{
return TRUE;
};
};

func void DIA_Bullco_Quatscher_Info()
{
AI_Output(self,other,"DIA_Bullco_Quatscher_06_00"); //Silvio nie lubi, jak się do niego rozmawia. Do tej pory powinieneś to już wiedzieć.
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,"PEE");
B_Attack(self,other,AR_NONE,1);
};


var int Bullco_Leave_Day;
var int Bullco_scharf;

instance DIA_Bullco_PleaseLeave(C_Info)
{
npc = Sld_807_Bullco;
nr = 3;
condition = DIA_Bullco_PleaseLeave_Condition;
information = DIA_Bullco_PleaseLeave_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Bullco_PleaseLeave_Condition()
{
if(self.aivar[AIV_DefeatedByPlayer] == FALSE)
{
if((self.aivar[AIV_LastFightAgainstPlayer] != FIGHT_NONE) || (Sylvio_MenDefeated == TRUE))
{
return TRUE;
};
};
};

func void DIA_Bullco_PleaseLeave_Info()
{
AI_Output(self,other,"DIA_Bullco_PleaseLeave_06_00"); //Ty i ja musimy pogadać.
AI_Output(other,self,"DIA_Bullco_PleaseLeave_15_01"); //Czego chcesz?
AI_Output(self,other,"DIA_Bullco_PleaseLeave_06_02"); //Myślę, żebyś nie pokazywał się na farmie.
AI_Output(self,other,"DIA_Bullco_PleaseLeave_06_03"); //Jutro ma cię tu nie być. Rozumiesz?
Bullco_Leave_Day = B_GetDayPlus();
Bullco_scharf = TRUE;
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,"PEE");
};


var int Bullco_HitCounter;

instance DIA_Bullco_DailyCheck(C_Info)
{
npc = Sld_807_Bullco;
nr = 4;
condition = DIA_Bullco_DailyCheck_Condition;
information = DIA_Bullco_DailyCheck_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Bullco_DailyCheck_Condition()
{
if((self.aivar[AIV_DefeatedByPlayer] == FALSE) && (Bullco_scharf == TRUE) && (Wld_GetDay() > Bullco_Leave_Day))
{
return TRUE;
};
};

func void DIA_Bullco_DailyCheck_Info()
{
if(Bullco_HitCounter == 0)
{
AI_Output(self,other,"DIA_Bullco_DailyCheck_06_00"); //Dalej tu jesteś...
AI_Output(self,other,"DIA_Bullco_DailyCheck_06_01"); //Chyba ustaliliśmy, że nie będę cię zatrzymywał.
AI_Output(self,other,"DIA_Bullco_DailyCheck_06_02"); //Naprawdę trzeba było mnie słuchać.
}
else
{
AI_Output(self,other,"DIA_Bullco_DailyCheck_06_03"); //Nie wierzę! Ten koleżka wciąż tu jest!
};
Bullco_HitCounter = Bullco_HitCounter + 1;
B_GetDayPlus();
AI_StopProcessInfos(self)Bullco_Leave_Day == ;
B_Attack(self,other,AR_NONE,1);
};


instance DIA_Bullco_WontLeave(C_Info)
{
npc = Sld_807_Bullco;
nr = 5;
condition = DIA_Bullco_WontLeave_Condition;
information = DIA_Bullco_WontLeave_Info;
permanent = FALSE;
description = "NIE zamierzam stąd odejść!";
};


func int DIA_Bullco_WontLeave_Condition()
{
if(Bullco_scharf == TRUE)
{
return TRUE;
};
};

func void DIA_Bullco_WontLeave_Info()
{
AI_Output(other,self,"DIA_Bullco_WontLeave_15_00"); //NIE zamierzam stąd odejść!
if(self.aivar[AIV_DefeatedByPlayer] == FALSE)
{
AI_Output(self,other,"DIA_Bullco_WontLeave_06_01"); //No to chyba będziemy gadali o tym jeszcze raz.
AI_StopProcessInfos(self);
B_Attack(self,other,AR_NONE,1);
}
else
{
AI_Output(self,other,"DIA_Bullco_WontLeave_06_02"); //Taak, taak, idź to powiedz komuś, kogo to obchodzi.
Bullco_scharf = FALSE;
AI_StopProcessInfos(self);
};
};


instance DIA_Bullco_PepesSchafe(C_Info)
{
npc = Sld_807_Bullco;
nr = 6;
condition = DIA_Bullco_PepesSchafe_Condition;
information = DIA_Bullco_PepesSchafe_Info;
permanent = FALSE;
description = "Czy imię Pepe coś ci mówi?";
};


func int DIA_Bullco_PepesSchafe_Condition()
{
if((MIS_Pepe_KillWolves == LOG_SUCCESS) && (Bullco_scharf == TRUE) && (Onar_WegenPepe == TRUE))
{
return TRUE;
};
};

func void DIA_Bullco_PepesSchafe_Info()
{
AI_Output(other,self,"DIA_Bullco_PepesSchafe_15_00"); //Czy imię Pepe coś ci mówi?
AI_Output(self,other,"DIA_Bullco_PepesSchafe_06_01"); //Nie rozumiem, co gadasz, ale nie widzi mi się, jak to gadasz.
AI_Output(other,self,"DIA_Bullco_PepesSchafe_15_02"); //Miałeś pilnować jego owiec.
AI_Output(self,other,"DIA_Bullco_PepesSchafe_06_03"); //A co mnie obchodzą jego owce?
AI_Output(other,self,"DIA_Bullco_PepesSchafe_15_04"); //Lee obchodzą.
AI_Output(self,other,"DIA_Bullco_PepesSchafe_06_05"); //No i...?
AI_Output(other,self,"DIA_Bullco_PepesSchafe_15_06"); //Jeśli dalej będziesz mnie wkurzać, zadbam o to, żebyś musiał zapłacić za te owce.
AI_Output(other,self,"DIA_Bullco_PepesSchafe_15_07"); //Więc jeśli interesuje cię twoje wynagrodzenie, to daj mi spokój!
AI_Output(self,other,"DIA_Bullco_PepesSchafe_06_08"); //Ty, ty...
AI_Output(other,self,"DIA_Bullco_PepesSchafe_15_09"); //Tak?
AI_Output(self,other,"DIA_Bullco_PepesSchafe_06_10"); //Ty wstrętna kreaturo...
Bullco_scharf = FALSE;
B_GivePlayerXP(XP_Ambient);
AI_StopProcessInfos(self);
};


instance DIA_BullcoSLD_PICKPOCKET(C_Info)
{
npc = Sld_807_Bullco;
nr = 900;
condition = DIA_BullcoSLD_PICKPOCKET_Condition;
information = DIA_BullcoSLD_PICKPOCKET_Info;
permanent = TRUE;
description = Pickpocket_60;
};


func int DIA_BullcoSLD_PICKPOCKET_Condition()
{
return C_Beklauen(56,35);
};

func void DIA_BullcoSLD_PICKPOCKET_Info()
{
Info_ClearChoices(DIA_BullcoSLD_PICKPOCKET);
Info_AddChoice(DIA_BullcoSLD_PICKPOCKET,Dialog_Back,DIA_BullcoSLD_PICKPOCKET_BACK);
Info_AddChoice(DIA_BullcoSLD_PICKPOCKET,DIALOG_PICKPOCKET,DIA_BullcoSLD_PICKPOCKET_DoIt);
};

func void DIA_BullcoSLD_PICKPOCKET_DoIt()
{
B_Beklauen();
Info_ClearChoices(DIA_BullcoSLD_PICKPOCKET);
};

func void DIA_BullcoSLD_PICKPOCKET_BACK()
{
Info_ClearChoices(DIA_BullcoSLD_PICKPOCKET);
};
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

ElitarnyDuch

ElitarnyDuch

Użytkownicy
posty64
ProfesjaSkrypter
  • Użytkownicy
Dobra,teraz nie wywala przy tym.Ale jest problem z dialogiem Bullca.A mianowicie chodzi o plik DIA_SLD_807_Bullco.Błąd o treści Expected #msg1055906;#msg1055906 (line 156).Wklejam całość,ale linia 156 znajduje się po tekście Nie wierzę! Ten koleżka wciąż tu jest!
Spoiler

instance DIA_Bullco_EXIT(C_Info)
{
npc = Sld_807_Bullco;
nr = 999;
condition = DIA_Bullco_EXIT_Condition;
information = DIA_Bullco_EXIT_Info;
permanent = TRUE;
description = Dialog_Ende;
};

func int DIA_Bullco_EXIT_Condition()
{
return TRUE;
};

func void DIA_Bullco_EXIT_Info()
{
AI_StopProcessInfos(self);
};


instance DIA_Bullco_Hallo(C_Info)
{
npc = Sld_807_Bullco;
nr = 1;
condition = DIA_Bullco_Hallo_Condition;
information = DIA_Bullco_Hallo_Info;
permanent = TRUE;
description = Jest coś, o czym powinniśmy pogadać...;
};


func int DIA_Bullco_Hallo_Condition()
{
return TRUE;
};

func void DIA_Bullco_Hallo_Info()
{
AI_Output(other,self,DIA_Bullco_HALLO_15_00); //Jest coś, o czym powinniśmy pogadać...
if(self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_LOST)
{
AI_Output(self,other,DIA_Bullco_HALLO_06_01); //Wygrałeś! A teraz idź sobie.
}
else
{
AI_Output(self,other,DIA_Bullco_HALLO_06_02); //Nic o tym nie wiem.
};
AI_StopProcessInfos(self);
};


instance DIA_Bullco_Quatscher(C_Info)
{
npc = Sld_807_Bullco;
nr = 2;
condition = DIA_Bullco_Quatscher_Condition;
information = DIA_Bullco_Quatscher_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Bullco_Quatscher_Condition()
{
if((self.aivar[AIV_DefeatedByPlayer] == FALSE) && (Sylvio_angequatscht >= 2))
{
return TRUE;
};
};

func void DIA_Bullco_Quatscher_Info()
{
AI_Output(self,other,DIA_Bullco_Quatscher_06_00); //Silvio nie lubi, jak się do niego rozmawia. Do tej pory powinieneś to już wiedzieć.
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,PEE);
B_Attack(self,other,AR_NONE,1);
};


var int Bullco_Leave_Day;
var int Bullco_scharf;

instance DIA_Bullco_PleaseLeave(C_Info)
{
npc = Sld_807_Bullco;
nr = 3;
condition = DIA_Bullco_PleaseLeave_Condition;
information = DIA_Bullco_PleaseLeave_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Bullco_PleaseLeave_Condition()
{
if(self.aivar[AIV_DefeatedByPlayer] == FALSE)
{
if((self.aivar[AIV_LastFightAgainstPlayer] != FIGHT_NONE) || (Sylvio_MenDefeated == TRUE))
{
return TRUE;
};
};
};

func void DIA_Bullco_PleaseLeave_Info()
{
AI_Output(self,other,DIA_Bullco_PleaseLeave_06_00); //Ty i ja musimy pogadać.
AI_Output(other,self,DIA_Bullco_PleaseLeave_15_01); //Czego chcesz?
AI_Output(self,other,DIA_Bullco_PleaseLeave_06_02); //Myślę, żebyś nie pokazywał się na farmie.
AI_Output(self,other,DIA_Bullco_PleaseLeave_06_03); //Jutro ma cię tu nie być. Rozumiesz?
Bullco_Leave_Day = B_GetDayPlus();
Bullco_scharf = TRUE;
AI_StopProcessInfos(self);
Npc_ExchangeRoutine(self,PEE);
};


var int Bullco_HitCounter;

instance DIA_Bullco_DailyCheck(C_Info)
{
npc = Sld_807_Bullco;
nr = 4;
condition = DIA_Bullco_DailyCheck_Condition;
information = DIA_Bullco_DailyCheck_Info;
permanent = FALSE;
important = TRUE;
};


func int DIA_Bullco_DailyCheck_Condition()
{
if((self.aivar[AIV_DefeatedByPlayer] == FALSE) && (Bullco_scharf == TRUE) && (Wld_GetDay() > Bullco_Leave_Day))
{
return TRUE;
};
};

func void DIA_Bullco_DailyCheck_Info()
{
if(Bullco_HitCounter == 0)
{
AI_Output(self,other,DIA_Bullco_DailyCheck_06_00); //Dalej tu jesteś...
AI_Output(self,other,DIA_Bullco_DailyCheck_06_01); //Chyba ustaliliśmy, że nie będę cię zatrzymywał.
AI_Output(self,other,DIA_Bullco_DailyCheck_06_02); //Naprawdę trzeba było mnie słuchać.
}
else
{
AI_Output(self,other,DIA_Bullco_DailyCheck_06_03); //Nie wierzę! Ten koleżka wciąż tu jest!
};
Bullco_HitCounter = Bullco_HitCounter + 1;
B_GetDayPlus();
AI_StopProcessInfos(self)Bullco_Leave_Day == ;
B_Attack(self,other,AR_NONE,1);
};


instance DIA_Bullco_WontLeave(C_Info)
{
npc = Sld_807_Bullco;
nr = 5;
condition = DIA_Bullco_WontLeave_Condition;
information = DIA_Bullco_WontLeave_Info;
permanent = FALSE;
description = NIE zamierzam stąd odejść!;
};


func int DIA_Bullco_WontLeave_Condition()
{
if(Bullco_scharf == TRUE)
{
return TRUE;
};
};

func void DIA_Bullco_WontLeave_Info()
{
AI_Output(other,self,DIA_Bullco_WontLeave_15_00); //NIE zamierzam stąd odejść!
if(self.aivar[AIV_DefeatedByPlayer] == FALSE)
{
AI_Output(self,other,DIA_Bullco_WontLeave_06_01); //No to chyba będziemy gadali o tym jeszcze raz.
AI_StopProcessInfos(self);
B_Attack(self,other,AR_NONE,1);
}
else
{
AI_Output(self,other,DIA_Bullco_WontLeave_06_02); //Taak, taak, idź to powiedz komuś, kogo to obchodzi.
Bullco_scharf = FALSE;
AI_StopProcessInfos(self);
};
};


instance DIA_Bullco_PepesSchafe(C_Info)
{
npc = Sld_807_Bullco;
nr = 6;
condition = DIA_Bullco_PepesSchafe_Condition;
information = DIA_Bullco_PepesSchafe_Info;
permanent = FALSE;
description = Czy imię Pepe coś ci mówi?;
};


func int DIA_Bullco_PepesSchafe_Condition()
{
if((MIS_Pepe_KillWolves == LOG_SUCCESS) && (Bullco_scharf == TRUE) && (Onar_WegenPepe == TRUE))
{
return TRUE;
};
};

func void DIA_Bullco_PepesSchafe_Info()
{
AI_Output(other,self,DIA_Bullco_PepesSchafe_15_00); //Czy imię Pepe coś ci mówi?
AI_Output(self,other,DIA_Bullco_PepesSchafe_06_01); //Nie rozumiem, co gadasz, ale nie widzi mi się, jak to gadasz.
AI_Output(other,self,DIA_Bullco_PepesSchafe_15_02); //Miałeś pilnować jego owiec.
AI_Output(self,other,DIA_Bullco_PepesSchafe_06_03); //A co mnie obchodzą jego owce?
AI_Output(other,self,DIA_Bullco_PepesSchafe_15_04); //Lee obchodzą.
AI_Output(self,other,DIA_Bullco_PepesSchafe_06_05); //No i...?
AI_Output(other,self,DIA_Bullco_PepesSchafe_15_06); //Jeśli dalej będziesz mnie wkurzać, zadbam o to, żebyś musiał zapłacić za te owce.
AI_Output(other,self,DIA_Bullco_PepesSchafe_15_07); //Więc jeśli interesuje cię twoje wynagrodzenie, to daj mi spokój!
AI_Output(self,other,DIA_Bullco_PepesSchafe_06_08); //Ty, ty...
AI_Output(other,self,DIA_Bullco_PepesSchafe_15_09); //Tak?
AI_Output(self,other,DIA_Bullco_PepesSchafe_06_10); //Ty wstrętna kreaturo...
Bullco_scharf = FALSE;
B_GivePlayerXP(XP_Ambient);
AI_StopProcessInfos(self);
};


instance DIA_BullcoSLD_PICKPOCKET(C_Info)
{
npc = Sld_807_Bullco;
nr = 900;
condition = DIA_BullcoSLD_PICKPOCKET_Condition;
information = DIA_BullcoSLD_PICKPOCKET_Info;
permanent = TRUE;
description = Pickpocket_60;
};


func int DIA_BullcoSLD_PICKPOCKET_Condition()
{
return C_Beklauen(56,35);
};

func void DIA_BullcoSLD_PICKPOCKET_Info()
{
Info_ClearChoices(DIA_BullcoSLD_PICKPOCKET);
Info_AddChoice(DIA_BullcoSLD_PICKPOCKET,Dialog_Back,DIA_BullcoSLD_PICKPOCKET_BACK);
Info_AddChoice(DIA_BullcoSLD_PICKPOCKET,DIALOG_PICKPOCKET,DIA_BullcoSLD_PICKPOCKET_DoIt);
};

func void DIA_BullcoSLD_PICKPOCKET_DoIt()
{
B_Beklauen();
Info_ClearChoices(DIA_BullcoSLD_PICKPOCKET);
};

func void DIA_BullcoSLD_PICKPOCKET_BACK()
{
Info_ClearChoices(DIA_BullcoSLD_PICKPOCKET);
};

Dam Ci NAJPROSTSZE rozwiązanie zainstaluj odnowa g2mdk ale w osobnym folderze i zamień ten oryginal na ten z nowo zainstalowanego skrypt dialogu

[mod=edeksumo] W języku polskim duże znaki używamy tylko na początku zdania i w nazwach własnych. Ile jeszcze? Dobrze radzę zainstaluj firefoxa bądź weź słownik do ręki[/mod]
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
@Odświeżam.Da radę coś zrobić z tymi dialogami?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti


Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Mam to skasować?
Chyba sam powinieneś wiedzieć co chciałeś zrobić i w jaki sposób miało to działać w zamyśle ?
błąd polega na tym ze po (self) nie dałeś średnika a to co miało wyjść z tego co jest po tym to nikt nie wie oprócz ciebie.

Adanos

Adanos

Administrator
Szara eminencja
posty5204
Propsy3870
ProfesjaProgramista
  • Administrator
  • Szara eminencja
Mam to skasować?
Chyba sam powinieneś wiedzieć co chciałeś zrobić i w jaki sposób miało to działać w zamyśle ?
błąd polega na tym ze po (self) nie dałeś średnika a to co miało wyjść z tego co jest po tym to nikt nie wie oprócz ciebie.
On nie wie, bo zdekompilował SP :D

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Dobra,zeedytowałem post.Może mi ktoś powiedzieć,gdzie leży błąd?Bo wyskakuje mi
Cytuj
unknown identifier DIA_Kirion_TeachHP
Wklejam skrypt dialogu:
Spoiler

instance DIA_Kirion_Teach(C_Info)
{
npc = NONE_122_Kirion;
nr = 2;
condition = DIA_Kirion_Teach_Condition;
information = DIA_Kirion_Teach_Info;
permanent = TRUE;
description = "Ucz mnie.";
};


func int DIA_Kirion_Teach_Condition()
{
if(Npc_KnowsInfo(other,DIA_Kirion_Who))
{
return TRUE;
};
};

func void DIA_Kirion_Teach_Info()
{
AI_Output(other,self,"DIA_Kirion_Teach_15_00"); //Ucz mnie.
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_Back);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA1,B_GetLearnCostAttribute(other,ATR_MANA_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA5,B_GetLearnCostAttribute(other,ATR_MANA_MAX) * 5),DIA_Kirion_Teach_5);
Info_AddChoice(DIA_Kirion_TeachHP,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX)),DIA_Kirion_TeachHP_1);
Info_AddChoice(DIA_Kirion_TeachHP,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX) * 5),DIA_Kirion_TeachHP_5);

};

func void DIA_Kirion_Teach_Back()
{
Info_ClearChoices(DIA_Kirion_Teach);
};

func void DIA_Kirion_Teach_1()
{
B_TeachAttributePoints(self,other,ATR_MANA_MAX,1,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA1,B_GetLearnCostAttribute(other,ATR_MANA_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA5,B_GetLearnCostAttribute(other,ATR_MANA_MAX) * 5),DIA_Kirion_Teach_5);
};

func void DIA_Kirion_Teach_5()
{
B_TeachAttributePoints(self,other,ATR_MANA_MAX,5,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA1,B_GetLearnCostAttribute(other,ATR_MANA_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA5,B_GetLearnCostAttribute(other,ATR_MANA_MAX) * 5),DIA_Kirion_Teach_5);
};

func void DIA_Kirion_TeachHP_1()
{
B_TeachAttributePoints(self,other,ATR_HITPOINTS_MAX,1,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_TeachHP,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_TeachHP,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX) * 5),DIA_Kirion_Teach_5);
};

func void DIA_Kirion_TeachHP_5()
{
B_TeachAttributePoints(self,other,ATR_HITPOINTS_MAX,5,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_TeachHP,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX)),DIA_Kirion_TeachHP_1);
Info_AddChoice(DIA_Kirion_TeachHP,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX) * 5),DIA_Kirion_TeachHP_5);
};
Widzi ktoś przyczynę tego błędu?
Aha i mógłby mi ktoś jeszcze powiedzieć,jak(i gdzie):
1)Zmienić ilość punktów nauki na statystyki(żeby ciągle było 5 PN = 5 PS,niezależnie od ilości posiadanej statystyki)
2)Zwiększyć ilość PN przy zdobyciu poziomu(np.do 20)
3)Dodać naukę kręgów magii(i ewentualnie akrobatyki)
Na chwilę obecną tylko(lub aż)tyle potrzebuję pomocy.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

RafalBudzis

RafalBudzis

Użytkownicy
posty1967
Propsy808
ProfesjaSkrypter
  • Użytkownicy
Może mi ktoś powiedzieć,gdzie leży błąd?Bo wyskakuje mi
unknown identifier DIA_Kirion_TeachHPWidzi ktoś przyczynę tego błędu?
Kompilator ją widzi :P

Po prostu nie znajduje dialogu o instance DIA_Kirion_TeachHP bo go nie ma. Choice są przypisywane do dialogu wiec 1 parametr to instancja dialogu który się odbywa !!! Więc zamień wszędzie na DIA_Kirion_Teach. bez tego HP z dupy wziętego.

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Dobra,pozmieniałem skrypt lekko i błąd już przy reparsowaniu nie wyskakuje.Ale jak chcę się nauczyć punktów trafień,to wyskakuje
Cytuj
Błąd:zły parametr
Tutaj przerobiony skrypt:
Spoiler
instance DIA_Kirion_Teach(C_Info)
{
npc = NONE_122_Kirion;
nr = 2;
condition = DIA_Kirion_Teach_Condition;
information = DIA_Kirion_Teach_Info;
permanent = TRUE;
description = "Ucz mnie.";
};


func int DIA_Kirion_Teach_Condition()
{
if(Npc_KnowsInfo(other,DIA_Kirion_Who))
{
return TRUE;
};
};

func void DIA_Kirion_Teach_Info()
{
AI_Output(other,self,"DIA_Kirion_Teach_15_00"); //Ucz mnie.
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_Back);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA1,B_GetLearnCostAttribute(other,ATR_MANA_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA5,B_GetLearnCostAttribute(other,ATR_MANA_MAX) * 5),DIA_Kirion_Teach_5);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX)),DIA_Kirion_Teach_HP_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX) * 5),DIA_Kirion_Teach_HP_5);

};

func void DIA_Kirion_Teach_Back()
{
Info_ClearChoices(DIA_Kirion_Teach);
};

func void DIA_Kirion_Teach_1()
{
B_TeachAttributePoints(self,other,ATR_MANA_MAX,1,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA1,B_GetLearnCostAttribute(other,ATR_MANA_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA5,B_GetLearnCostAttribute(other,ATR_MANA_MAX) * 5),DIA_Kirion_Teach_5);
};

func void DIA_Kirion_Teach_5()
{
B_TeachAttributePoints(self,other,ATR_MANA_MAX,5,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA1,B_GetLearnCostAttribute(other,ATR_MANA_MAX)),DIA_Kirion_Teach_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_LearnMANA5,B_GetLearnCostAttribute(other,ATR_MANA_MAX) * 5),DIA_Kirion_Teach_5);
};

func void DIA_Kirion_Teach_HP_1()
{
B_TeachAttributePoints(self,other,ATR_HITPOINTS_MAX,1,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX)),DIA_Kirion_Teach_HP_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX) * 5),DIA_Kirion_Teach_HP_5);
};

func void DIA_Kirion_Teach_HP_5()
{
B_TeachAttributePoints(self,other,ATR_HITPOINTS_MAX,5,T_MEGA);
Info_ClearChoices(DIA_Kirion_Teach);
Info_AddChoice(DIA_Kirion_Teach,Dialog_Back,DIA_Kirion_Teach_BACK);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX)),DIA_Kirion_Teach_HP_1);
Info_AddChoice(DIA_Kirion_Teach,B_BuildLearnString(PRINT_Learnhitpoints_MAX,B_GetLearnCostAttribute(other,ATR_HITPOINTS_MAX) * 5),DIA_Kirion_Teach_HP_5);
};
Edit:I do tego w oknie wyboru jest wyświetlane,że wymaga 0 PN.
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
Ja nie moge. Człowieku, dam ci dobrą radę:

1. Poczytaj najpierw tutoriale.
2. Sprawdź jak poszczególne rzeczy są zrobione w gotowych skryptach.
3. Chcesz zrobić naukę, najlepiej skopiuj gotowy dialog nauki, zmień tylko instance, atrybut którego mamy się nauczyć za pomocą opcji "Szukaj>>Zmień" i masz gotowe.
4. Jeśli masz 10 lat to zaprzestań moddingu, bo namieszasz sobie w głowie i w przyszłości niczego się nie nauczysz. :lol:


EDIT: Dziwie się, że komuś chce się sprawdzać cudze skrypty i w zasadzie odwalać robotę za ciebie. W ogóle dziwi mnie trochę, że nie ogarniasz takich rzeczy, bo po napisaniu 750 postów, powinny znaleźć się takie rzeczy, których nie można nie wiedzieć.
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Po pierwsze - 714 postów nie ma nic do rzeczy.
Po drugie - szukałem tutoriala,w którym byłoby to wyjaśnione w stylu "Idiot friendly",ale nie znalazłem
Po trzecie - zmiana instancji nie wystarczy
Po czwarte - mam 20 lat  :hitler:  
Po piąte - nigdy nie miałem potrzeby tworzenia postaci,które mogą czegoś nauczyć,a do tego to już trochę cięższe stworzyć postać uczącą kręgów magii i punktów życia(nauczyciela siły,zręczności i walki zrobienie poszło bez większych problemów)
Po szóste - nie znalazłem tematu,w którym jest napisane,gdzie zmienić punkty nauki przy nauczycielach i przy zdobyciu poziomu...
Po siódme(i ostatnie) - twój post nic nie wnosi do problemu,więc jak nie chcesz pomagać,to się nie wypowiadaj.
No i k**wa musiałem napisać OT posta ;x
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
No dobra,tak z innej beczki.Próbowałem przerobić runę Śmiertelna Fala,by zmniejszyć wymagany krąg,obrażenia i manę.No i zmniejszenie kręgu nie robi problemu,ale zamiast 45 punktów many ciągle zżera mi 150.W którym pliku popełniłem błąd(żaden error zspy nie wykrywa)?
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti

Wicon

Wicon

Użytkownicy
posty147
Propsy5
  • Użytkownicy
Człowiek który potrafi myśleć w minimalnym stopniu, w minimalnym stopniu zna język angielski potrafi sam sobie wyszukać takie rzeczy i potrafi stworzyc własne skrypty właśnie np. nauczania na przykładzie tych już istniejących.

A co do twojego pytania. Nie podałeś żadnych dokładnych informacji i nie wiem czy edytowałeś tylko plik w folderze items czy nie. Ale jeśli tak to zajrzyj sobie do folderu:

_Work\data\Scripts\Content\AI\Magic\Spells

Plik Spells_DeathBall

Jeśli rzeczywiście potrafisz myśleć, to sam sobie go z edytujesz tak, żeby nie było błędu i wszystko śmigało.
 

Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Przerobiony skrypt Spell_MassDeath(nazwałem swój czar MassDestroy):
Spoiler

const int SPL_Cost_MassDestroy = 40;
const int SPL_Damage_MassDestroy = 175;

instance Spell_MassDestroy(C_Spell_Proto)
{
time_per_mana = 0;
damage_per_level = SPL_Damage_MassDestroy;
targetCollectAlgo = TARGET_COLLECT_NONE;
};


func int Spell_Logic_Massdestroy(var int manaInvested)
{
if(Npc_GetActiveSpellIsScroll(self) && (self.attribute[ATR_MANA] >= SPL_Cost_Scroll))
{
return SPL_SENDCAST;
}
else if(self.attribute[ATR_MANA] >= SPL_Cost_MassDestroy)
{
return SPL_SENDCAST;
}
else
{
return SPL_SENDSTOP;
};
};

func void Spell_Cast_Massdestroy()
{
if(Npc_GetActiveSpellIsScroll(self))
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_Scroll;
}
else
{
self.attribute[ATR_MANA] = self.attribute[ATR_MANA] - SPL_Cost_MassDestroy;
};
self.aivar[AIV_SelectSpell] += 1;
};
Do Spell_ProcessMana dodałem:
if(activeSpell == SPL_MassDestroy)
{
return Spell_Logic_Massdestroy(manaInvested);
};
W constants.d zmieniłem:
const int SPL_Reserved_65 = 65;
na
const int SPL_MassDestroy = 65;
Oraz w części
Cytuj
const string spellFxInstanceNames
zmieniłem 65 pozycję z "Light" na "MassDeath"(bo to chyba tylko odpowiada za to,co się pojawi po rzuceniu czaru?).
Następnie w
Cytuj
const string spellFxAniLetters[100] =
zmieniłem w pozycji 65 "XXX" na "MSD".
W pliku Text.d zmieniłem
TXT_SPL_RESERVED_65
na
Masowe zniszczenie
oraz
const string NAME_SPL_Reserved_65 = "NAME_SPL_RESERVED_65";
na
const string NAME_SPL_MassDestroy = "Masowe zniszczenie";
A do IT_Runen.d dodałem
instance ItRu_MassDestroy(C_Item)
{
name = "Masowe zniszczenie";
mainflag = ITEM_KAT_RUNE;
flags = ITEM_MISSION;
value = 1500;
visual = "ItRu_MassDeath.3ds";
material = MAT_STONE;
spell = SPL_MassDestroy;
mag_circle = 2;
wear = WEAR_EFFECT;
effect = "SPELLFX_WEAKGLIMMER_RED";
description = "Masowe zniszczenie";
text[0] = NAME_Mag_Circle;
count[0] = mag_circle;
text[1] = NAME_Manakosten;
count[1] = SPL_Cost_MassDestroy;
text[2] = NAME_Dam_Magic;
count[2] = SPL_Damage_MassDestroy;
text[5] = NAME_Value;
count[5] = value;
};
I dalej zżera 150 many,a błędów zspy nie wykrywa(jak użyję tej runy postacią z 40 punktami many,to w statystykach pisze mi -110/40)
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti


Graveir

Graveir

Użytkownicy
Avatar Twilight Sparkle / Pożeracz serc
posty1275
Propsy235
ProfesjaGracz
  • Użytkownicy
  • Avatar Twilight Sparkle / Pożeracz serc
Jeżeli chodzi o to z constants,to
const int SPL_Cost_Scroll = 5;
Czyli chyba wynosi 5.
Edit:Zauważyłem również,że i zwój(przerobiłem zwój Śmiertelnej Fali)i runa nie zadają obrażeń celowi(testowałem na Xardasie - tym moim nic mu nie robi i się do mnie nie odwraca,by mnie uśpić,a tym oryginalnym się odwraca,mówi "Czekaj ty gnido" i usypia).
 
Mój obecny sprzęt PC:
Intel core i5-4590
8 gb ram
Geforce GTX 1050Ti


0 użytkowników i 1 Gość przegląda ten wątek.
0 użytkowników
Do góry