Incorrect scripts into Gothic I & II
Yellow lines are correlated to critical errors, which Gothic Starter and Gothic Sourcer can recognize.
Red or magenta lines are correlated to important or negligible errors, which Gothic Sourcer can recognize.
Orange or purple lines are correlated to important or negligible errors, which I recognized accidentally.
Black lines show some examples, which I selected.
Blue lines explain the probable solutions, which I imagined.
1
G1 Story\Missions\Dia_Org_801_Lares.d(203)
» G2 Story\Dialoge\DIA_Sld_807_Bullco.d(155)
» G2 Story\Dialoge\Dia_Vlk_413_Bosper.d(834)
FUNC VOID ORG_801_Lares_BringListAnteil_Info()
{
AI_Output (other, self,"ORG_801_Lares_BringListAnteil_15_00"); //They've already mugged the convoy? Where's my share?
AI_Output (self, other,"ORG_801_Lares_BringListAnteil_11_01"); //Go to see Gorn. He'll give you something.
var C_NPC gorn; gorn = Hlp_GetNpc(PC_Fighter);
if (gorn.aivar[AIV_FINDABLE]==TRUE)
AI_Output (other, self,"ORG_801_Lares_BringListAnteil_15_02"); //I know Gorn. He's no member of the gang. He's a mercenary who works for the mages.
AI_Output (self, other,"ORG_801_Lares_BringListAnteil_11_03"); //Yeah, that's right.
AI_Output (other, self,"ORG_801_Lares_BringListAnteil_15_04"); //Was he involved in this business?
AI_Output (self, other,"ORG_801_Lares_BringListAnteil_11_05"); //Knowing too much isn't good for you. Just go to see him and collect your share.
};
B_LogEntry(CH1_JoinNC,"Gorn, the mercenary, participated in the raid on the convoy in a mysterious way. I'll get my share from him.");
gorn.aivar[AIV_FINDABLE]==TRUE;
Maybe I should replace the double “=” by a single one.
2
G2 Story\Dialoge\Dia_Sld_810_Dar.d(245)
Error: Comparison is possible only in ‘if’ expression
func int DIA_Dar_Kameradenschwein_Condition()
if(Dar_LostAgainstCipher == TRUE)
self.aivar[AIV_LastFightComment] == FALSE;
return TRUE;
Maybe I should replace the previous paragraph by the next one:
if((Dar_LostAgainstCipher == TRUE) && (self.aivar[AIV_LastFightComment] == FALSE))
3
G2 Story\Dialoge\DIA_PC_Thief_NW.d(284)
Error: Cannot convert from type int to instance
[ … … …]
if(Npc_HasItems(other,ItSe_DiegosTreasure_Mis) >= 1)
B_GiveInvItems(other,self,ItSe_DiegosTreasure_Mis,1);
b_diegonw_diegosrevenge();
DiegosRevenge = TRUE;
}
else if(Npc_HasItems(other,ItMi_Gold < DiegosTreasure))
AI_Output(self,other,"DIA_DiegoNW_HaveYourGold_11_02"); //But that's not all of it! Don't you trust me? I need the entire sum.
AI_Output(self,other,"DIA_DiegoNW_HaveYourGold_11_03"); //If my plan works out, there will be enough left over for you.
AI_Output(self,other,"DIA_DiegoNW_HaveYourGold_11_04"); //So make sure that I get the whole amount. It's important!
else
B_GiveInvItems(other,self,ItMi_Gold,DiegosTreasure);
Maybe I should replace the incorrect line by the next one:
else if(Npc_HasItems(other,ItMi_Gold) < DiegosTreasure)
4
G2 Story\B_Content\B_AddonPiratesGoHome.d(94)
Error: Unknown identifier: ELSE
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))
TowerBanditsDead = TRUE;
return FALSE;
I extracted the next lines from the german scripts.
FUNC INT C_TowerBanditsDead ()
5
G1 Story\B\B_SetDayTolerance.d(12)
» G2 Story\B_Story\B_GetDayPlus.d(12)
func int B_SetDayTolerance()
if(Wld_IsTime(22,0,23,59))
return Wld_GetDay() + 1;
return Wld_GetDay();
Certainly I shall replace the previous paragraph by the next one (which is into german scripts). I presume the most important difference is the addition of the brackets into the first command, instead of the position of the second one.
if (Wld_IsTime(22,0, 23, 59))
return (Wld_GetDay() + 1);
6
G2 AI\Magic\C_CanNpcCollideWithSpell.d(210)
Error: Unexpected return.
if(spellType == SPL_LightningFlash)
if(C_NpcIsDown(self))
return COLL_DONOTHING;
if(C_BodyStateContains(self,BS_SWIM) || C_BodyStateContains(self,BS_DIVE))
COLL_APPLYDOUBLEDAMAGE;
return COLL_DOEVERYTHING;
7
G1 Story\Missions\DIA_Bau_900_Ricelord.d(87)
» G1 Story\Missions\DIA_Ebr_106_Bartholo.d(64)
» G1 Story\Missions\DIA_Grd_210_Scatty.d(255)
» G1 Story\Missions\DIA_Gur_1024_BaalNamib.d(176)
» G1 Story\Missions\DIA_PC_Fighter.d(198)
» G1 Story\Missions\DIA_SLD_701_Orik.d(16)
» G2 Story\Dialoge\DAI_DJG_713_Biff.d (436)
func int DIA_Ricelord_TRADE_Condition()
// if (Npc_KnowsInfo(hero, DIA_Ricelord_Hello))
// {
// return 1;
// };
The lines are related to some unfinished quests. Because I can’t complete those quests, maybe I should delete all them and also the previous paragraph and the next one.
8
G1 AI\Test_Scripts\startup_AI_Testlevel_Monsterparse.d(4)
» G2 AI\Magic\ZS_Magic\ZS_GreenTentacle.d(30,31,32)
» G2 Story\B_Story\B_Enter_NewWorld.d(387,388,389,592,596)
Warning: Argument WP_Scorpion should be uppercase!
func void startup_AI_Testlevel_Monsterparse()
Wld_InsertNpc(Bloodfly,"WP_Scorpion");
Wld_InsertNpc(Demon,"WP_DEMON");
Wld_InsertNpc(DemonLord,"WP_DEMON");
Wld_InsertNpc(Babe7,"WP_GUARD_1");
Wld_InsertNpc(OverlayHuman,"WP_CAVE_4");
Wld_InsertNpc(BathBabe,"OB_MOBSI");
9
G1 AI\B_Human\C_CanYouBeSpread.d(5)
» G1 AI\ZS_Human\ZS_AssessQuietSound.d(67)
» G1 AI\ZS_Monster\ZS_MM_Master.d(28)
» G1 Magic\ZS\ZS_MagicFreeze.d(31)
» G1 Magic\ZS\ZS_MagicShrink.d(12)
» G1 Magic\ZS\ZS_MagicSleep.d(19)
» G1 Magic\ZS\ZS_Pyro.d(33)
» G1 Magic\ZS\ZS_ShortZapped.d(31)
» G1 Magic\ZS\ZS_Zapped.d(33)
» G1 Story\ZS\ZS_GuidePC.d(73)
» G1 Story\ZS\pers\GateTriggers.d(10,20,30,40,48,62,72,82,87)
» G1 Story\Missions\DIA_Grd_212_Torwache.d(60,92)
» G1 Story\Missions\DIA_Grd_213_Torwache.d(60,92)
...
daro7557