[Modding] Wie erstelle ich tp2-Dateien und sonstige Fragen zu diesem Thema?

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Ich hab das Topic mal allgemeiner formuliert, die Frage ist aber kurz und speziell:

Kann man in der tp2 für Skriptergänzungen inzwischen wie folgt schreiben?:
EXTEND_BOTTOM ~BG4800.BCS~ ~morenco/areaskripte/bg4800.baf~

Also so, dass automatisch die baf-Datei kompiliert wird und dann an das bestehende Skript angefügt wird?

Ich meine, dass bei aktuellen tp2-Dateien so gesehen zu haben... falls ich das richtig verstanden habe... Früher war ja alles anders ;)

und könnte ich analog auch Skripte kompilieren und kopieren in einem Schritt?:
COPY ~xx.baf~ ~override/xx.bcs~

Oder geht einfach COMPILE ~xx.baf~ und es wird automatisch in den override kopiert? So hab ich gerade die Erklärung von weidu verstanden...
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Kann man in der tp2 für Skriptergänzungen inzwischen wie folgt schreiben?:
EXTEND_BOTTOM ~BG4800.BCS~ ~morenco/areaskripte/bg4800.baf~

Also so, dass automatisch die baf-Datei kompiliert wird und dann an das bestehende Skript angefügt wird?
Ja, das kompiliert die baf und hängt sie automatisch an die angegebene bcs. Darüber hinaus wird die angegebene bcs erstellt, falls sie vorher im Spiel noch nicht vorhanden war. In diesem Fall ist es egal, wie die baf heißt, weil nur der Inhalt reingepatcht wird.

Die zweite Frage verstehe ich nicht. Du meinst, aus einer xx.baf in einem Schritt eine yy.bcs machen (Namensänderung)? Das ist so soweit ich weiß nicht möglich.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Ok, war schlecht formuliert. Eigentlich will ich nur ein Skript kompilieren. Früher ging das mit Compile und dann ein Copy, um das Skript in den Override-Ordner zu kopieren. Ich glaube jetzt muss man nicht mehr kopieren, sondern kompilieren schickt es direkt in den Override Ordner. Also so was:

COMPILE ~morenco/M$MEH1S.baf~
USING ~morenco/tra/%s/M$MEHxS.tra~

Wobei ich mir mit dem %s nicht sicher bin. Das könnte sich auch geändert haben...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Ja, das Kompilieren + Platzieren der kompilierten Version in den Override ist nur noch eine Zeile:
COMPILE EVALUATE_BUFFER ~C#Brandock/scripts/c#brandd.baf~

Beim Spezifizieren der zu verwendenden tra verwende ich diese Syntax:
USING ~C#Brandock/tra/%LANGUAGE%/brando_banter.tra~

Ich verstehe den Unterschied bzw. was es ganeu bedeutet zwischen %s und %LANGUAGE% nicht aber es funktioniert nicht immer beides.
 

Taimon

Senior Member
Registriert
25.11.2001
Beiträge
1.192
Es dürfte eigentlich keinen Unterschied machen, ob man in diesem Fall "%LANGUAGE%" oder "%s" verwendet.
Ersteres ist eine globale Variable, die laut Code nach der Auswahl der Sprache auf den entsprechenden Verzeichnisnamen gesetzt wird. Und während der Abarbeitung des COMPILE-Befehls werden auch die Variablen in dem USING-Statement expandiert.
Der String "%s" wird in dem Befehl explizit durch den Verzeichnisnamen der ausgewählten Sprache ersetzt.

