[Modding] Kann ich an die BGEE.lua weitere Portraits anhängen?

Acifer

Senior Member
Registriert
27.04.2019
Beiträge
1.736
Ich bin gerade dabei, mein Portrait-Pack startklar zu machen. Ich würde die vom Spieler benutzbaren Portraits gerne in das Portrait-Verzeichnis der BGEE.lua eintragen, damit die Männer bei Männern und die Frauen bei Frauen erscheinen.
Meine BGEE.lua sieht so aus:
portraits =
{
{'MAN1', 1},
{'MAN2', 1},
{'GENDWRF', 1},
{'GENMELF', 1},
{'GENMHLF', 1},
{'NHORC', 1},
{'AJANTIS', 1},
{'CORAN', 1},
{'EDWIN', 1},
{'ELDOTH', 1},
{'GARRICK', 1},
{'KAGAIN', 1},
{'KHALID', 1},
{'KIVAN', 1},
{'MINSC', 1},
{'MONTAR', 1},
{'QUAYLE', 1},
{'TIAX', 1},
{'XAN', 1},
{'XZAR', 1},
{'YESLICK', 1},
{'RASAAD', 1},
{'DORN', 1},
{'NCERND', 1},
{'NKELDOR', 1},
{'NANOMEN', 1},
{'NEDWIN', 1},
{'NHAER', 1},
{'NJAN', 1},
{'NMINSC', 1},
{'NVALYGA', 1},
{'NYOSHIM', 1},
{'NKORGAN', 1},
{'BDSHAM1', 1},
{'BDORCM1', 1},
{'WOMAN1', 2},
{'WOMAN2', 2},
{'ALORA', 2},
{'BRANWE', 2},
{'DYNAHEI', 2},
{'FALDORN', 2},
{'IMOEN', 2},
{'JAHEIRA', 2},
{'SAFANA', 2},
{'SHARTEL', 2},
{'SKIE', 2},
{'VICONIA', 2},
{'NEERA', 2},
{'NNALIA', 2},
{'NMAZZY', 2},
{'NAERIE', 2},
{'NJAHEIR', 2},
{'NVICON', 2},
{'BDSHAF1', 2},
{'BDORCF1', 2},
{'YANNER1', 2},
{'YANNER2', 2},
{'YANNER3', 2},
{'YANNER4', 1},
{'YANNER5', 1},
{'YANNER6', 1},
{'HELM', 1},
{'HVLN', 1},
{'OHHEX', 2},
{'SKAN', 2},
{'MANLEY0', 1},
{'MANLEY3', 1},
{'MANLEY6', 1},
{'MANLEY7', 1},
{'MANLEY8', 1},
{'MANLEY9', 1},
{'MANLEY1', 2},
{'MANLEY2', 2},
{'MANLEY4', 2},
{'MANLEY5', 2},
{'MANLEYX', 2}
}

Hinter {'MANLEYX', 2} würde ich gerne per WeiDU ein Komma einfügen und weitere Zeilen einsetzen:
Code:
{'ac#half', 1},
{'AC#MAN7', 1},
{'AC#MAN9', 1},
{'AC#HF01', 2},
{'AC#HF03', 2},
{'AC#HF04', 2}

Das müsste doch irgendwie gehen, oder? Es gibt eine neue Mod, die so etwas Ähnliches macht, daraus werde ich aber nicht ganz schlau:
https://github.com/D2-mods/Portrait-Gender-Separator-for-IE-games/releases
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.451
Es gibt offenbar einen Weg BGEE.lua mit separaten Dateien zu modifizieren. (Hab' ich aber noch nicht ausprobiert.)

Und wenn man in den Dateien richtig LUA verwendet kann, dann sollte es kein Problem sein, die Tabelle zu erweitern.
Also ungefähr so:
Code:
table.insert(portraits, {'ac#half', 1})
table.insert(portraits, {'AC#MAN7', 1})
...
Kann man sicherlich auch kompakter schreiben, aber ich hab' keine Ahnung, ob BG überhaupt solche LUA-Konstrukte erlaubt.
/Edit: Offenbar ist portraits aus bgee.lua nicht direkt in den M_*.lua Dateien verfügbar. Geht also nicht ganz so einfach. (war ein Typo bei "portraits", geht doch)
 
Zuletzt bearbeitet:

Acifer

Senior Member
Registriert
27.04.2019
Beiträge
1.736
Vielen Dank für diesen Hinweis! Es funktioniert!

Ich habe jetzt folgenden Code erstellt:
Code:
function addPortrait(name, gender)
    table.insert(portraits, {name, gender})
end
addPortrait('ac#half', 1)
addPortrait('ac#MAN1', 1)
addPortrait('ac#MAN6', 1)
addPortrait('ac#MAN7', 1)
addPortrait('ac#MAN9', 1)
addPortrait('AC#HF01', 2)
addPortrait('AC#HF03', 2)
addPortrait('AC#HF04', 2)

...damit erscheinen jetzt die Portraits im dafür vorgesehenen Auswahlfenster. :)
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.451
Kleine LUA-Empfehlung:
Ich würde alle selbst erstellten Funktionen, die nur in der Datei verwendet werden sollen, als local deklarieren. (Also: local function addPortrait(...))
Ansonsten besteht die theoretische Chance, dass eine andere M_-Datei ebenfalls eine Funktion mit dem selben Namen verwendet, die dann hier überschrieben würde.
Es ist relativ unwahrscheinlich, dass das passiert und auch negative Auswirkungen hat, da die Funktionen normalerweise direkt in derselben Datei verwendet werden. (Dann spielt das spätere Überschreiben keine Rolle mehr.)
Aber man kann sich ja trotzdem einen guten Stil angewöhnen. :)
 

Acifer

Senior Member
Registriert
27.04.2019
Beiträge
1.736
Danke! Da meine LUA-Kenntnisse in etwa so effektiv sind wie wenn ich mit verbundenen Augen nur nach Gehör Autofahren müsste bin ich für Deine Anregungen sehr dankbar (da ich eigentlich gar nicht genau weiß, was ich da eigentlich mache.) ;)
Aber man kann sich ja trotzdem einen guten Stil angewöhnen. :)
Da hast Du Recht! Um es in den Worten von Joachim Llambi auszudrücken: „Wenn es unten stimmt, kannst du oben alles machen“ ;)
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
11.616
„Wenn es unten stimmt, kannst du oben alles machen“
Der Spruch passt ja wirklich auf alles! Einer der Gründe, warum Besuch bei uns nur das schön aufgeräumte Erdgeschoss zu sehen kriegt. :shine:
 

Morywen

Senior Member
Registriert
18.10.2017
Beiträge
2.040
@Jastey Bei uns ist nicht Mal den Hausflur richtig aufgeräumt... Unser Kater schläft aber gerne auf Schals und Mützen...
@Taimon Vielen Dank für deine Weisheiten.
 
Oben