[Modding] Wie mache ich eigene Spells und füge sie in das Spiel ein?

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Es gibt tatsächlich kein Tutorial zur Spell Creation für Baldurs Gate. Ich habe eine wage Erinnerung, dass es nicht unendlich viele Spellslots in der originalen Engine gab.
Bis auf neue BAMs kann ich glaube ich neue Spells erstellen (z.B. "Monster Summoning" mit einer anderen Art Monster etc.)
Wie genau füge ich neue Spells in Spiel ein, so dass man die Zauber als Magier lernen und verwenden kann? Was muss ich bzgl. Kompatibilität mit anderen Mods die dasselbe tun beachten?
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Hallo Jastey,

meines Wissens funktioniert es so:
(1) Spells, die von der KI verwendet werden können (mittels Script), müssen den Namensregeln der Engine entsprechen (z.B. SPWI---.spl) und dann zur spell.ids auf einen freien Slot mit Scriptname hinzugefügt werden. Diese müssten, so weit ich weiß, auch in den EE noch endlich sein. Je Stufe sind dann 100 Zauber möglich von z.B. Magierzaubern der Stufe 1: SPWI100 bis SPWI199.

(2) Spells, die nicht per Script nutzbar sind, kann man m.W. auch abseits der Namensregeln der Engine erstellen und damit theoretisch unendlich viele. Sie sind dann auch per Item lernbar und anwendbar.

Grüße!
Jarl
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Interessant, danke @Jarl .
Ich hatte vergessen dazuzuschreiben, dass die Spells auch nicht in der Charaktererstellung verfügbar sein sollen. Das würde die Verwendung von ADD_SPELL auch unnötig machen soweit ich das verstanden habe.
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Wie die Spells bei der Charaktererstellung geregelt werden, weiß ich nicht. Über eine klassenspezifische .2da vielleicht??

ADD_SPELL braucht man, wie gesagt, für den Scriptname. Wenn ein Partymitglied den Spell wirken soll, ist das nicht nötig.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Danke!
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Hmm. Hier wird gesagt, dass es ein Limit von 50 Zaubern pro Stufe gibt.
EDIT: Was @Jarl sagte stimmt: Zauber mit eigenem Prefix, die "nur" im Spiel über Schriftrollen lern- und zauberbar sind, zählen nicht zum 50-Limit. subtledoctor erklärt das ganze hier. Diese Zauber sind dann nicht während der Charaktererstellung verfügbar und können auch nicht von Hexenmeistern (Sorcerern) gelernt werden.
 
Zuletzt bearbeitet:

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Das war mir nicht bekannt. 50 ist natürlich ein Limit, das in einer Installation mit mehreren Mods schnell erreicht werden kann :c:
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Ich bin ganz zugrieden damit, dass wie Du sagtest reine "Schriftrollenzauber" da nicht mit reinzählen.
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Für die spell.ids und die Charaktererstellung gilt das. Aber nach dem Thread, den du gepostet hast, scheint auch das Zauberbuch der Magier im Spiel bei 50 Zaubern je Level einen Schlussstrich zu setzen. Sind 50 ins Zauberbuch geschriebene Zauber pro Level denkbar?
Vielleicht höchstens mit dieser Mod von Olvyn?
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Ich verstehe subtledoctors Ausführungen so, dass das 50 Limit nur in der Character Generation Screen, also beim Eratellen bzw. Hochleveln (dann von Sorcerern) gilt. Und eben nicht für "Lernscrolls".

Dass man nicht beliebeig viele Zauber in das Zauberbuch eintragen kann ist für mich jetzt keine Überraschung, das hängt doch auch von der Intelligenz ab?
 

Maus

Senior Member
Registriert
07.08.2002
Beiträge
9.411
Naja, mit Int 19 wären es unbeschränkt viele, oder? Da wird es dann schon eine technische Grenze geben, denke ich.
 

Jastey

Matron Modderholic
Registriert
16.05.2004
Beiträge
12.965
Genau. Der überrascht mich halt nur nicht, da ich da eine technische Grenze erwarte, es da eventuell auch nach D&D-Regeln eine Höchstanzahl gibt und der Spieler im Spiel entscheiden kann, welche er ins Zauberbuch schreibt. Da stört mich eine Beschränkung nicht so (wenn die Anzahl angemessen hoch ist, was ich bei 50 Zaubern aber fände. Ich ntze pro Stufe meist eh immer nur 2-5).
Dass es für die Charaktererstellung /Levelup für Hexenmeister logischerweise auch eine technische Beschränkung geben muss ist mir auch klar, aber hier finde ich die 50 Grenze eher willkürlich gewählt und daher empfinde ich sie als unnötige da rein technische Einschränkung. :hae:
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Hier scheint es jetzt ja doch eine längere Diskussion diesbezüglich zu geben, deswegen habe ich aus Interesse mal kurz nachgeschaut:
In der ToB-Engine gibt es eine Funktion, die den Dateinamen für die Wizardspells generiert. Und dort ist tatsächlich eine Überprüfung bzgl. der Anzahl pro Level drin.
Im Disassembler ist es ein Test auf "0 <= Zahl <= 49".
(Kann sein, dass man da noch +1 rechnen muss, also 1 <= Zahl <= 50, da die Schleife null-indiziert durchlaufen wird, aber die Spells erst bei 1 anfangen.)
 

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Hallo Taimon,

danke für die präzise Info.
Ließe sich das hacken? :shine:

Grüße!
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Prinzipiell schon, allerdings sollte man vorher schauen, was das für Nebenwirkungen hat.
Es wird ja schon irgendeinen Grund gegeben haben, warum die Entwickler damals dieses Limit eingebaut haben.

Wäre aber eine Modifkation von bgmain.exe bzw. ein Fall für ToBEx, falls das noch gepflegt wird.

Wer wagemutig ist und einen Hexeditor bedienen kann: An der Stelle 0x002336C8 in der bgmain.exe (ToB) sollte eine 0x31 stehen, was dezimal 49 ist.
Diesen Wert entsprechend anpassen, also beispielsweise 0x45 für dezimal 69.
Wenn man es live im laufenden Prozess patchen will, muss man bei der Adresse noch 0x00400000 draufrechnen, also 0x006336C8.

Aber wie gesagt, alles ohne Gewähr.
Ich bin hier schon zu lange raus. :)

/Edit:
Eventuell muss man auch noch eine 0x32 (=50) an der Stelle 0x0032FB6C auf einen größeren Wert patchen. Diese Funktion ruft die andere auf und prüft den Wert schon vorher.
Aber eigentlich denke ich, dass der Patch nicht notwendig ist. 50 Zauber pro Stufe bei der Charaktererstellung (bzw. Stufenaufstieg) wäre schon ziemlich unübersichtlich.
 
Zuletzt bearbeitet:

Jarl

Senior Member
Registriert
28.04.2006
Beiträge
982
Danke! Das übersteigt allerdings meine bescheidenen Fähigkeiten :)
 
Oben