Kann natürlich sein, dass verschiedene WeiDU-Versionen sich unterschiedlich verhalten haben.
Und ich bin mir auch nicht ganz sicher was passiert, wenn man kein LANGUAGE-Statement verwendet hat.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Ich hatte den Unterschied zwischen "%LANGUAGE%" und "%s" nie richtig gewusst und bin mehr nach Vorlage und "klappt / klappt nicht" vorgegangen.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Ich will Davaeorns Schlüssel korrigieren (von Misc zu Key). Kann ich davon ausgehen, dass die StringRef immer dieselbe ist, weil original BG1 und alle Konversions etc. das so belassen, weil die Sachen von BG2 etc immer hinten dran gehängt werden? Oder muss ich die Texte "Name", "Desc" jetzt da auch mit in die tp2 bzw. tra mit reinnehmen?
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
StringRef sind von Spiel zu Spiel unterschiedlich.
Wenn Du aber über tp2 nur die Itemart ändern möchtest und den Rest unangetastet lässt, musst Du Dich im jeweiligen Spiel um den String nicht kümmern, der bliebe dann gleich.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Naja, ich habe ein neues Item erstellt, indem ich das alte genommen und nur die Itemart geändert habe. Das müsste dann passen? und könnte so in den override kopiert werden?
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Zu den BG1 Stringrefs: @Maus wenn Du Dir überlegst, wie BGT und EET erstellt werden - nämlich im BGII-Spiel, dann wird klar, dass es genau andersrum ist: die BG1-Ressourven werden an die BGII-Inhalte angehängt.
Modden für BGII ist daher für alle Spiele relativ easy - einzige Extrawürste sind das kontinuierliche Kapitelsystem und die Kontinuität beachtende Patchen des Fate Spirit in EET.
Kompliziert wird's für BG1 wenn man alle Spiele berücksichtigen möchte.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Hm, ich dachte halt, dass es anders herum ist, weil die StringRef für den Schlüssel bei 19xxx liegt. Und ich dachte, dass die BG2 tlk eigentlich länger wie 19k sein sollte... ich meine, die wäre über 32k gewesen...

SAY NAME1 #9642
SAY NAME2 @116
SAY UNIDENTIFIED_DESC #10046
SAY DESC @117

Die 4 Sachen benötigte ich, oder? das müssten eigentlich alle sein...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Naja, ich habe ein neues Item erstellt, indem ich das alte genommen und nur die Itemart geändert habe. Das müsste dann passen? und könnte so in den override kopiert werden?
Das ginge schon, ist aber die uneleganteste Variante: Unterschiede in den Items zwischen Original und EE gehen eventuell verloren, die Strings müssen wie gesagt angepasst werden (in BGT über Vorgabe des Texts in allen Sprachen, weil man hier keine fixe Nummer weiß), und Änderungen anderer vorher installierten Mods gehen verloren.
Ich würde für eine solche Änderung tp2-Patchen wärmstens empfehlen. Oder anders gesagt: ich würde eine Tweakmod, die Items austauscht, nicht mehr gerne installieren.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
ich dachte halt, dass es anders herum ist,
wie ich oben schrieb ist die Antwort klar, wenn man weiß, dass BG1 als "Modinhalt" in BGII eingefügt wird.
Vielleicht ist in diesem Fall der String auch in BGII enthalten.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Ok, und wie patche ich das Item in der tp2? Das habe ich bisher weder gemacht noch gesehen...

ein Hinweis, welche Mod das macht, würde ja reichen, dann kann ich das nachschauen ;)
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Tweaks Anthology dürfte Patchen ohne Ende, allerdings wohl eher so allgemein dass man das für ein Item schlecht als Beispiel nehmen kann.

Grob gesprochen geht das über
COPY_EXISTING ~item.itm~ ~override~
// Patchanweisung hier
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
@Maus mal ein wildes Besipiel aus der Tweaks Anthology.
Code:
COPY_EXISTING "clck26.itm" override
         LPF ADD_ITEM_EQEFFECT INT_VAR opcode=291 timing=2 target=1 parameter2=1 insert_point=0 END
    BUT_ONLY
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Danke für den Hinweis. Da muss ich mal schauen, welche Codes etc. man da wie patched... aber stimmt, ich erinnere mich an arestorations. Der patched glaube ich für BG2 die Bücher. Da müsste man was finden...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
@Maus aus dem BGII Fixpack. Ich glabe, das ist das, was Du brauchst:
Code:
  COPY_EXISTING ~%item%.itm~ ~override~
    WRITE_SHORT 0x1c 8
    BUT_ONLY
Die "8" habe ich eingetragen, das müssten die Schlüssel sein.
Du musst Dir in NI die Hex Offsets anzeigen lassen, bin mir nicht sicher, ob das mittlerweile Standard ist oder man das erstmal einstellen muss. Die "0x1c" ist das Feld für Category.
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
7.256
Hm, kannst du noch erklären, was das BUT_ONLY macht? Ist jetzt kein Problem, das zu verwenden. Aber verstehen ist ja meist wichtig für zukünftige Probleme...

und ansonsten: ich sehe "1c" als den Hexwert (und da steht der ASCII-Wert auch in der RAW drin). das "0x" ist der Hinweis auf die Hex-Zahl?
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
8.947
Das ist eine Abkürzung für BUT_ONLY_IF_IT_CHANGES
Bei einem Item macht es nicht viel Unterschied. Das ist wohl vor allem wichtig wenn Du ein Massen-patching machst und dann Zeit optimieren möchtest. EDIT: Gehört aber zur korrekten Syntax. ;)
 
Oben