[Bug] Wachende Festung: Bug beim Helmite-Geist

Noban

Senior Member
Registriert
07.10.2009
Beiträge
125
in meiner aktuellen Installation scheinen ein/zwei Mods nicht vernünftig ineinander zu greifen:

Die Situation:
ToB/Wachende Festung Ebene4, nach dem Gespräch mit dem Helmite-Geist sollte es Treppen zu den 3 Sublevel geben, was nicht der Fall ist.

Ein change-log auf FSSPIR2.DLG ergab, das BG2 Fixpack, Saerileth und TyrisFlare da reingeschrieben haben.

Saerileth und Tyris sind nicht in dem aktuellen Team, aber Jaheira (Romanze) und Imoen.
Eigentlich sollten in diesem Fall erst Jaheira und dann Imoen zweimal im Gespräch einen Kommentar haben und dann die transition freigegeben werden, sie sagen aber beide nichts und Treppen gibts auch nicht.

Wenn ich:
- in SvA an den Punkt springe, sagen auch beide nichts, aber die Treppen erscheinen.
- in SvA an den Punkt springe und Tyris herbeizitiere, kommen deren Einwürfe und die Treppen korrekt.
- in ToB Tyris herbeizitiere hat sie "nichts zu sagen" und keine Treppen.
- in ToB Jaheira aus dem Verkehr ziehe (ausser Sicht/Hörweite reicht), hat Imoen immer noch keinen Kommentar, aber die Treppen erscheinen.
- in einer anderen Installation(ohne Saerileth, ohne Tyris, mit BG2 Fixpack) an den Punkt springe, kommen die Kommentare von Viconia und Imoen wie vorgesehen und alles läuft.

Ich habe in der entsprechenden Dialogdatei (FSSPIR2.DLG) auf den ersten Blick keinen Fehler gefunden der diesen Haken erklären könnte, warum BG2 Fixpack alleine funktioniert aber zusammen mit Tyris (und evtl Saerileth) nicht.
Vielleicht schaut da mal einer rein, der mehr Peilung hat als ich.
 

Roana

Member
Registriert
18.01.2013
Beiträge
64
Hallo :)

Ich habe zwar einen Fehler gefunden, aber der erklärt leider nicht, weshalb die Einwürfe von Jaheira/Viconia/Imoen nicht kommen, wenn Du die beiden angesprochenen NPCs nicht in der Gruppe hast. Eine FSSPIR2.D wäre hilfreich (die .DLG ist ja recht klein, und ich habe das Mod nicht installiert, nur gedownloaded - also sozusagen nur in 'Rohform' ;)), um zu sehen, wie Interjections der beiden NPCs sich tatsächlich einsortiert haben...

Wenn ich:
- in SvA an den Punkt springe, sagen auch beide nichts, aber die Treppen erscheinen.

Ist mir auch ein Rätsel, wieso... :shine:

- in SvA an den Punkt springe und Tyris herbeizitiere, kommen deren Einwürfe und die Treppen korrekt.

Die anderen Einwürfe (von Jaheira/Viconia/Imoen) kommen nicht aufgrund der Art, wie Tyris' Dialog gescripted ist.

Probiere mal, die 'ExpInterjections.d' in dem Mod auf folgende Weise zu ändern - dann sollten nach Deinstallieren und Neuinstallieren des Mods die anderen Interjections von Jaheira und Imoen auch kommen... ;)

INTERJECT FSSPIR2 5 (Block-Fix)
Code:
NEU:

// INTERJECT FSSPIR2 5 GI#TF.WKKeeperoftheKey2
INTERJECT_COPY_TRANS 5 GI#TF.WKKeeperoftheKey2
  == G#TYRISJ IF ~InParty("G#Tyris")
                 !StateCheck("G#Tyris",CD_STATE_NOTVALID)
                 GlobalLT("Chapter","GLOBAL",8)~ THEN @7
//   DO ~TriggerActivation("Tran3024",TRUE)
//       TriggerActivation("Tran3025",TRUE)
//       TriggerActivation("Tran3026",TRUE)
//       TriggerActivation("IT3024",FALSE)
//       TriggerActivation("IT3025",FALSE)
//       TriggerActivation("IT3026",FALSE)~ 
// EXIT

// INTERJECT FSSPIR2 5 GI#TF.WKKeeperoftheKey2
INTERJECT_COPY_TRANS 5 GI#TF.WKKeeperoftheKey2

  == G#TRS25J IF ~InParty("G#Tyris")
                 !StateCheck("G#Tyris",CD_STATE_NOTVALID)
                 GlobalGT("Chapter","GLOBAL",7)~ THEN @7
