[Modding] Saublöde Fragen zum EE/EET Modden

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
Seit zwei Tagen versuche ich diese Frage zu vermeiden, aber es klappt nicht, leider.

Ich möchte eine private Modifikation von mir für BG:EE/EET kompatibel machen.
Was muss ich dabei beachten?
Es gibt zum Beispiel in den Vorlagen, die ich habe im Ordner Lib so Dateien mit den Namen "g3_bg_cpmvars, g3_bgee_cpmvars, g3_bgt_cpmvars, g3_tutu_cpmvars". Brauche ich die?

Die zweite wichtige Frage nach Dateien: Wenn man zum Beispiel jetzt Ascalons Quests nimmt, da sind da Dateien, die ich überhaupt nicht zuordnen kann, weil es sie vorher nicht gab. Die Dateien: "setup-ac_quest, setup-ac_quest.command (COMMAND-Datei)" kenne ich nicht und kann sie auch nicht einlesen. Wozu sind die gut, brauche ich die auch für meine eigenen Modifikationen für die BG:EE Version oder sind die eher ein Nebenprodukt, was man auch weg lassen kann?

Ist es wichtig wo im Mod-Ordner die iconv.exe platziert wird? Bei Ascalon ist sie im Ordner "tools", ich dachte immer sie müsste unbedingt in den Ordner mit den Übersetzungen rein.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
Mods kompatibel mit EET (und BG:EE) zu machen ist komplizierter, weil die EET (wie BGT) die BG1-Ressourcen in das BGII-Spiel einfügt und daher verdoppelte Dateinamen ausgleichen muss.
Immerhin benennt die EET die BG1-Areas "nur" um in BGxxxx anstelle von ARxxxx. BGT war da noch schlimmer, das hat die Areanamen komplett umbenannt. Dann kam noch Tutu, was glaube ich FWxxxx für die Areas verwendet hat und ARxxxx_.bcs für die Areascripts. (Tutu ist mittlerweile veraltet, ich unterstütze es nicht mehr).

Für die Maintenance mit gerechtfertigtem Aufwand - und der eigenen Nervenstärke - sollten keine Ressourcen einer Mod verdoppelt werden. Dies bedeutet, dass man irgendwie alle diese unterschiedlich heißenden Dateien mit einer Ausführung an Moddateien abdecken möchte.

Hierfür verwendet man das sogenannte Crossplatform Coding. cmorgan hatte dazu ein Tutorial geschrieben, damals noch für BGT und Tutu, aber es gilt dasselbe für BGT, BG:EE und EET: Crossing the Great Divide.

Hierzu werden Namen als Variablen abgespeichert und für die unterschiedlichen Spiele unterschiedlich mit Inhalt befüllt. Das ist das, was über die cpmvars.tpa Dateien geschieht.
In der g3_bgee_cpmvars.tpa, die alle meine BG1-Mods unter lib enthalten, steht als willkürliches Beispiel:
OUTER_SPRINT "AJANTIS_BANTER" "BAJANT"
Das ist Ajantis' Banter File, wo die Banter mit anderen NPCs drin sind, die randommäßig von der Engine getriggert werden. Anstatt also explizit "BAJANT.dlg" zu verwenden, verwendet man jetzt %AJANTIS_BANTER%. Wegen der %% weiß weidu, dass dies eine Variable ist, die es ersetzen muss. Hierfür muss die d-Datei mit COMPILE EVALUATE_BUFFER kompiliert werden - das EVALUATE_BUFFER muss überall dazu, wo Variablen enthalten sind, also auch z.B. in Skripten.

