[Modding] Probleme mit ADD_MEMORIZED_SPELL

  • Ersteller Gelöschtes Mitglied 16867
  • Erstellt am

Gelöschtes Mitglied 16867

Guest
Ich wollte mit meiner Mod die Zauber von Branwen ändern.
Von 2x Leichte Wunden heilen, 1x Befehl und 1x Furcht bannen zu 3x Leichte Wunden heilen und 1x Furcht bannen.
Dies habe ich wie folgt getan:
Code:
REMOVE_MEMORIZED_SPELL ~SPPR102~ ~SPPR103~      //Befehl & Leichte Wunden heilen
ADD_MEMORIZED_SPELL ~SPPR103~ #0 ~priest~ ( 3 ) //Leichte Wunden heilen
Leider musste ich feststellen, dass sie bei der Rekrutierung sechs Zauberslots hat, statt eigentlich vier (zwei waren leer).
Ich habe mir das mal mit Near Infinity angeschaut und dort stand unter spell level 0 vor der Installation:
spells memorizable: 2
currently memorizable: 4

Und danach:
spells memorizable: 4
currently memorizable: 4

Kann mir jemand erklären, wie ich das umgehen kann?
 

Taimon

Infinity Engineer
Registriert
25.11.2001
Beiträge
1.501
Das sieht mir nach einem Bug in WeiDU aus.
Beim Hinzufügen der Sprüche wird der Wert in "spells memorizable" angepasst. (WeiDU-Code)
Dabei wird aber nicht berücksichtigt, dass "spells memorizable" und "currently memorizable" unterschiedlich sein können. Branwen hat aufgrund von Weisheit 16 zwei zusätzliche Sprüche für Level 1 und 2.
Die Funktion korrigiert einen für sie ungültigen Wert. (Liste der Sprüche hat 4 Einträge, in "spells memorizable" steht aber nur 2)
Das führt dann zum beobachteten Fehlverhalten, da im Spiel vermutlich "currently memorizable" auf 6 abgeändert wird, wenn in "spells memorizable" eine 4 steht.

Den Bug sollte man im WeiDU-Forum melden bzw. nachschauen, ob es schon mal gemeldet wurde. Allerdings glaube ich nicht, dass das zeitnah behoben wird.
(/Edit: Wurde schon gemeldet. Der damalige Maintainer hat gesagt, dass der Fehler nicht behoben wird und sich das Problem beim nächsten Level-Up von selbst behebt.)
Evtl. hatte schon jemand anderes dasselbe Problem und hat eine Funktion/Makro geschrieben. (Spontan würde ich im BG2 Fixpack nachschauen.)
Ansonsten bleibt eigentlich nur das manuelle Anpassen des Wertes in "spells memorizable".
 

Gelöschtes Mitglied 16867

Guest
Vielen Dank dir! Kannst du mir noch sagen, wie ich den Wert "spells memorizable" anpasse?
Spontan würde ich es mit WRITE_SHORT 0x366 2 machen, aber da sich dieser Wert an verschiedenen Stellen befinden kann, könnte dies vielleicht nicht funktionieren.
 

Gelöschtes Mitglied 16867

Guest
Vielen Dank!
Ich habe es gelöst mit:
Code:
READ_LONG  0x2a8 mem_info
READ_SHORT  (mem_info + 0x02) spell_mem
REMOVE_MEMORIZED_SPELL ~SPPR102~ ~SPPR103~
ADD_MEMORIZED_SPELL ~SPPR103~ #0 ~priest~ ( 3 )
WRITE_SHORT  (mem_info + 0x02) spell_mem
 
Oben