//   DO ~TriggerActivation("Tran3024",TRUE)
//       TriggerActivation("Tran3025",TRUE)
//       TriggerActivation("Tran3026",TRUE)
//       TriggerActivation("IT3024",FALSE)
//       TriggerActivation("IT3025",FALSE)
//       TriggerActivation("IT3026",FALSE)~ 
// EXIT  



ALT:

INTERJECT FSSPIR2 5 GI#TF.WKKeeperoftheKey2
  == G#TYRISJ IF ~InParty("G#Tyris")
                 !StateCheck("G#Tyris",CD_STATE_NOTVALID)
                 GlobalLT("Chapter","GLOBAL",8)~ THEN @7
  DO ~TriggerActivation("Tran3024",TRUE)
      TriggerActivation("Tran3025",TRUE)
      TriggerActivation("Tran3026",TRUE)
      TriggerActivation("IT3024",FALSE)
      TriggerActivation("IT3025",FALSE)
      TriggerActivation("IT3026",FALSE)~ 
EXIT

INTERJECT FSSPIR2 5 GI#TF.WKKeeperoftheKey2
  == G#TRS25J IF ~InParty("G#Tyris")
                 !StateCheck("G#Tyris",CD_STATE_NOTVALID)
                 GlobalGT("Chapter","GLOBAL",7)~ THEN @7
  DO ~TriggerActivation("Tran3024",TRUE)
      TriggerActivation("Tran3025",TRUE)
      TriggerActivation("Tran3026",TRUE)
      TriggerActivation("IT3024",FALSE)
      TriggerActivation("IT3025",FALSE)
      TriggerActivation("IT3026",FALSE)~ 
EXIT  



zusätzlich: die TriggerActivation-Commands in der Action sind falsch - sie sollten lauten:

//       TriggerActivation("Exit3024",FALSE)
//       TriggerActivation("Exit3025",FALSE)
//       TriggerActivation("Exit3026",FALSE)


statt:

//       TriggerActivation("IT3024",FALSE)
//       TriggerActivation("IT3025",FALSE)
//       TriggerActivation("IT3026",FALSE)

wenn die Interjection richtig wäre ;)


- in ToB Tyris herbeizitiere hat sie "nichts zu sagen" und keine Treppen.

Wenn Du Tyris in TOB nur 'herbeizitierst', hat sie nichts zu sagen, weil Ihr die Conditions für den Join-Dialog fehlen, die durch den Fatespirit in der Pockedplane beim Summonen gesetzt werden:

SetGlobal("G#TF.TyrisSummoned","GLOBAL",1) oder
SetGlobal("G#TF.TyrisSummoned","GLOBAL",2)

- in ToB Jaheira aus dem Verkehr ziehe (ausser Sicht/Hörweite reicht), hat Imoen immer noch keinen Kommentar, aber die Treppen erscheinen.

Sehr seltsam... :wunder: wie gesagt: eine FSSPIR2.D wäre hilfreich ;)

- in einer anderen Installation(ohne Saerileth, ohne Tyris, mit BG2 Fixpack) an den Punkt springe, kommen die Kommentare von Viconia und Imoen wie vorgesehen und alles läuft.

Das BG2 Fixpack hat mit diesem Problem auch nichts zu tun :)

Gruß

Roana
 

Noban

Senior Member
Registriert
07.10.2009
Beiträge
125
ähem..
Ich habe zwar NI und mache damit mein Spiel auf, aber eine FSSPIR2.D konnte ich da bisher nicht entdecken.
Was für ein Programm muss ich benutzen oder wo muss genau suchen um die FSSPIR2.D in lesbarer Form zu finden?
 

Wedge

Wedgetarian
Registriert
04.07.2007
Beiträge
9.373
Schau mal nach der FSSPIR2.DLG unter DLGs. Da gibt's ne Option das Ding decompiliert zu speichern, sofern ich mich nicht irre. Ansonsten halt die CMD aufmachen, ins BG2-Verzeichnis gehen und dort weidu FSSPIR2.dlg eingeben.
 

Noban