In der d-file sieht das dann z.B. so aus:
Code:
CHAIN
IF WEIGHT #-1 ~%BGT_VAR% Global("C#AjantisBG1_RasaadBanter","GLOBAL",0)
InParty(Myself)
InParty("rasaad")
See("rasaad")
!StateCheck("rasaad",CD_STATE_NOTVALID)
!StateCheck(Myself,CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY])~ THEN ~%AJANTIS_BANTER%~ rasaad_banter_1
@40 DO ~SetGlobal("C#AjantisBG1_RasaadBanter","GLOBAL",1)~
== ~%RASAAD_BANTER%~ @41
== ~%AJANTIS_BANTER%~ @42
== ~%RASAAD_BANTER%~ @43
= @44
== ~%AJANTIS_BANTER%~ @45
EXIT
Hier sieht man gleich die nächste Variable: %BGT_VAR%. Diese übersetzt sich unterschiedlich, je nachdem, welches Spiel eingelesen wird. Diese Variable ist so definiert worden, das sie sicherstellt, dass dieser Banter nur im BG1-Spiel (z.B. von EET) triggern kann. In der g3_bgee_cpmvars.tpa übersetzt sie zu:
OUTER_SPRINT ~BGT_VAR~ ~~
Also - nichts. Weil BG:EE nur BG1 ist, muss hier keine Einschränkung getroffen werden - der Banter darf immer triggern.

In der g3_bgt_cpmvars.tpa übersetzt sich BGT_VAR zu:
OUTER_SPRINT ~BGT_VAR~ ~!Global("endofbg1","GLOBAL",2)~
Ein ! vor einem Ausdruck bedeutet "NICHT". In BGT wird die Variable Global("endofbg1","GLOBAL",2) nach dem Übergang zu BGII auf "2" gesetzt. Der Banter zwischen Ajantis und Rasaad würde also triggern, solange sie noch nicht auf 2 ist - solange man also noch im BG1-Spiel ist.

Wichtig sind auch Area-Referenzen. So würde man, wenn man die Area des Banditenlagers verändern möchte, folgenes verwenden:
Code:
//****************************************************
// Patch the Bandit Camp to take a magic portal
//****************************************************
COPY_EXISTING ~%BanditCamp%.are~ ~override~
(...)
Weidu sucht sich dann je nach Spiel raus, welcher Areacode das ist.

Das Einlesen der cpmvars.tpa-Dateien erfolgt in der tp2 im ALWAYS-Block:
Code:
 ACTION_IF GAME_IS ~bgt~ THEN BEGIN
  PRINT ~Baldur's Gate Trilogy detected~
  INCLUDE ~bst/lib/g3_bgt_cpmvars.tpa~
 END

 ACTION_IF GAME_IS ~bgee~ THEN BEGIN
  /* Tell the player it is using bgee */
  PRINT ~BG:EE detected...~
  INCLUDE ~bst/lib/g3_bgee_cpmvars.tpa~
 END

 ACTION_IF GAME_IS ~eet~ THEN BEGIN
  /* Tell the player it is using eet */
  PRINT ~EET detected.~
  INCLUDE ~EET/other/cpmvars/eet_cpmvars.tpa~
 END
Die eet_cpmvars.tpa ist im EET-Ordner enthalten (und wird von dort eingelesen) und sollte nicht in der eigenen Mod sein. So stellt man sicher, dass immer die aktuellesten Definitionen eingelesen werden.

Soviel erstmal als Crashkurs.
Zusätziche Kompatibitätssachen hatte ich mal hier aufgelistet: https://www.baldurs-gate.de/index.p...e-enhanced-editionen-kompatibel-machen.43896/
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
Die Dateien: "setup-ac_quest, setup-ac_quest.command (COMMAND-Datei)" kenne ich nicht und kann sie auch nicht einlesen. Wozu sind die gut, brauche ich die auch für meine eigenen Modifikationen für die BG:EE Version oder sind die eher ein Nebenprodukt, was man auch weg lassen kann?
Das sind Installationsdateien, die für MacOS wichtig sind. Die Datei ohne Endung ist die Mac-weidu, das .command ist eine textdatei, die einen Pfad angibt.
 

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
Gut, soweit alles verstanden. Da war noch was... und zwar gab es Gegenstände, die durch BGT neue Itemcodes bekamen. Das ist jetzt bei EET nicht mehr so (zum Beispiel gibt es den Magierring für zusätzliche Zaubersprüche, der in BG1 und in BG2 auftauchte unter dem Code Ring08. Der hatte aber bei den Spielen je einen unterschiedlichen Namen und auch der Effekt unterschied sich marginal. Das scheint nicht mehr so zu sein. EDIT: Stimmt nicht ganz, der eine Ring heißt jetzt Ring08_) Ähm, apropos nicht mehr so sein... man muss doch nach der Installation von EET die Mods für BG:EE immer noch im BG:EE Verzeichnis installieren, oder? (passt jetzt nicht wirklich hier rein, fiel mir grad ein, weil ich es ein paar mal versucht hatte raus zu finden und kam immer nur auf ganz andere Themen.) Je weiter ich komme desto mehr Fragen stapeln sich. Es ist ein Fass ohne Boden.

