2 Korianous:
There were not only my own fixes. Some script bugs were fixed by russian and german communities. And I have been a little surprised, why these bugs have appeared are not fixed in the English version.
7. Hero may bribe Thorus (give him 1000 ore) even if he has already obtained the permit to an audience with Gomez (Story\MISSIONS\DIA_GRD_200_Thorus.d):
8. Defect during playing for the Sect camp - it is impossible to receive from Baal Namib a heavy novice robe. In a script this event is for some reason anchored to the 3rd chapter, but it is possible to become a templar already in the 2nd chapter after delivery to Cor Kalom of eggs from a laying of the minecrawler queen. I suggest to change a condition of reception of this robe to 2nd chapter + the given quest from Cor Kalom. There is modified script Story\MISSIONS\DIA_GUR_1204_BaalNamib.d:
Spoiler:(zum lesen bitte Text markieren)
func void GUR_1204_BaalNamib_ARMOR_Info()
{
AI_Output(hero,self,"GUR_1204_BaalNamib_ARMOR_Info_15_01"); //I'd like to have better armor.
if ((Kapitel >= 2) && (CorKalom_BringMCQBalls == LOG_RUNNING))
{
if(Npc_HasItems(hero,ItMiNugget) < VALUE_NOV_ARMOR_H)
{
AI_Output(self,other,"GUR_1204_BaalNamib_ARMOR_Info_02_03"); //Come back as soon as you have enough ore.
}
else
{
AI_Output(self,other,"GUR_1204_BaalNamib_ARMOR_Info_02_04"); //This armor protects your body, like the Sleeper protects your spirit!
CreateInvItem(self,nov_armor_h);
B_GiveInvItems(self,hero,nov_armor_h,1);
B_GiveInvItems(hero,self,ItMiNugget,VALUE_NOV_ARMOR_H);
}
}
else
{
AI_Output(self,other,"GUR_1204_BaalNamib_ARMOR_Info_02_02"); //The time has not yet come for you to wear the heavy armor of a novice.
};
}
Geändert von Dimus (31.03.2010 um 08:15 Uhr)
Grund: Fixed English strings from the patch v0.9.2.
I've detected an incorrect bugfix in the G1 Unofficial Patch RC3. In the script Story\B\Info_SFB_5_Pre.d missing greater part of texts in the dialogues between the NH and this scraper:
Spoiler:(zum lesen bitte Text markieren)
instance Info_SFB_5_Pre(C_Info)
{
nr = 1;
condition = Info_SFB_5_Pre_Condition;
information = Info_SFB_5_Pre_Info;
permanent = 0;
important = 1;
};
func int Info_SFB_5_Pre_Condition()
{
return 1;
};
instance Info_SFB_5_EinerVonEuchWerden(C_Info)
{
nr = 4;
condition = Info_SFB_5_EinerVonEuchWerden_Condition;
information = Info_SFB_5_EinerVonEuchWerden_Info;
permanent = 1;
description = "What if I want to join you?";
};
func void Info_SFB_5_EinerVonEuchWerden_Info()
{
AI_Output(other,self,"Info_SFB_5_EinerVonEuchWerden_15_00"); //What if I want to join you?
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_01"); //
AI_Output(other,self,"Info_SFB_5_EinerVonEuchWerden_15_02"); //No, as a scraper.
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_03"); //
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_04"); //
};
instance Info_SFB_5_WichtigePersonen(C_Info)
{
nr = 3;
condition = Info_SFB_5_WichtigePersonen_Condition;
information = Info_SFB_5_WichtigePersonen_Info;
permanent = 1;
description = "Who's important here?";
};
func int Info_SFB_5_WichtigePersonen_Condition()
{
return 1;
};
instance Info_SFB_5_DasLager(C_Info)
{
nr = 2;
condition = Info_SFB_5_DasLager_Condition;
information = Info_SFB_5_DasLager_Info;
permanent = 1;
description = "What does the Camp have to offer?";
};
func int Info_SFB_5_DasLager_Condition()
{
return 1;
};
func void Info_SFB_5_DasLager_Info()
{
AI_Output(other,self,"Info_SFB_5_DasLager_15_00"); //What does the Camp have to offer?
AI_Output(self,other,"Info_SFB_5_DasLager_05_01"); //
};
instance Info_SFB_5_DieLage(C_Info)
{
nr = 1;
condition = Info_SFB_5_DieLage_Condition;
information = Info_SFB_5_DieLage_Info;
permanent = 1;
description = "What's life like here?";
};
func int Info_SFB_5_DieLage_Condition()
{
return 1;
};
func void Info_SFB_5_DieLage_Info()
{
AI_Output(other,self,"Info_SFB_5_DieLage_15_00"); //What's life like here?
AI_Output(self,other,"Info_SFB_5_DieLage_05_01"); //
AI_Output(self,other,"Info_SFB_5_DieLage_05_02"); //
AI_Output(self,other,"Info_SFB_5_DieLage_05_03"); //
};
// *************************************************************************
// Kapitel 1
// *************************************************************************
// *************************************************************************
// Vor Gespräch
// *************************************************************************
INSTANCE Info_SFB_5_Pre(C_INFO)
{
nr = 1;
condition = Info_SFB_5_Pre_Condition;
information = Info_SFB_5_Pre_Info;
permanent = 0;
important = 1;
};
FUNC INT Info_SFB_5_Pre_Condition()
{
return 1;
};
FUNC VOID Info_SFB_5_Pre_Info()
{
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_00"); //Hello!
};
// *************************************************************************
// EXIT
// *************************************************************************
INSTANCE Info_SFB_5_EXIT(C_INFO)
{
nr = 999;
condition = Info_SFB_5_EXIT_Condition;
information = Info_SFB_5_EXIT_Info;
permanent = 1;
description = "END";
};
FUNC INT Info_SFB_5_EXIT_Condition()
{
return 1;
};
FUNC VOID Info_SFB_5_EXIT_Info()
{
AI_StopProcessInfos (self);
};
// *************************************************************************
// Einer von Euch werden
// *************************************************************************
INSTANCE Info_SFB_5_EinerVonEuchWerden (C_INFO)
{
nr = 4;
condition = Info_SFB_5_EinerVonEuchWerden_Condition;
information = Info_SFB_5_EinerVonEuchWerden_Info;
permanent = 1;
description = "What if I want to join you?";
};
FUNC INT Info_SFB_5_EinerVonEuchWerden_Condition()
{
if (Npc_GetTrueGuild(other) == GIL_NONE)
{
return TRUE;
};
};
FUNC VOID Info_SFB_5_EinerVonEuchWerden_Info()
{
AI_Output(other,self,"Info_SFB_5_EinerVonEuchWerden_15_00"); //What if I want to join you?
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_01"); //Join us? As what, a water carrier?
AI_Output(other,self,"Info_SFB_5_EinerVonEuchWerden_15_02"); //No, as a scraper.
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_03"); //Look, I'll tell you something: Nobody VOLUNTEERS to become a scraper.
AI_Output(self,other,"Info_SFB_5_EinerVonEuchWerden_05_04"); //Of course, if you insist... Go and talk to Swiney, I'm sure he'll have a spare pickaxe he can let you have.
};
// *************************************************************************
// Wichtige Personen
// *************************************************************************
INSTANCE Info_SFB_5_WichtigePersonen(C_INFO)
{
nr = 3;
condition = Info_SFB_5_WichtigePersonen_Condition;
information = Info_SFB_5_WichtigePersonen_Info;
permanent = 1;
description = "Who's important here?";
};
FUNC INT Info_SFB_5_WichtigePersonen_Condition()
{
return 1;
};
FUNC VOID Info_SFB_5_WichtigePersonen_Info()
{
AI_Output(other,self,"Info_SFB_5_WichtigePersonen_15_00"); //Who's important here?
AI_Output(self,other,"Info_SFB_5_WichtigePersonen_05_01"); //Who's important? Me, of course.
AI_Output(self,other,"Info_SFB_5_WichtigePersonen_05_02"); //But I guess you mean who calls the shots.
AI_Output(self,other,"Info_SFB_5_WichtigePersonen_05_03"); //Well, I guess you should talk to the mercenaries or the rogues. You won't even get near the water mages.
AI_Output(self,other,"Info_SFB_5_WichtigePersonen_05_04"); //That big ass Swiney thinks he's more important than he really is. He just dishes out the pickaxes and does what Okyl tells him to.
};
// *************************************************************************
// Das Lager (Orts-Infos)
// *************************************************************************
INSTANCE Info_SFB_5_DasLager(C_INFO)
{
nr = 2;
condition = Info_SFB_5_DasLager_Condition;
information = Info_SFB_5_DasLager_Info;
permanent = 1;
description = "What does the Camp have to offer?";
};
FUNC INT Info_SFB_5_DasLager_Condition()
{
return 1;
};
FUNC VOID Info_SFB_5_DasLager_Info()
{
AI_Output(other,self,"Info_SFB_5_DasLager_15_00"); //What does the Camp have to offer?
AI_Output(self,other,"Info_SFB_5_DasLager_05_01"); //Whatever you make of it. For some nothing but work, for others a hell of a lot of fun.
};
// *************************************************************************
// Die Lage
// *************************************************************************
INSTANCE Info_SFB_5_DieLage(C_INFO)
{
nr = 1;
condition = Info_SFB_5_DieLage_Condition;
information = Info_SFB_5_DieLage_Info;
permanent = 1;
description = "What's life like here?";
};
FUNC INT Info_SFB_5_DieLage_Condition()
{
return 1;
};
FUNC VOID Info_SFB_5_DieLage_Info()
{
AI_Output(other,self,"Info_SFB_5_DieLage_15_00"); //What's life like here?
AI_Output(self,other,"Info_SFB_5_DieLage_05_01"); //Great!
AI_Output(self,other,"Info_SFB_5_DieLage_05_02"); //And 'cos we're so happy here, we do the best we can to get away.
AI_Output(self,other,"Info_SFB_5_DieLage_05_03"); //What do you think this place is? It's a jail and nobody likes living in a jail.
};
// *************************************************************************
// -------------------------------------------------------------------------
FUNC VOID B_AssignAmbientInfos_SFB_5(var c_NPC slf)
{
Info_SFB_5_Pre.npc = Hlp_GetInstanceID(slf);
Info_SFB_5_EXIT.npc = Hlp_GetInstanceID(slf);
Info_SFB_5_EinerVonEuchWerden.npc = Hlp_GetInstanceID(slf);
Info_SFB_5_WichtigePersonen.npc = Hlp_GetInstanceID(slf);
Info_SFB_5_DasLager.npc = Hlp_GetInstanceID(slf);
Info_SFB_5_DieLage.npc = Hlp_GetInstanceID(slf);
};
I guess the problem may be that I replaced it with a non-existent voice file, which may be why the original localization team had that written as using voice actor 2. But still, it should have had the subtitles parsed as output units, not sure why the compiler would ditch them. Strange.
Ach Fry, Ich hab dich mehr als der Monde, die Sterne...das...fail.
2 Korianous:
Hmm... Your copy of script looks absolutely normal. If you guess that problem may be linked with a non-existent voice files, then try to check for a presence of files which were extracted from the speech.vdf volume (for example: Russian speech for Gothic (c) 2002 Snowball Interactive):
IMPORTANT INFO:
It seems that I have understood the reason why after decompilation there were no scraper answers in a script Story\B\Info_SFB_5_Pre.d. It appears that you have forgotten to include the renewed file OU.BIN into structure of RC3 build.
Geändert von Dimus (07.04.2010 um 17:04 Uhr)
Grund: IMPORTANT INFO
When selling swampweed to Cipher in the new camp (Cor Kalom's stash), it doesn't allow us to sell it at full price (contrary to what we were told in the swamp camp).
I have noticed, that the ou.bin file was missing from RC2 up. When compiling our latest release, which should be available momentarily, I've added the RC1 ou.bin file, since that was the latest and I assumed no changes were made to that.
Do check it however. If problems persist, subsequent patches will be made.
So, in the last version of a patch you have returned an error linked to absence of a voice for a scraper (script Story\B\Info_SFB_5_Pre.d) in an initial state. I can't understand, why you with enviable persistence include in a latest releases of a patch older versions of the file OU.BIN with usage for this scraper voice #2 (instead of #5) which voice is absent in a volume Speech.vdf? If you think that I'm mistaken, then simply look a contents of volume Speech.vdf.
Theres a bug where Stone won't sell you the "Heavy Guards Armour" well he probaly does but he sells it so late that by the time he will the Old Camp will be in lockdown and killing everything that comes near it.
Theres a bug where Stone won't sell you the "Heavy Guards Armour" well he probaly does but he sells it so late that by the time he will the Old Camp will be in lockdown and killing everything that comes near it.
He isn't supposed to sell it.The Heavy Mercenary Armour has the same stats as the Heavy Guards Armour so it's useless to get both armours.
Theres a bug where Stone won't sell you the "Heavy Guards Armour" well he probaly does but he sells it so late that by the time he will the Old Camp will be in lockdown and killing everything that comes near it.
From the scripts and context clues in the game, it appears as though it was intended to be this way, so nope, not a bug. A change like that is more content-related, so we won't change it, for this patch at least.
Ach Fry, Ich hab dich mehr als der Monde, die Sterne...das...fail.
I'm agreed with Korianous - it isn't a bug. Ability to receive heavy guard armour from Stone isn't implemented in the script Story\Missions\DIA_GRD_219_Stone.d. But you able to receive this armour in the Golden Mod before attacking a Free mine.
I'm agreed with Korianous - it isn't a bug. Ability to receive heavy guard armour from Stone isn't implemented in the script Story\Missions\DIA_GRD_219_Stone.d. But you able to receive this armour in the Golden Mod before attacking a Free mine.
It is the posibility to miss it,as we all know the Golden Mod has a few bugs,(at least the english version)
When you face to Lares house and wish to talk to the sect camp loonie in New camp and miss him and press on cauldron, you get stuck in floor with half body.
Spoiler:(zum lesen bitte Text markieren)
Q:How to fight in Arcania?
Zitat von Petyamester
My strategy was click click click click click click click click click click click click click click win.
can you do something with the things on Lares table?I always need to save before i talk to Lares cause my caracter keeps picking the wine and it's getting annoying.
I'm already looking into the video card one . The ladder isn't a bug, but it is annoying, I agree. I could look into that, though world changes will make the patch a tad larger .
come on man, who cares about size?! i dawnloaded your 1.73 patch for G3 with like 900MB in a matter of minutes i care about fixes not size.
Most people have quite fast internet. Downloading something less than 1G goes fairly fast. Force use of torrent if file is to large for regular download. Much better to manage distribution of larger files, something all who use pc's should learn to use.