Jump to content


Photo

Fade's dialogue breaks if you visit Watcher's Keep during SoA


6 replies to this topic

#1 agb1

agb1
  • Member
  • 1601 posts

Posted 15 November 2016 - 06:46 PM

Originally reported by micbaldur:
Fade NPC: Fade's interjection in Odren's dialogue (GORODR1.DLG) at Watcher's Keep doesn't work in SoA because interjection is in ToB dialogue file E3FAD25J.DLG (all other WK interjections too). Only option is dump Fade before talking to Odren.

A trivial fix might be to AreaCheck() for the entrance to Watcher's Keep during SoA and have Fade LeaveParty().

Ideally, she would be able to accompany the party in either SoA or ToB (or a mix of the two, as in micbaldur's game - first level of WK in SoA, the rest in ToB).

BiG World Fixpack (community collection of mod fixes and compatibility patches, with user-friendly cross-platform script)

 

BiG World Setup (tool to automate best-practice installation of Infinity Engine mods on Windows, with conflict analysis)

Latest version:    https://bitbucket.or.../get/master.zip


#2 The Imp

The Imp

    Not good, see EVIL is better. You LIVE.

  • Member
  • 3792 posts

Posted 16 November 2016 - 01:33 AM

I fail to see the logic in this in the mod:

// 2da appending
APPEND ~pdialog.2da~
~E3Fade      E3FadeP      E3FadeJ      E3FadeD~
UNLESS ~E3Fade~
UNLESS ~25POST~

APPEND ~pdialog.2da~
~E3Fade      E3FadeP      E3FadeJ      E3FadeD      E3Fad25P      E3Fad25J      E3Fad25D        E3Fade25~
UNLESS ~E3Fade~
IF ~25POST~

APPEND ~interdia.2da~
~E3Fade      BE3Fade~
UNLESS ~E3Fade~
UNLESS ~25FILE~

APPEND ~interdia.2da~
~E3Fade      BE3Fade      BE3Fad25~
UNLESS ~E3Fade~
IF ~25FILE~

But then again I fail a lot sometimes.. so I give it to whom ever to propose a good fix, aka one that works in both SoA and ToB (BG2) games. Cause I am pretty sure to fix this, you just need to edit that bit a bit.


Edited by The Imp, 16 November 2016 - 01:33 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#3 Roxanne

Roxanne

    Modder

  • Member
  • 1875 posts

Posted 16 November 2016 - 01:52 AM

Originally reported by micbaldur:

Fade NPC: Fade's interjection in Odren's dialogue (GORODR1.DLG) at Watcher's Keep doesn't work in SoA because interjection is in ToB dialogue file E3FAD25J.DLG (all other WK interjections too). Only option is dump Fade before talking to Odren.

A trivial fix might be to AreaCheck() for the entrance to Watcher's Keep during SoA and have Fade LeaveParty().

Ideally, she would be able to accompany the party in either SoA or ToB (or a mix of the two, as in micbaldur's game - first level of WK in SoA, the rest in ToB).

This issue is not limited to Fade - there are a number of other NPCs/mods that do not like you to go to WK prior to ToB.

You have this snapshot report because micbaldur chose to have Fadein party at this time - but this is not a singular issue.

 

Anyone going to WK early in a highly modded game should  be aware of the perils. In all my (many, many) BGT playthroughs I have only found one save way with WK - do not go there prior ToB...(yes yes, I know, many cannot wait that long, so if you go there early, make sure of whom you have in the party - and whom you plan to have in ToB, because you may spoil it both ways).

But any other solution will require you to have continuos NPCs like the EET has them (i.e. using the same files in SoA and in ToB).

 

(PS - In my old BGT mod version I had a solution implemented for my NPC. It can be done but it would be individual for each NPC mod and obviously mod-makers have not done it up to now. I would not recommend it either, but this is a personal view.)


Edited by Roxanne, 16 November 2016 - 02:05 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#4 agb1

agb1
  • Member
  • 1601 posts

Posted 16 November 2016 - 09:03 AM

Is it possible to add two transitions to each of the original WK dialogues, one that goes to Fade's ToB dialogue file and one that goes to her SoA dialogue file?

 

I'm thinking that we can put Fade's interjection dialogue states for WK in both of her dialogue files and then use the trigger condition Global("InToB","GLOBAL",1) to detect if we are in ToB or not and go to the appropriate dialogue.

 

For example:

 

 //Odren (Watcher's Keep)
 
INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1 /* ~That day has come, <CHARNAME>.  The great evil struggles within, and has infected the Watcher's Keep to the point where we cannot bypass the creatures and foul magic that blocks our path.~ */
== E3FAD25J IF ~Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
== FADE IF ~!Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
END
 
The idea being to either go to E3FAD25J.dlg or FADE.dlg, which would each have a new dialogue state that would say @4886 and then come back to the original dialogue (GORODR 11).
 
I don't think the above code would do what we want, because if I understand correctly it would interpret the above as a CHAIN and try to go first into E3FAD25J and then from there into FADE and then back, but is there a way to do this?
 
Would it work as two separate INTERJECT_COPY_TRANS, one for SoA and one for ToB, as below?
 
INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1 /* ~That day has come, <CHARNAME>.  The great evil struggles within, and has infected the Watcher's Keep to the point where we cannot bypass the creatures and foul magic that blocks our path.~ */
== E3FAD25J IF ~Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
END

 

INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1 /* ~That day has come, <CHARNAME>.  The great evil struggles within, and has infected the Watcher's Keep to the point where we cannot bypass the creatures and foul magic that blocks our path.~ */
== FADE IF ~!Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
END
 

Edited by agb1, 16 November 2016 - 09:03 AM.

BiG World Fixpack (community collection of mod fixes and compatibility patches, with user-friendly cross-platform script)

 

BiG World Setup (tool to automate best-practice installation of Infinity Engine mods on Windows, with conflict analysis)

Latest version:    https://bitbucket.or.../get/master.zip


#5 Roxanne

Roxanne

    Modder

  • Member
  • 1875 posts

Posted 16 November 2016 - 09:50 AM

Is it possible to add two transitions to each of the original WK dialogues, one that goes to Fade's ToB dialogue file and one that goes to her SoA dialogue file?

 

I'm thinking that we can put Fade's interjection dialogue states for WK in both of her dialogue files and then use the trigger condition Global("InToB","GLOBAL",1) to detect if we are in ToB or not and go to the appropriate dialogue.

 

For example:

 

 //Odren (Watcher's Keep)
 
INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1 /* ~That day has come, <CHARNAME>.  The great evil struggles within, and has infected the Watcher's Keep to the point where we cannot bypass the creatures and foul magic that blocks our path.~ */
== E3FAD25J IF ~Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
== FADE IF ~!Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
END
 
The idea being to either go to E3FAD25J.dlg or FADE.dlg, which would each have a new dialogue state that would say @4886 and then come back to the original dialogue (GORODR 11).
 
I don't think the above code would do what we want, because if I understand correctly it would interpret the above as a CHAIN and try to go first into E3FAD25J and then from there into FADE and then back, but is there a way to do this?
 
Would it work as two separate INTERJECT_COPY_TRANS, one for SoA and one for ToB, as below?
 
INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1 /* ~That day has come, <CHARNAME>.  The great evil struggles within, and has infected the Watcher's Keep to the point where we cannot bypass the creatures and foul magic that blocks our path.~ */
== E3FAD25J IF ~Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
END

 

INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1 /* ~That day has come, <CHARNAME>.  The great evil struggles within, and has infected the Watcher's Keep to the point where we cannot bypass the creatures and foul magic that blocks our path.~ */
== FADE IF ~!Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID)~ THEN @4886
END
 

I would try this

 

INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren1
== E3FAD25J IF ~Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID) Global("E3FadeOdren2","Global",0)~ THEN @4886
END
 
INTERJECT_COPY_TRANS GORODR1 11 E3FadeOdren2
== E3FADEJ IF ~!Global("InToB","GLOBAL",1) InParty("E3FADE") !StateCheck("E3FADE",CD_STATE_NOTVALID) ~ THEN @4886
END
 
 

Edited by Roxanne, 16 November 2016 - 09:51 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#6 Roxanne

Roxanne

    Modder

  • Member
  • 1875 posts

Posted 16 November 2016 - 09:38 PM

Here is an alternative solution, if the dialogue does not work.

 

In E3Fade.bcs put

 

IF

AreaCheck("ar3000")

!Global("InToB","GLOBAL",1)

 InParty("E3FADE")

Global("E3FadeOdren1","Global",0)

THEN
RESPONSE #100

SetGlobal("E3FadeOdren1","Global",1)

END


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*


#7 -S.-

-S.-
  • Guest

Posted 17 November 2016 - 05:55 AM

Thats not the only problem though. Unfortunately version 4 is buggy. Her lovetalk doesn't trigger properly skipping it from 23 to 25 while only romance music plays. Some of her Rasaad's interactions are bugged too.





Reply to this topic