Genau, DAS brannte mir noch richtig unter den Nägeln: Warum gibt es jetzt für die EET noch mal zusätzliche Gegenstandsbeschreibungen, ich meine so was wie hier:

SAY NAME2 @3
PATCH_IF !GAME_IS "eet bgee" BEGIN
SAY DESC @4
END ELSE BEGIN
SAY DESC @134
END

Wenn man dann im Dialog selber nachsieht, dann ist die erste Beschreibung inhaltlich nämlich EXAKT die gleiche. Das macht doch keinen Sinn, oder?
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
Die EET hat auch verdoppelte Datei(namen) entsprechend angepasst, wie Du schon gesehen hattest mit einem "_" am Ende. - Dafür gibt es übrigens auch eine OUTER_SPRINT Variable: eet_var.
k4thos hat Hinweise für Modder für die EET geschrieben, eigentlich soagr sehr ausführlich. Leider ist bei mir die Formatierung der Seite hinüber, ich sehe nur noch html(?)Code: Modder Notes und auch eine Referenztabelle für die Unterschiede der Dateinamen (Leider auch Format hinüber).

man muss doch nach der Installation von EET die Mods für BG:EE immer noch im BG:EE Verzeichnis installieren, oder?
Nein, wenn die Mod direkte EET-Kompatibilität hat, dann kann man sie nach der EET-Konvertierung/Installation direkt auf die EET, also den "BGII"-Spieleordner installieren (in der Regel vor der EET_End).

Wenn man dann im Dialog selber nachsieht, dann ist die erste Beschreibung inhaltlich nämlich EXAKT die gleiche. Das macht doch keinen Sinn, oder?
In dem Fall könnte man sich eine Untrscheidung schenken, ja. Eventuell gibt es andere Sprachversionen, bei denen sich die Einträge unterscheiden.

Aber: so mach das besser nicht. Es ist einfacher, nur eine tra-Nummer für die Beschreibung zu haben - und für die EE einfach eine setup-ee.tra einzulesen, in denen die EE-spezifischen Beschreibungen stehen.
 

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
VORSICHT: Sie versucht wieder schlau zu sein *HUST*...
Wenn ich mit der OUTER_SPRINT Variable: eet_var arbeite, sieht es dann also für den Ring so aus
EXTEND_TOP %eet_var%
("%eet_var%Ring08")
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
Die Variablen werden so verwendet, dass sie, wenn sie eingesetzt werden, dann den entsprechenden Namen ergeben. Ring08_ sieht in der Schreibweise so aus:

Code:
ring08%eet_var%

So verwendest Du das, als würdest Du den Dateinamen verwenden.
 

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
So verwendest Du das, als würdest Du den Dateinamen verwenden.
Also, in der TP muss stehen:

Code:
ALWAYS
  ACTION_IF GAME_IS bgt BEGIN
    PRINT @90011
    INCLUDE ~%MOD_FOLDER%/lib/g3_bgt_cpmvars.tpa~
  END ELSE
  ACTION_IF GAME_IS totsc BEGIN
    PRINT @90012
    INCLUDE ~%MOD_FOLDER%/lib/g3_bg_cpmvars.tpa~
  END ELSE
  ACTION_IF GAME_IS bgee BEGIN
    PRINT @90014
    INCLUDE ~%MOD_FOLDER%/lib/g3_bgee_cpmvars.tpa~
  END ELSE
  ACTION_IF GAME_IS eet BEGIN
    PRINT @90015
    INCLUDE ~%MOD_FOLDER%/lib/eet_cpmvars.tpa~
  END