Senior Member
Registriert
07.10.2009
Beiträge
125
Da ich keine FSSPIR2.D gefunden habe, hier die .DLG aus meiner Installation:
Signature DLG
Version V1.0
# states 8
State offset 34 h
# responses 36
Response offset b4 h
State trigger offset 534 h
# state triggers 5
Response trigger offset 55c h
# response triggers 21
Action offset 604 h
# actions 12
Non-interrupting dialogs Party dialog, pausing (0)
State 0 Response: Seid gegrüßt, mein Fürst! Habt keine Angst, denn ich weiß von Eurer Mission. Ihr sucht den Weg zum Eingerkerten. Aber hütet Euch, denn der Weg vor Euch ist schwierig und die Gefahr groß.,
State 1 Response: Ich bin der Hüter des Schlüssels. Ich bin der, den man zurückgelassen hat. Meine Pflicht verlangt von mir, hier zu bleiben und über einen der Schlüssel zum letzten Siegel zu wachen.,
State 2 Response: You must be worthy in heart, spirit and mind before the final seal will be unlocked. My solemn task is to test the perseverance, courage and wisdom of your heart.,
State 3 Response: Die Herausforderungen, die vor Euch liegen, sind nichts für die Zögerlichen. Wenn Ihr Euch nicht sicher seid, solltet Ihr Euch nicht an diese Herausforderungen wagen. Kommt erst zurück, wenn Ihr bereit seid.,
State 4 Response: Ihr könnt mich nicht verletzen! Mein Geist ist durch Pflichtgefühl und Verpflichtung auf ewig an diesen Ort gebunden. Sprecht erneut mit mir, wenn Ihr bereit seid, Euch der Herausforderung zu stellen.,
State 5 Response: Hinter mir liegen drei Türen. Ich darf nicht über die Herausforderungen sprechen, die dahinter liegen. Wenn Ihr alle drei Herausforderungen überwindet, dann kehrt zu mir zurück. Ihr habt dann bewiesen, dass Euer Herz würdig ist.,
State 6 Response: Ihr habt Eure Aufgabe zwar in Angriff genommen, doch ist sie noch lange nicht vollendet. Ihr müsst die Herausforderung hinter jeder Tür bestehen, bevor die Würde Eures Herzens zweifellos bewiesen wurde.,
State 7 Response: Ihr habt die Herausforderungen überwunden und damit bewiesen, dass Euer Herz würdig ist. Ihr dürft dem Eingekerkerten gegenüber treten. Der Schlüssel zum letzen Siegel ist Euer!,
Response 0 Flags: ( Text associated(0) ),Associated text: Ich bin auf alles vorbereitet, egal was mich erwartet.,
Response 1 Flags: ( Text associated(0) ),Associated text: Der Eingekerkerte?! Von wem redet Ihr?,
Response 2 Flags: ( Text associated(0) ),Associated text: Das klingt ziemlich ominös.,Journal entry: <NO TEXT>,
Response 3 Flags: ( Text associated(0) ),Associated text: Wehrt Euch, finsterer Geist! Ich werde Euch in das finstere Loch zurückschicken, aus dem Ihr entstiegen seid!,
Response 4 Flags: ( Text associated(0) ),Associated text: Wer seid Ihr, und was macht Ihr hier?,
Response 5 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 0,
Response 6 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 1,
Response 7 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 2,
Response 8 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 3,
Response 9 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 4,
Response 10 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 5,
Response 11 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 6,
Response 12 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 7,
Response 13 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 8,
Response 14 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 15 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 16 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 17 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 18 Flags: ( Text associated(0) Journal entry(4) Add unsolved quest(6) ),Associated text: Wie kann ich mich als würdig erweisen?,
Response 19 Flags: ( Text associated(0) ),Associated text: Ich fürchte, ich bin für diese Herausforderung noch nicht bereit.,
Response 20 Flags: ( Text associated(0) ),Associated text: Ich bin bereit für die Herausforderung.,
Response 21 Flags: ( Text associated(0) ),Associated text: Vielleicht kann ich ja beweisen, dass ich würdig bin, indem ich Euch zerstöre!,
Response 22 Flags: ( Text associated(0) ),Associated text: Ich habe es nicht nötig, irgend jemandem zu beweisen, dass ich würdig bin, und schon gar nicht einem Geist!,
Response 23 Flags: ( Terminates dialog(3) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 24 Flags: ( Action(2) Terminates dialog(3) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 25 Flags: ( Action(2) Terminates dialog(3) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 26 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 27 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 28 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 29 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 16,
Response 30 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 17,
Response 31 Flags: ( Trigger(1) ),Associated text: No such index,Journal entry: <NO TEXT>,Trigger index: 18,
Response 32 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 33 Flags: ( Trigger(1) Action(2) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 34 Flags: ( Terminates dialog(3) ),Associated text: No such index,Journal entry: <NO TEXT>,
Response 35 Flags: ( Action(2) Terminates dialog(3) Journal entry(4) Add unsolved quest(6) ),
State trigger 0 Global("Attacked","LOCALS",1)

State trigger 1 Global("FSChallenge","GLOBAL",3)
State trigger 2 NumTimesTalkedTo(0)
State trigger 3 Global("ReadyForChallenge","AR3019",0)

State trigger 4 Global("ReadyForChallenge","AR3019",1)

Response trigger 0 True()
Response trigger 1 IsValidForPartyDialog("Imoen2")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 2 IsValidForPartyDialog("Viconia")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 3 IsValidForPartyDialog("Jaheira")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 4 IsValidForPartyDialog("Mazzy")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 5 IfValidForPartyDialogue("Imoen2")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 6 IfValidForPartyDialogue("Viconia")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 7 IfValidForPartyDialogue("Jaheira")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 8 IfValidForPartyDialogue("Mazzy")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 9 Global("NSSaeriHelmiteSOA","GLOBAL",0)
InParty("Saerileth")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 10 Global("NSSaeriHelmiteTOB","GLOBAL",0)
InParty("Saerileth")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 11 Global("GI#TF.WKKeeperoftheKey1","GLOBAL",0)
InParty("G#Tyris")
!StateCheck("G#Tyris",CD_STATE_NOTVALID)
GlobalLT("Chapter","GLOBAL",8)

Response trigger 12 Global("GI#TF.WKKeeperoftheKey1","GLOBAL",0)
InParty("G#Tyris")
!StateCheck("G#Tyris",CD_STATE_NOTVALID)
GlobalGT("Chapter","GLOBAL",7)

Response trigger 13 IsValidForPartyDialog("Imoen2")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 14 IsValidForPartyDialog("Viconia")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 15 IsValidForPartyDialog("Jaheira")
GlobalGT("Chapter","GLOBAL",7)

Response trigger 16 IfValidForPartyDialogue("Imoen2")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 17 IfValidForPartyDialogue("Viconia")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 18 IfValidForPartyDialogue("Jaheira")
GlobalLT("Chapter","GLOBAL",8)

Response trigger 19 Global("GI#TF.WKKeeperoftheKey2","GLOBAL",0)
InParty("G#Tyris")
!StateCheck("G#Tyris",CD_STATE_NOTVALID)
GlobalLT("Chapter","GLOBAL",8)

Response trigger 20 Global("GI#TF.WKKeeperoftheKey2","GLOBAL",0)
InParty("G#Tyris")
!StateCheck("G#Tyris",CD_STATE_NOTVALID)
GlobalGT("Chapter","GLOBAL",7)

Action 0 SetGlobal("NSSaeriHelmiteSOA","GLOBAL",1)
Action 1 SetGlobal("NSSaeriHelmiteTOB","GLOBAL",1)
Action 2 SetGlobal("GI#TF.WKKeeperoftheKey1","GLOBAL",1)
Action 3 SetGlobal("GI#TF.WKKeeperoftheKey1","GLOBAL",1)
Action 4 SetGlobal("Attacked","LOCALS",0)

Action 5 TriggerActivation("Tran3024",TRUE)
TriggerActivation("Tran3025",TRUE)
TriggerActivation("Tran3026",TRUE)
TriggerActivation("Exit3024",FALSE)
TriggerActivation("Exit3025",FALSE)
TriggerActivation("Exit3026",FALSE)
SetGlobal("ReadyForChallenge","AR3019",1)

Action 6 SetGlobal("ReadyForChallenge","AR3019",1)

Action 7 SetGlobal("ReadyForChallenge","AR3019",1)

Action 8 SetGlobal("ReadyForChallenge","AR3019",1)

Action 9 SetGlobal("GI#TF.WKKeeperoftheKey2","GLOBAL",1)
Action 10 SetGlobal("GI#TF.WKKeeperoftheKey2","GLOBAL",1)
Action 11 AddXP2DA("PLOT7E")
GiveItemCreate("PLOT05A",LastTalkedToBy,0,0,0)
DestroySelf()

Ein ähnliches Problem gab es dann oben beim Rapport an Odren.
Nach dem Ablauf:
- Ihr seid zurück! Wir...haben gespürt das jemand..
- Ich habe wohl das Ritual gewirkt, aber ich glaube nicht das es noch nötig war...
- Der Eingekerkerte zerstört! Nein, das kann nicht wahr sein...
- Oh, das ist schon war. Geht doch...
- Kommt meine Brüder. Jetzt, da die Bhaalbrut den Weg freigemacht...
- Ihr wusstet nicht was Ihr getan habt CHARNAME, deswegen ......Lebt wohl

verschwindet die Truppe eben nicht, vielleicht will einer von meinen noch was sagen, es passiert aber nichts.
Nachdem ich eine Globale von Hand setze, geht Odrens Truppe und der Geist erscheint, erzählt seine Geschichte und die Ritualrolle erscheint nicht.
Wenn ich mir die Rolle ins Inventory hole und benutze, bekomme ich die XP und Logbucheinträge, der Geist steht immer noch da.

Laut .DLG Datei hätten an der Stelle Edwin, Korgan, Imoen2, Xan, Saerileth einen Kommentar beizusteuern. Von den genannten ist nur Imoen in der Gruppe und es kam kein Kommentar sondern .. gar nichts.
 
Oben