|
-
Lehrling
Gothic 2 Dndr LP in den Scripts
Guten Abend,
bin recht neu hier und möchte mich schonmal entschuldigen, falls dieses Thema im falschen Thread ist oder ähliches.
Nun zum eigentlichen "Problem":
Ich habe vor dieser LP-Steigerungs-System in den Scripts zu entfernen. Vielleicht stelle ich es mir auch zu einfach vor, aber ich wollte wissen wo ich diese Einträge in den Scripts finde. Suchte nun schon seit einer Weile und werde nicht fündig soweit. Ist der Code dafür überhaupt in der Gothic.DAT oder in einer anderen Datei?
-
Ist der Code dafür überhaupt in der Gothic.DAT oder in einer anderen Datei?
Yes, in Gothic.dat
Script file "..\Story\B_Story\B_GivePlayerXP.d" and others... There are many files where this function will have to be changed.
MfG MaGoth,
-
Lehrling
-
Example of the calculation of the XP for Balthazar's quest with the sheep.
If the quest is completed, the Nameless one gains experience:
B_GivePlayerXP(XP_Balthasar_BengarsWeide);
script: "..\Story\Dialoge\dia_bau_932_balthasar.d"
XP_Balthasar_BengarsWeide - This is a constant:
const int XP_Balthasar_BengarsWeide = 100;
...
All the constants with points for completing quests are here,
script: "..\Story\XP_Constants.d"
All the experience gained is processed by function B_GivePlayerXP.
-
Willst Du ohne Steigerung der Lernpunktekosten spielen? Da gibt es bereits einen entsprechenden Skript-Patch von Lord Sargon: Alternativer Addon-Scriptpatch mit Gildenlos- und Wassermagier-Option ; letzter Patch in dem Beitrag (G2Addon_scriptpatch_2.6wm_1.2c.zip)
-
Lehrling
-
In dem Fall verschiebe ich die den Thread am Besten ins Editing, dort bekommst Du am ehesten Hilfe beim Zusammenbauen der Gothic.Dat
Eine Alternative wäre sonst noch NdR Custom
Damit kannst Du zwar nicht die LP-Kosten ändern, aber die LP pro Stufenanstieg (z.B. von 10 auf 15) oder die Erfahrung welche Du von Monstern oder Quests bekommst prozentual erhöhen.
-
-
Lehrling
Zitat von TazmanDevil
In dem Fall verschiebe ich die den Thread am Besten ins Editing, dort bekommst Du am ehesten Hilfe beim Zusammenbauen der Gothic.Dat
Eine Alternative wäre sonst noch NdR Custom
Damit kannst Du zwar nicht die LP-Kosten ändern, aber die LP pro Stufenanstieg (z.B. von 10 auf 15) oder die Erfahrung welche Du von Monstern oder Quests bekommst prozentual erhöhen.
klingt nach einer Idee, ich werde das als einen Plan B im Hinterkopf behalten
-
Lehrling
Hier der Code der Datei /Story/B_Story/B_GetLearnCostAttribute.d des Stärke Attributes:
Code:
var int kosten;
kosten = 0;
if(attribut == ATR_STRENGTH)
{
if(oth.aivar[REAL_STRENGTH] >= 120)
{
kosten = 5;
}
else if(oth.aivar[REAL_STRENGTH] >= 90)
{
kosten = 4;
}
else if(oth.aivar[REAL_STRENGTH] >= 60)
{
kosten = 3;
}
else if(oth.aivar[REAL_STRENGTH] >= 30)
{
kosten = 2;
}
else
{
kosten = 1;
};
};
Hier passe ich die Werte an oder entferne diese:
Code:
if(attribut == ATR_STRENGTH)
{
if(oth.aivar[REAL_STRENGTH] >= 110)
{
kosten = 3;
}
else if(oth.aivar[REAL_STRENGTH] >= 60)
{
kosten = 2;
}
else
{
kosten = 1;
};
};
Eben... Wie man sieht werden lediglich ein paar IFs entfernt bzw Werte verändert. Werte, die nicht als Variable oder ähnliches gespeichtert sind. Hoffe ihr habt da ne Idee.
Die erste Errormeldung: "Story\B_Content\B_Addon_PiratesGoHome.de(94): Error: Unknown identifier ELSE
Hier die ganze Funktion des Errors:
Code:
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;
};
};
Geändert von zero218xgt (13.12.2018 um 23:42 Uhr)
-
Welche Skripte verwendest du denn als Grundlage?
Die deutschen die im Modkit dabei waren? die englischen von hier:
https://forum.worldofplayers.de/foru...inal-Revision)
oder ganz was anderes?
Die C_TowerBanditsDead() die du hast ist minimal fehlerhaft. Das könntest du zwar von Hand beheben, aber vielleicht gibt es irgendwo anders noch andere Fehler.
-
Die Zeile
Code:
TowerBanditsDead = TRUE;
ist nicht an der richtigen Stelle, und du schließt die if-Abfrage mit einem Semikolon ab, so dass danach kein else mehr kommen kann.
So könnte es richtig sein:
Code:
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))
{
TowerBanditsDead = TRUE;
return TRUE;
}
else
{
return FALSE;
};
};
-
Lehrling
Zitat von Cryp18Struct
Welche Skripte verwendest du denn als Grundlage?
Ich Decompiliere die GOTHIC.DAT Datei der Steam version und nutze dann die decompiled Skripts
-
Lehrling
Zitat von Milky-Way
Die Zeile
Code:
TowerBanditsDead = TRUE;
ist nicht an der richtigen Stelle, und du schließt die if-Abfrage mit einem Semikolon ab, so dass danach kein else mehr kommen kann.
So könnte es richtig sein:
Code:
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))
{
TowerBanditsDead = TRUE;
return TRUE;
}
else
{
return FALSE;
};
};
Ich hab da nen anderen Weg drum rum gefunden. Ich ersetzt einfach die fehlerhaften .d files mit nicht fehlerhaften englischen Skripts aus dem Internet. Funktioniert zwar, aber der Sourcer stoppt dann einfach. Also die letzt Meldung im Sourcer ist "Process stopped"... Es wurden mehere Faults vom Programm ignoriert, in denen eine int funktion keinen return hat. Könnte es deswegen das compilen stoppen?
-
Mit dekompilierten Skripten zu arbeiten ist eher fehleranfällig.
Nimm besser die deutschen Skripte vom modkit oder die englischen hier:
https://forum.worldofplayers.de/foru...inal-Revision)
als Grundlage.
Zum kompilieren kannst du auch einfach die GothicStarter_mod.exe benutzen, der GothicSourcer ist da unnötig.
-
Lehrling
Zitat von Cryp18Struct
Mit dekompilierten Skripten zu arbeiten ist eher fehleranfällig.
Nimm besser die deutschen Skripte vom modkit oder die englischen hier:
https://forum.worldofplayers.de/foru...inal-Revision)
als Grundlage.
Zum kompilieren kannst du auch einfach die GothicStarter_mod.exe benutzen, der GothicSourcer ist da unnötig.
Mh ok, ich werd das dann mal versuchen. Kannst du mir erklären wie ich das GENAU mit dem Starter mache? Die Anweisungen "Häkchen bei Skripte Parsen" habe ich zwar bei den anderen verstanden, aber wars das? Woher weiß der Starter welche Files er nun Parsen soll?
Außerdem habe ich andere Patches wie Beispiesweise das Systempack und den Gothic2fix installiert. Würde das nicht somit die ganzen Mods überschreiben? Muss ich die danach einfach neu installieren?
-
Zitat von zero218xgt
Mh ok, ich werd das dann mal versuchen. Kannst du mir erklären wie ich das GENAU mit dem Starter mache? Die Anweisungen "Häkchen bei Skripte Parsen" habe ich zwar bei den anderen verstanden, aber wars das? Woher weiß der Starter welche Files er nun Parsen soll?
Außerdem habe ich andere Patches wie Beispiesweise das Systempack und den Gothic2fix installiert. Würde das nicht somit die ganzen Mods überschreiben? Muss ich die danach einfach neu installieren?
Der GothicStarter verwendet (in 99% der Fälle) die Gothic.src aus GothicII\_work\data\Scripts\Content\Gothic.src um zu wissen, welche Scripte alle geparst werden müssen. Wenn du einen Haken setzt und dann das Spiel startest, sind die Scripte geparst worden, sobald du im Hauptmenü bist. Es gibt noch ein paar andere *.src-Dateien, die verwendet werden (z.B. für Menüs, visuelle Effekte, Musik, ...), die kann man allerdings meistens ignorieren, weil man ja sowieso nur Änderungen an den Spielmechaniken vorgenommen hat.
Ich würde niemals an meiner Modding-Installation auch Mods spielen, insofern sollte die Frage eigentlich egal sein. Dennoch:
Patches und Mods sind in Gothic sehr unterschiedliche Dinge, und die von dir genannten Beispiele sind sowieso nochmal was ganz anderes (weil die die Gothic2.exe austauschen/modifizieren, anstatt eine .mod oder .vdf Datei bereitzustellen), sie würden also vom Modkit nicht überschrieben werden.
-
Der Starter weiß gar nix. Der Starter startet nur Gothic2.exe mit dem "-zreparse" kommandozeilen parameter. Gothic2.exe generiert dann aus allen .src dateien die im scripts ordner rumliegen die .dat dateien neu (in _work\data\scripts). Die .src dateien sagen, welche .d Dateien kompiliert werden sollen. Sind alles textdateien.
Du brauchst den starter gar nicht zum neukompilieren, du kannst auch einfach eine gothic2 verknüpfung machen und da -zreparse ranhängen. Der machts nur einfacher
Die mods sollten alle ihre eigenen ".mod" dateien haben, insofern sollte sich da nichts beißen. Du überschreibst damit nur die originalen .dat dateien des Spiels. Systempack ist auch nicht weiter problematisch, das tauscht nur die shw32.dll und vdfs32g.dll aus (und patched diverse sachen in der exe über eine .patch datei in der systempack.vdf).
Wie andere schon sagten, die gothicsourcer dekompilierten skripte sind ziemlich bescheuert neu zu kompilieren (das hab ich bisher auch nicht hinbekommen), nimm lieber die originalen deutschen Gothic 2 Addon skripte aus dem ModKit, oder die verlinkten gefixten englischen. Da sind auch die .src Dateien etc korrekt.
-
Lehrling
Erstmal ein RIESEN Dankeschön an alle die mir hier geholfen haben. Ich habe es nun geschafft, dass die LP Kosten so gesteigert werden wie ich es will und die Sprache des Spiels bleibt englisch.
Aber die Untertitel sind auf Deutsch. Muss ich das in den OUs machen? In einigen anderen Forumeinträgen haben Leute etwas mit den OUs gemacht.
Ich habe eben einfach den Cutscene Ordner mit den Skripts in den Gothic 2 Ordner kopiert. Verändert der MDK was? Habe dort aber bewusst den Haken bei "Skripte" bei der Installation weg gelassen.
-
Die Untertitel liegen in der Datei GothicII\_work\data\Scripts\_compiled\OU.BIN. Die wurde wohl bei Installation des Modkits ebenfalls installiert. Wie hast du deine Änderungen ins Spiel gebracht? Einfach mit dem GothicStarter_mod.exe und einem Haken bei Scripte parsen? Dann könnte es vielleicht schon reichen, wenn du die Datei löscht und Gothic dann die richtigen Untertitel aus der GothicII\data\modvdf\GothicGame.mod lädt.
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- Anhänge hochladen: Nein
- Beiträge bearbeiten: Nein
|
|