Im Verzeichnis lib sind dann die entsprechenden Dateien (g3_bgt_cpmvars.tpa, g3_bg_cpmvars.tpa, g3_bgee_cpmvars, eet_cpmvars.tpa)

Im Dialog muss es dann so stehen:

Code:
IF ~~ THEN BEGIN THRing
    SAY @315
    IF ~~ THEN REPLY @19 GOTO s#tal03
    IF ~PartyHasItem("ring07") PartyHasItem("Ring08%eet_var%") PartyHasItem("potn29")
        PartyGoldGT(3999)~
      THEN REPLY @3151
      DO ~TakePartyGold(4000)      DestroyGold(4000)
          TakePartyItemNum("ring07",1)   DestroyItem("ring07")
          TakePartyItemNum("ring08%eet_var%",1)   DestroyItem("ring08%eet_var%")
          TakePartyItemNum("potn29",1)   DestroyItem("potn29")
          GiveItemCreate("THRing01",Player1,1,1,1)
          CreateVisualEffect("spcrtwpn",[330.230])~ EXIT

Es gibt allerdings auch die BGT-Variante BGRing08 UND wie muss das im Dialog eingebunden werden?

Es gibt im Thalantyr Upgrade die Zeile (aber nur für Tutu, was ich NICHT einbinden möchte)

Code:
EXTEND_TOP %tutu_var%THALAN 2 #1
  IF ~~ THEN REPLY @8 GOTO s#tal02
END

%fwdslash_sign%%star_sign%
EXTEND_TOP %tutu_var%THALAN 35 #1
  IF ~~ THEN REPLY @12 GOTO s#tal03
END
%star_sign%%fwdslash_sign%

APPEND %tutu_var%THALAN
IF ~~ THEN BEGIN s#tal02
  SAY @14
  IF ~~ THEN REPLY @12 GOTO s#tal03
  IF ~~ THEN REPLY @15 GOTO s#tal04
END

Muss ich etwas in der Art auch einfügen, um bei diesem Beispiel zu bleiben stünde dann hier:

Code:
EXTEND_TOP %eet_var%THALAN 2 #1
  IF ~~ THEN REPLY @8 GOTO s#tal02
END

%fwdslash_sign%%star_sign%
EXTEND_TOP %eet_var%THALAN 35 #1
  IF ~~ THEN REPLY @12 GOTO s#tal03
END
%star_sign%%fwdslash_sign%

APPEND %eet_var%THALAN
IF ~~ THEN BEGIN s#tal02
  SAY @14
  IF ~~ THEN REPLY @12 GOTO s#tal03
  IF ~~ THEN REPLY @15 GOTO s#tal04
END

Und wie geht das, wenn man DREI Varianten zugrunde legt, also %eet_var% und %bgt_var%? Oder denke ich wieder zu schräg?
Falls alle Dämme und Geduldsfäden reißen lasse ich die Umstände sein, das ist eh eine ganz private Mod, die ich niemals veröffentlichen werde. Das geht gar nicht, weil ich damals das Thalantyr Upgrade genommen hatte und alle Gegenstände entweder neu gemacht oder komplett raus geworfen hatte, bzw zwei oder drei nur übernommen. Ist also nichts für die Öffentlichkeit.
 
Zuletzt bearbeitet:

Rumpelstilz

Senior Member
Registriert
29.03.2007
Beiträge
1.264

@Dachrisma


Ich bin hier momentan (meistens) nur stiller Mitleser. Ich fände es schade wenn Du die Mod "nur" für Dich erstellen würdest, da ich ein großer Fan von Item-Upgrade Mods bin.

Ich spendiere Dir hiermit noch ein paar Geduldsfäden.

@Alle

Ihr macht einen TOLLEN Job.

Danke
 

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
Ich fände es schade wenn Du die Mod "nur" für Dich erstellen würdest, da ich ein großer Fan von Item-Upgrade Mods bin.
Das Problem in diesem Fall ist, daß sowohl die Idee als auch einige Gegenstände geklaut sind. Es gebietet schon der Anstand, daß man sich nicht einfach die Modifikationen anderer zueigen macht, nach seinem eigenen Gusto anpasst und dann neu raus bringt. Das ist das Problem in diesem Fall. Ich hatte einige Gegenstäde oder Rezepte verändert, eine ganze Menge hinzu gefügt, Dialogzeilen, die mir rein ästhetisch nicht gefallen haben etwas verändert, aber im Grunde handelt es sich trotzdem um die Modifikation Thalantyr Item-Upgrade. Und die ist definitiv nicht von mir. Darum geht es. Ansonsten müsste ich es noch mal ganz neu machen. So ist das leider.

