Jump to content


Photo

Looping banters - variables are not set during some dialogues


  • Please log in to reply
3 replies to this topic

#1 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 23 September 2015 - 01:01 PM

I've been playing the trilogy, but found that banters would often loop themselves. Upon investigation, I found that the looping was caused by the "banter has fired" variable not being set after the banter fired. Further experimentation revealed that this would only happen when the dialogue would jump multiple times between different DLG files (E.G. as banters normally do; however, this might also happen in a game-critical bug, due to NPC interjections and/or the dialogue bouncing between multiple creatures). As such, I'm asking if anybody else had the same problem and/or found a solution for said issue.

test mod - wait for Shank and Carbos to be spawned, and talk to Shank to activate the various dialogue paths. In my game, the Shank -> (SetGlobal) Shank -> Carbon option will save the variable, while neither Shank -> (SetGlobal) Shank -> Carbon -> Shank nor Shank -> (SetGlobal) Carbon -> Shank will save said variable. Also, adding a dozen of extra states to either dialogue file (E.G. ~OK!~ = ~OK!~ = OK!~ ...) would not change the result of the test.

Other information:
- WeiDU.log
- pseudo change-log of key TobEx files
- OS is Windows 10 Home
- I'm running the traditional disk-based BG2 (latest non-beta patch applied, etc.)
- baldur.log, baldur.err and tobex.log don't contain anything relevant
- I have not been fast-clicking through the dialogues
- LSTest is not relevant since this is a intra-dialogue problem
- the problem is not present in the same machine, on a plain install of BG2 + patch + tobex (same components) + test mod

Edited by the bigg, 23 September 2015 - 01:07 PM.

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.


#2 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 23 September 2015 - 01:59 PM

I've been playing the trilogy, but found that banters would often loop themselves. Upon investigation, I found that the looping was caused by the "banter has fired" variable not being set after the banter fired. Further experimentation revealed that this would only happen when the dialogue would jump multiple times between different DLG files (E.G. as banters normally do; however, this might also happen in a game-critical bug, due to NPC interjections and/or the dialogue bouncing between multiple creatures). As such, I'm asking if anybody else had the same problem and/or found a solution for said issue.

test mod - wait for Shank and Carbos to be spawned, and talk to Shank to activate the various dialogue paths. In my game, the Shank -> (SetGlobal) Shank -> Carbon option will save the variable, while neither Shank -> (SetGlobal) Shank -> Carbon -> Shank nor Shank -> (SetGlobal) Carbon -> Shank will save said variable. Also, adding a dozen of extra states to either dialogue file (E.G. ~OK!~ = ~OK!~ = OK!~ ...) would not change the result of the test.

Other information:
- WeiDU.log
- pseudo change-log of key TobEx files
- OS is Windows 10 Home
- I'm running the traditional disk-based BG2 (latest non-beta patch applied, etc.)
- baldur.log, baldur.err and tobex.log don't contain anything relevant
- I have not been fast-clicking through the dialogues
- LSTest is not relevant since this is a intra-dialogue problem
- the problem is not present in the same machine, on a plain install of BG2 + patch + tobex (same components) + test mod

I have not encountered said problem in a very large BGT installation that I use as a baseline for mod development while playing the game (including my own mod) itself.

However, when i started to develop and test additional content I experienced the behaviour you describe on some of the new stuff (and I am sure that I do my dialogues correctly),

I have narrowed the issue down to this.

- it happens when I use CHAIN

- it happens when multiple NPCs talk their bit

- it happens when I put the "banter has fired" variable increment after the first talk (as you normally do in CHAIN)

- it does not happen if I END the chain, give the PC a line or several choices to say and put the variable increment into those responses

Some other background

It started to happen before I updated to Windows 10 home, so this is not the culprit (at least not for this issue).

I am using the ISO files of my decade old game, just like I do for numerous installations I did over the past years.

I have several parallel installations of different mod constellations that I use for testing

 

