Jump to content

Chapter is still 19 at the beginning of ToB (rare instances)


Recommended Posts

For some rare instances, the chapter remains at 19 at the neginning of ToB instead of being incremented to 20.

 

This happened for a continuous game from SoA to ToB with Imoen giving part of her soul.

 

It was noticed because if this happens, mod NPCs trying to initiate a dialogue about ToB happenings trigger their SoA PID instead, leading to a stutter (it was Ajantis BGII in this case).

 

I have a safe which confirms the chapter is at 19, although reproducing it is difficult and I did not succeed in doing so.

 

The stutter did not occur (and hence, I assume the chapter numbering was alright) in case that Sarevok was told to wait and was given a piece of soul later, and/or if the game was saved in ToB and loaded again.

 

I didn't succeed in seeing how the chapter is set to 20 at the beginning of ToB, does anyone know how it is done?

Link to comment

The chapter is set in EET when you enter Ar4000 (the Ancient Grove) with the stone heads.

It is in the area script in a code block that has

OnCreation().

IF
    OnCreation()
    Global("TurnDay","AR4000",0) 
blabla 
SetGlobal("Chapter","GLOBAL",20)

This is probably something that might break if some mod adds code on TOP of ar4000.bcs and blocks it. OnCreation() never was a good trigger and in EET it is even worse.

 

The best way (and without losing anything, I think) would be to simply remove

IF
OnCreation()
Global("TurnDay","AR4000",0)

THEN

all the blabla

SetGlobal("TurnDay","AR4000",1)

SetGlobal("Chapter","GLOBAL",20)

further blabla

END

 

The question is, how do we do that without k4thos?

 

We can have a simple EXTEND_BOTTOM ar4000.bcs

with

 

IF

Global("TurnDay","AR4000",0)

GlobalLT("Chapter","GLOBAL",20)

Global("MoveChapter","ar4000",0)

THEN

RESPONSE #100

SetGlobal("MoveChapter","ar4000",1)

SetGlobal("Chapter","GLOBAL",20)

END

 

Question - where to put the fix?

 

PS - If you have a save of the problem, could you just add the above code to the bottom of ar4000.bcs and jump to the area to verify that it indeed fixes the issue?

Edited by Roxanne
Link to comment

I currently opened an issue in the EET github repository. Let us see what happens.

 

Longer term, I am considering to turn the BlackPitFix I already contributed to EET into an EET_Fixpack where we could solve things as interim until they are included into EET. Personally I hate this idea after the extremely bad experience made with BWFixpack. But on the other hand, this one would target just one mod and all the entries in the fix can be accompanied by a respective entry in the EET repository.

Edited by Roxanne
Link to comment

Just as a side note

 

The chapter change performed in this way is inherited from the base game. EET only applies its own numbering scheme to the chapters. Missing the chapter increment can therefore happen in non-EET as well. Just the consequences may be less visible.

 

SetGlobal("Chapter","GLOBAL",8) in non-EET.

 

The special case in EET is the handling of PIDs, everything lower than chapter 20 is taking the SoA PIDs, thereafter the ToA PIDs since EET uses a single J-dialogue file for NPCs.

Edited by Roxanne
Link to comment

Very good find find, thank you. I'm not sure where I looked in my search to have overlooked this.

 

My save is in AR4500.are, already.

 

Iit seems I am guilty of blocking the chapter transition with Breagar... will update the mod, soon. This also explains why I couldn't reproduce it, as I tested with Ajantis installed, only.

 

I think an EETFixpack would be appreciated. I am sure k4thos will integrate it as soon as he's back. I'm not playing enough EET myself yet to be in desperate need of one, though - so for me personally waiting longer for k4thos' return is currently an option, too.

Link to comment

Very good find find, thank you. I'm not sure where I looked in my search to have overlooked this.

 

My save is in AR4500.are, already.

 

Iit seems I am guilty of blocking the chapter transition with Breagar... will update the mod, soon. This also explains why I couldn't reproduce it, as I tested with Ajantis installed, only.

 

I think an EETFixpack would be appreciated. I am sure k4thos will integrate it as soon as he's back. I'm not playing enough EET myself yet to be in desperate need of one, though - so for me personally waiting longer for k4thos' return is currently an option, too.

Do not blame yourself - and even if you correct it in your mod, the next one may block it again. It is that stupid use of OnCreation() by bean dog that is still in many places. It serves absolutely no purpose since there is a second global in the block that is checked as well. The only thing it does is that it prevents things from happening if there is a previous event triggering.

Since mods were added, the use of that trigger should be been forbidden...

Link to comment

I am in desperate need of the correct chapter number for Solaufein, as well, as all his banters distinguish whether they are called in SoA or ToB... I am thinking about adding a chapter check and SetGlobal("chapter","GLOBAL",%bg2_chapter_8%) into my mod(s) in AR4500.bcs...

Link to comment

I am in desperate need of the correct chapter number for Solaufein, as well, as all his banters distinguish whether they are called in SoA or ToB... I am thinking about adding a chapter check and SetGlobal("chapter","GLOBAL",%bg2_chapter_8%) into my mod(s) in AR4500.bcs...

Be careful - ToB has 3 chapters

 

Chapter 20 Begin of ToB ------> Reaching Amkethran

Chapter 21 Reaching Amkethran ------> Entering ToB Final

Chapter 22 Final Fight at Throne of Bhaal

 

You visit ar4500 in chapters 20 and 21.

Link to comment

Another culprit mod might be Almateria's Restorations. It does an EXTEND_TOP on ar4000.bcs with a block that looks like this:

 

IF
OnCreation()
THEN
RESPONSE #100
SetGlobal("MasteredTheSlayer","GLOBAL",1)
END

 

Note the lack of a Continue().

 

I've had similar problems with wrong ToB chapter numbers in my recent non-EET BG2EE game, and in several BGT games in the past.

Edited by Angel
Link to comment

IF

OnCreation()

THEN

...

Note the lack of a Continue().

The note is defeated by the OnCreation() ... rather, just the fact that the global is set/changed is the cause, than lack of Continue(). ... As you would newer want to Continue() with setting a global ... but that's a coding thing.
Link to comment

 

IF

OnCreation()

THEN

...

Note the lack of a Continue().

The note is defeated by the OnCreation() ... rather, just the fact that the global is set/changed is the cause, than lack of Continue(). ... As you would newer want to Continue() with setting a global ... but that's a coding thing.

 

 

Yeah, would probably be better to make it EXTEND_BOTTOM and not use the OnCreation() trigger.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...