EDIT: Möglicherweise mache ist das sogar, weil ich lieber auf einen Laden zurück greifen würde, der noch nicht mit Quests oder sonstigen Skripten belastet ist. Das war einer der großen Gründe weshalb ich den Dschinn bei der öffentlichen Upgrade Mod genutzt hatte. So kommt man keiner anderen Mod in die Quere und stört auch keine im Spiel vorhandenen Quests.
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
INCLUDE ~%MOD_FOLDER%/lib/eet_cpmvars.tpa~
Wie gesagt, lass die für eet direkt aus dem EET-Ordner einlesen, siehe den Pfad in meinem Beispiel oben. Nicht eigene einbinden, die sind dann im Zweifelsfall veraltet. Ansonsten ja.
Es gibt allerdings auch die BGT-Variante BGRing08 UND wie muss das im Dialog eingebunden werden?
Dafür muss die Variable für "bg" vor Ring08 gesetzt werden. Also:
Code:
%tutu_scriptbg%ring08%eet_var%
Ansonsten ist die Verwendung schonmal richtig.
Hinweis: lass Dich nicht von dem "tutu" in manchen Definitionen verwirren. Das Prinzip wurde für Tutu entwickelt, jetzt heißen die Variablen halt so.
Muss ich etwas in der Art auch einfügen, um bei diesem Beispiel zu bleiben stünde dann hier:
Die %eet_var% musst Du nur benutzen, wenn die EET-Ressource ein "_" an eine Datei anhängt (bevor EET_End ausgeführt wird, übrigens). Das macht sie bei Thalantyrs Dialog nicht. Für BGT, BG:EE und EET ist der überall thalan.dlg. Also nein. Das %tutu_var% kannst Du aber in der Tat, da Du Tutu nicht berücksichtigst, weglassen.

Code:
%fwdslash_sign%%star_sign%
EXTEND_TOP %tutu_var%THALAN 35 #1
  IF ~~ THEN REPLY @12 GOTO s#tal03
END
%star_sign%%fwdslash_sign%
Oh, das ist ja spannend. Das ist Code, der nur für BGT ausgeführt wird, bei den anderen Spielen ergeben die %fwdslash_sign%%star_sign% dann /* (und */) was diesen Code auskommentiert. Ich Ömel habe da bisher immer extra-Dateien eingebunden. Was hier geschieht ist folgendes: in BGT hat Thalantyr einen neuen "immer wahren" Begrüßungsdialog, wenn man ihn vorher schonmal angesprochen hatte, Der ist immer State Nr. 35. Deshalb musst Du, wenn Du Thalantyr Antwortoptionen gibst, für BGT auch den State 35 patchen.
Würde ich an Deiner Stelle genau so übernehmen um den State 35 zu patchen - aber stelle sicher, dass die fwdslash_sign und die star_sign in allen cpmvars.tpa drin definiert sind. Ich hatte die bisher noch nie beachtet, hüstel.

Einen Hinweis: füge keine Antwortoptionen über EXTEND_TOP hinzu. Das verschiebt die Nummerierung der vorhandenen Antwortoptionen und sabotiert Mods, die gezielt einzelne Antwortoptionen verändern möchten. Nutze immer EXTEND_BOTTOM, außer Du kennst wirklich alle Mods genau, die Du installierst.