The modded part in which the issue appears is the ToB part of the game past the end of the original game. I was therefore first assuming that I might have reached some storage limit for variables as I start adding them on to a very large save file. Still that would not explain why it only happens with CHAIN, but not when PC is the *actor*.

 

Sorry, I can only provide a collection of symptoms - i have no clear idea of where to look for the source of the problem because I have not really changed anything in my setup prior to the first occurance of the behaviour.


Edited by Roxanne, 23 September 2015 - 02:00 PM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#3 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 23 September 2015 - 11:57 PM

I've been playing the trilogy, but found that banters would often loop themselves. Upon investigation, I found that the looping was caused by the "banter has fired" variable not being set after the banter fired. Further experimentation revealed that this would only happen when the dialogue would jump multiple times between different DLG files (E.G. as banters normally do; however, this might also happen in a game-critical bug, due to NPC interjections and/or the dialogue bouncing between multiple creatures). As such, I'm asking if anybody else had the same problem and/or found a solution for said issue.

test mod - wait for Shank and Carbos to be spawned, and talk to Shank to activate the various dialogue paths. In my game, the Shank -> (SetGlobal) Shank -> Carbon option will save the variable, while neither Shank -> (SetGlobal) Shank -> Carbon -> Shank nor Shank -> (SetGlobal) Carbon -> Shank will save said variable. Also, adding a dozen of extra states to either dialogue file (E.G. ~OK!~ = ~OK!~ = OK!~ ...) would not change the result of the test.

Other information:
- WeiDU.log
- pseudo change-log of key TobEx files
- OS is Windows 10 Home
- I'm running the traditional disk-based BG2 (latest non-beta patch applied, etc.)
- baldur.log, baldur.err and tobex.log don't contain anything relevant
- I have not been fast-clicking through the dialogues
- LSTest is not relevant since this is a intra-dialogue problem
- the problem is not present in the same machine, on a plain install of BG2 + patch + tobex (same components) + test mod

I have not encountered said problem in a very large BGT installation that I use as a baseline for mod development while playing the game (including my own mod) itself.

However, when i started to develop and test additional content I experienced the behaviour you describe on some of the new stuff (and I am sure that I do my dialogues correctly),

I have narrowed the issue down to this.

- it happens when I use CHAIN

- it happens when multiple NPCs talk their bit

- it happens when I put the "banter has fired" variable increment after the first talk (as you normally do in CHAIN)

- it does not happen if I END the chain, give the PC a line or several choices to say and put the variable increment into those responses

Some other background

It started to happen before I updated to Windows 10 home, so this is not the culprit (at least not for this issue).

I am using the ISO files of my decade old game, just like I do for numerous installations I did over the past years.

I have several parallel installations of different mod constellations that I use for testing

 

The modded part in which the issue appears is the ToB part of the game past the end of the original game. I was therefore first assuming that I might have reached some storage limit for variables as I start adding them on to a very large save file. Still that would not explain why it only happens with CHAIN, but not when PC is the *actor*.

 

Sorry, I can only provide a collection of symptoms - i have no clear idea of where to look for the source of the problem because I have not really changed anything in my setup prior to the first occurance of the behaviour.

I found this hint recently but have not tested the new feature yet

http://gibberlings3....592#entry238679

Maybe this solves something?


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#4 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 24 September 2015 - 11:10 AM

I started a new game and found that the bug is still there, so this is unrelated to the number of instantiated GLOBAL variables.

Upon changing the dialogue to use DialogueSetGlobal I found that:

- something overwrote Action.ids, undoing the APPENDs performed by TobEx
- upon fixing action.ids, DialogueSetGlobal will correctly set the variables by running the test dialogue, but stops doing so after firing the dialogue five times (no matter the order in which options are chosen)
- further investigation of #1 found that --change-log doesn't extract the various versions of action.ids; by emulating --change-log via BASH commands I found out that somehow TobEx was installed in dummy mode (the mod is in WeiDU.log, but the backup directory and UNINSTALL.100 files are empty)

Given the dummied out mods, I'm afraid my install is FUBAR; I'll try reinstalling the games over the week-end and seeing if I can narrow the problem down to something specific.

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.