Und wie geht das, wenn man DREI Varianten zugrunde legt, also %eet_var% und %bgt_var%? Oder denke ich wieder zu schräg?
Dann hängst Du sie aneinander oder setzt sie da hin, wo sie nötig sind, so dass beim Einsetzen der Variablen genau das rauskommt, was das jeweilige Spiel braucht.
Es sind ja auch unterschiedliche Funktionen:
eet_var ist das _ am Ende (wichtig für EET)
tutu_scriptbg liefert das "BG", mit dem die doppelten BG1-Ressourcen in BGT getaggt sind.
BGT_VAR ist die globale Variablenabfrage, die sicherstellt, dass sie nur in BG1 wahr ist (wichtig für EET und BGT).
Achtung: Groß- und Kleinschreibung ist hier zu beachten, sonst passt das Klötzchen nicht in die Öffnung.

Prinzipiell wäre eine (weitere) Mod, die Thalantyr Items upgraden lässt, Copyrightmäßig überhaupt kein Problem. Wenn Deine Mod aber sozusagen tatsächlich das Grundgerüst der Thalantyr-Itemupgrade-Mod verwendet und nur die Items getauscht sind dann wird es grenzwertig.
Auf der anderen Seite: die basics von Item-Upgrade-Mods sind halt so - geh zum Charakter hin, hab Items im Spiel, der Charakter sagt noch was und gibt einem den neuen Gegenstand... Dieses Prinzip zu verwenden wäre nicht "Klauen", solange halt nicht offensichtlich einfach nur die andere Mod mit eigenen Items gefüllt wurde.

Falls alle Dämme und Geduldsfäden reißen
Also ICH habe hier grad noch was gelernt. :up:
 

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
Also ICH habe hier grad noch was gelernt
Das ausgerechnet ich Niete Dir hier noch was zeige, was ich selbst nur halb verstehe, nicht zu fassen!:D

Aber das mit der State Nr. 35 ist sehr erhellend, das hilft ungemein. Und bestärkt mich in dem, was ich grad eh tue. Etwas ähnliches, was ich für BG2 gemacht habe noch für BG1 zu machen, nämlich einen beschworenen Schmied. Wie ich oben erwähnte, es macht mir IMMER Kopfschmerzen, wenn ich an so fest eingebundenen Charakteren auch noch rumfummel. Und das nicht mal als Einzige, das kann schwer schief gehen, wenn andere Mods exakt das gleiche tun. Da beschwör ich lieber noch mal einen Dschinn, der nur für so was gut ist. Macht nichts kaputt. Ich werde dem dann noch einen Store dran hängen, die Dialogoption darauf erweitern und da ein paar Taschen/Beutel einfügen. By the way habe ich ein spannendes Konzept für eine Zauberstabtasche gefunden, das werde ich mal näher betrachten. Und wenn es passt auch einbinden. Die Dialoge und Rezepte sind ja im Grunde noch geschrieben, DAS habe ich zumindest selbst erarbeitet. Mit Hilfe einer gewissen Jastey...
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
Huhu, @Lumorus : Hier kannst Du gerne kurz einen Blick drauf werfen, weißt bescheid.
Aktuellere Version, die man auch installieren kann, siehe Thread Seite 3...
 
Zuletzt bearbeitet:

Lumorus

Wachender
Registriert
03.03.2011
Beiträge
4.565

Dachrisma

Senior Member
Registriert
20.03.2011
Beiträge
382
Meine Version ist noch in Arbeit, liebe Jastey... DAS ist eine von tausend zu vielen Baustellen.

Oooookay, Freunde des Crossplatforming-Moddens für Bekloppte, willkommen zurück.

Ich versuche grad einen Code zu erstellen, der dem Spiel mitteilen soll auf welcher Plattform es gerade läuft. Und der Witz ist, ich stoße an die einfachste Grenze. Welche Datei hat nur das normale BG1, um es als solches zu identifizieren?

Ich zeige kurz meinen bisherigen Versuch, und noch eine Frage:
Werden bei der Abfrage ACTION_IF FILE_EXISTS_IN_GAME auch Files im Verzeichnis "Override" berücksichtigt? Dann wäre es für mich das einfachste für EET folgendes zu schreiben:

Code:
ACTION_IF FILE_EXISTS_IN_GAME ~XXX~ THEN BEGIN  //BG1 Hier fehlt mir die einzig in BG1 enthaltene Datei
    PRINT @001 //BG1
  END ELSE
ACTION_IF FILE_EXISTS_IN_GAME ~AR7200.are~ THEN BEGIN  //BGT
    PRINT @002 //BGT
    INCLUDE ~%MOD_FOLDER%/lib/g3_bgt_cpmvars.tpa~
ACTION_IF FILE_EXISTS_IN_GAME ~neera.dlg~ THEN BEGIN  //BG:EE
    PRINT @003 //BG:EE
    INCLUDE ~%MOD_FOLDER%/lib/g3_bgee_cpmvars.tpa~
END ELSE BEGIN
ACTION_IF FILE_EXISTS_IN_GAME ~EET.flag~ THEN BEGIN  //EET Hier versuche ich EET zu identifizieren, falls es so geht
    PRINT @004 //EET
    INCLUDE ~%MOD_FOLDER%/lib/eet_cpmvars.tpa~
END ELSE BEGIN
    END ELSE BEGIN FAIL
    PRINT @005 //Vorraussetzung BG1, BGT, BG:EE, oder EET.

                END      //BG1
            END          //BGT
        END            //BG:EE
    END                //EET
END

Diese Arbeit betrifft eine Mod, die ich für BG1/BGT gemacht hatte. Die will ich einfach nur an EE und EET anpassen.
Ich vermute, daß der "charset_wrapper.tph" in die lib gehört, um UTF8 zu erzeugen. Wie kommt in dem Zusammenhang die "iconv.exe" ins Spiel? Die habe ich erst mal zur Vorsicht ins Verzeichnis "tra" gepackt.

Es werden Gegenstände und einige Charaktere modifiziert. Mit Areas hat die Mod nichts zu tun, daher noch die Frage, ob die "cpmvars" in der lib überhaupt notwendig sind. Die betreffen ja soweit mein Verständnis reicht die Variablen in den Codes für die Areas in den verschiedenen Versionen.

Ich hasse verschiedene Versionen, langsam drehe ich durch...

Ich könnte im Grunde auch alle Abfragen sausen lassen, da mir kein Gegenstand bekannt ist, der sich durch die Versionen im Code ändert, aber mir machen die acht Kreaturen etwas Kopfschmerzen. Werden da die Codes geändert? Soweit mir bekannt existieren die nur in BG1 und BG:EE, die tauchen in BG2 nicht mehr auf, daher dürfte sich daran nichts ändern.
 
Zuletzt bearbeitet:

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
Meinst Du wirklich Kompatibilität mit original BG1? In meiner Ajantis Expansion Pack Mod ist eine g3_bg_cpmvars.tpa.
Überprüfen würdest Du nach GAME_IS ~bg1~ (ohne TotSC) oder ~totsc~ (BG1 mit TotSC).

Ich vermute, daß der "charset_wrapper.tph" in die lib gehört,
Was ist die, ist das aus einer Mod?
Um die tra-Dateien in utf8 zu wandeln, nutze ich immer das HANDLE_CHARSETS direkt in der tp2.
Mit Areas hat die Mod nichts zu tun, daher noch die Frage, ob die "cpmvars" in der lib überhaupt notwendig sind. Die betreffen ja soweit mein Verständnis reicht die Variablen in den Codes für die Areas in den verschiedenen Versionen.
die cpmvars.tpa enthalten auch die anderen definitionen, also eet_var etc. Es würde mich erstaunen, wenn Du komplett ohne diese eine BG1-Mod erstellen könntest, die Inhalte normal ins Spiel einfügt.
Wie kommt in dem Zusammenhang die "iconv.exe" ins Spiel? Die habe ich erst mal zur Vorsicht ins Verzeichnis "tra" gepackt.
Die iconv.exe kommt im Ordner iconv in the Pfad, den Du bei der HANDLE_CHARSETS als "tra_path" angegeben hast, also auf einer Höhe mit dem Ordner der tra-Dateien. (Wegen Copyright mit dem ganzen Paket).
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
14.264
Ich hasse verschiedene Versionen, langsam drehe ich durch...
Aber jetzt stelll Dir vor, Du würdest für jedes Spiel eine eigene Modversion machen... Ansonsten; ja, ich habe genau aus dem Grund ompatibilität mit Tutu und oBG1 fallen lassen (außer bei Ajantis BG1).
 
Oben