Jump to content

Ascension 2.0.8 out; report bugs here


DavidW

Recommended Posts

Guest guest

Austin, thanks for reporting the bug. Wouldn't it be better just not to install the improved imoen-player interaction? 

Link to comment
On 5/9/2020 at 9:23 PM, Guest guest said:

Austin, thanks for reporting the bug. Wouldn't it be better just not to install the improved imoen-player interaction? 

It may be so, but the correction that I wrote about will eliminate the incompatibility of the mods and allow you to install them together in full. I do not insist on making these changes. If the authors of the mod consider it necessary, they will include it. I just wrote about the problem and proposed a solution, but maybe it will not be useful to them or they will find a more correct option. In the meantime, for players it is better not to install the "Improved imoen-player interaction" component, as you said.

Edited by Austin
Link to comment
On 4/24/2020 at 2:30 PM, Guest Guest Oob said:

Sorry that sounded harsher than I meant it. Just trying to say that Ascension 2.0.9 has quite a few nasty bugs right now and can't be left in a state like this for so long, being one of Baldur's Gate's main mods. Since the author has much better shit to do right now, it should be up to *other people* to at least provide a lab branch for Ascension so that some people can fix and eventually use it, but more importantly so that David Gaider will only need to verify and pull the code changes with little effort when the time will come. I don't think we should expect parenting a newborn not to suck out energy and most modding time for the next two years, especially since there are other things more important than modding responsibilities when a break can be taken from both kids and work, namely taking care of the couple, friend relationships and generally changing pace.
As an outsider with little involvement in this and no trust from the author, it's not my place to take an initiative, but I would contribute reporting and then fixing the bugs I noted down in a way the community feels like it's the right approach.

I'm not David Gaider. (He led the team that wrote the mod, but hasn't been involved in maintaining it for about 20 years.)

I may have a window in the next few days to do an Ascension fix. No promises though. Just going through the buglist now. (The more egregious bugs here are with Wheels of Prophecy, which of course is also my mod but which is going to require a rather more systematic set of fixes.)

Link to comment

OK, I have the following list of issues culled from this forum and Beamdog:

Bugs:

Main character gets transform power before SH (main thread: Christian, 8/12)
Imoen keeps repeating her 'almost jumping at player's throat' and 'becoming the reaper' conversations (main thread: Drakensang, 8/14)
Non-EE install: warning because SPERMEL isn't being modified (main thread: Heeb, 2/15)
Improved Slayer transformation gets granted 52x/day (main thread: InKal, 3/2)
Very weird install-time problem with iconv (31315-installation-error)
Are we shipping the W64 exe, and if so, do we need to? (30891-win32)
Some challenge rewards may not be being granted (beamdog thread: histaminii, August 2019)

Probably not bugs:

Can't find splstate (main thread: Guest vic, 12/19) - probably too-early a version of EE

Compatibility:

Problems with Iylos, Edwin, Wheels(!), LR being unable to find BALTH2 (main thread: Arthas, 9/27)
Issue with Imoen Romance (main thread: Austin, 5/9)
Install issue with 'cdheld.eff' missing, on a stack of mods (30894-installation-error)

If you read this in the next day or two and see something I've missed, call it out.

Also, if someone who uses Imoen Romance can give me a reliable URL for the current (or latest) version, it would be helpful (I recall previously having some trouble working out which it was).

Link to comment
38 minutes ago, Arthas said:

Yes, this is the latest version (but there is one of the edits that is not yet officially included). The latest official version is here, it was updated and uploaded only today: http://www.blindmonkey.org/imoen/files/Imoen Romance Multi-language.rar

Here is the name of the file that conflicts with Ascension (namely, the
"Improved Imoen-player interaction" component) - imoenRomance\dialogues\TOB\BhaalTalks\BhaalTalks.d. There are other timers for launching dialogues with Imoen about the forces of Bhaal than in Ascension.

Edited by Austin
Link to comment

...okay, going through this, the only significant reproducible bug I can find is that the Slayer power gets granted (and regranted, and regranted...) if you go to Watcher's Keep in SoA.

I've fixed that locally, but I'm wondering if I'm missing something - various people on this thread suggested that there are much more serious issues than this. eg. Oob: "more than a dozen bugs",  "Just trying to say that Ascension 2.0.9 has quite a few nasty bugs right now". Any thoughts? 

Link to comment
34 minutes ago, DavidW said:

...okay, going through this, the only significant reproducible bug I can find is that the Slayer power gets granted (and regranted, and regranted...) if you go to Watcher's Keep in SoA.

I've fixed that locally, but I'm wondering if I'm missing something - various people on this thread suggested that there are much more serious issues than this. eg. Oob: "more than a dozen bugs",  "Just trying to say that Ascension 2.0.9 has quite a few nasty bugs right now". Any thoughts? 

For what it's worth, I've played through the whole thing without any issues. My mod lists tend to be pretty moderate however, so I haven't used Wheels, Imoen romance etc., and I always do WK in ToB so maybe I've just been lucky in avoiding bugs. :p

In any case this version of Ascension is in a far better state than the previous ports from Beamdog forums which had some bosses (Abazigal's humanoid form, Demogorgon) completely broken.

Edited by Lilaina
Link to comment
On 5/9/2020 at 1:17 PM, Austin said:

Hello! Found a bug while installing Ascension 2.0.8 and the Imoen Romance 3.9.6 mod. There is a condition in the bimoen25.d file that starts a conversation with Imoen about the forces of Bhaal (dialogue number 91)

ADD_STATE_TRIGGER bimoen25 91 ~Global("YagaShuraHeart1","GLOBAL",2)~

But in Imoen Romance, this dialogue is tied to Gromnir’s death and is forcibly started 15 minutes after his death (in bhaaltalks.d file). At this moment, the value of the variable YagaShuraHeart1 can in no way be equal to 2. And if both mods are installed at the same time, then the dialog tries to start, but cannot. The dialogue freezes, there is a problem with the movement of the player and Imoen, it is impossible to save and relax (the game constantly remains in the dialogue mode, but it cannot start). The second check of the variable in this file (for dialog 100) also causes a conflict with Imoen Romance.

To do this, you need to replace the lines in the bimoen25.d file with these: 

ADD_STATE_TRIGGER BIMOEN25 91 ~Dead("Gromnir")~
ADD_STATE_TRIGGER bimoen25 100 ~Dead("Yaga01")~

And also replace the verification data in the imoe25.baf file.

In this case, the conflict with the "Imoen romance" mod will be resolved (even while installing the Romance and the component "Improved Imoen-Player interaction" from Ascension).

In the attachment, these two files are modified (ready to be replaced).

Ascension fix Imoen Romance.rar 1.17 kB · 1 download

Firstly, this isn't a bug in Ascension. "YagaShuraHeart1" is set to 2 when you retrieve Yaga Shura's heart from the brazier in the fire giant temple; that's Ascension's condition for when Imoen's second special dialog is set (and has been since the mod was released 20 years ago). I've just tested it; it works fine. Similarly, Ascension's condition for the third talk is that the party have met Balthazar (which is when "MetBal" is set). This is a compatibility issue with Imoen Romance, not an Ascension issue per se.

Secondly, this proposed fix removes the conflict, but at the cost of modifying Ascension so that Imoen's dialog lines play earlier. I'm not willing to do that, as it's a change to Ascension developer intent and that's outside the scope of what I'm willing to do when maintaining someone else's mod.

Thirdly, the problem is occurring with this version of Ascension and didn't occur with previous versions. That's because previously the dialog blocks for Imoen could play just by chance, potentially very (unrealistically) early in the story. I added a gate to prevent that happening: I check for YagaShuraHeart1 and MetBal in the dialog file, not just in the script. Imoen Romance assumes those blocks are just there, and tries to call them; since it's trying to do so slightly early, and keeps doing so until it succeeds, the game stutters. Since this was my change, not in vanilla Ascension - and since Imoen Romance's preferred trigger points are only slightly earlier than mine - I'm happy to edit bimoen25.d to use Imoen Romance's slightly earlier checks. I believe this will avoid the incompatibility without the need to change imoe25.baf.

Fourthly, thanks for the research! 

EDIT: Just as a coding note, someone paying attention might wonder why this doesn't lead to a compatibility problem in Ascension itself: when Ascension calls for these same dialogs slightly later than Imoen Romance, doesn't that cause the same hanging? No, because Ascension's blocks have a variable which guarantees they only fire once. This is probably good practice if you're writing blocks to call a conversation, especially a third-party one that might have been triggered elsewhere. (I'm not showing off my own coding competence: I took it over verbatim from the original Ascension.)

Link to comment
On 9/27/2019 at 5:43 PM, Arthas said:

I don't know if you can do anything about it... but know that

The new Ascension v2.0.6 is not compatible with Iylos, Edwin Romance, Wheels, Longer Road because these mods want to add content to BALTH2 from Ascension v1 that is no longer existing in Ascension v2.

This isn't a compatibility problem exactly, just a communications issue.

BALTH2 is the combat script used by Balthazar if he is on your side in the final battle. It's still in Ascension - but this version of Ascension splits the "You can recruit Balthazar" part of Ascension's main component into a separate component. So if you install "Rewritten final chapter" without "Balthazar can be redeemed", you don't get BALTH2. 

In general, mods that do things differently according to whether Ascension is installed or not may get a bit confused if you install some but not all components in the "Ascension" section of the new version. I can't fix that inside Ascension; the mods need to be edited to make finer-grained allowance for which bits are installed. (In Wheels of Prophecy that's my problem too, of course.)

In the meantime, the workaround is pretty simple: if you're using one of these mods, either install all or none of the components in the 'Ascension' subgroup. (Actually, I suspect that 99% of problems will be solved by making sure you don't install 'rewritten final chapter' without 'Balthazar can be redeemed'.

Link to comment

Sorry for the offtopic, but I was triggered. Hope this doesn't come across as patronizing.

52 minutes ago, DavidW said:

I check for YagaShuraHeart1 and MetBal in the dialog file, not just in the script.

Adding additional checks in the dialogue file is usually not necessary and also not the best practice. It is sufficient to use the trigger variable used in the script and nothing more. The reason is what happened here: additional triggers can lead to a stutter if the additional triggers in the dialogue are not met for some reason. For Ascension alone it's no problem and I understand why Imoen's dialogue is tagged, because you wanted to prevent the engine to call this dialogue earlier because it is scripted into the banter file which gets called randomly by the engine as well. My statement was a general one for scripted dialogues.

57 minutes ago, DavidW said:

No, because Ascension's blocks have a variable which guarantees they only fire once. This is probably good practice if you're writing blocks to call a conversation, especially a third-party one that might have been triggered elsewhere. (I'm not showing off my own coding competence: I took it over verbatim from the original Ascension.)

Again, this works if you are dealing with dialogues in the banter B.dlg file which will be called eventually anyway. If you are talking about scripted dialogues then scripting them the way that the dialogue is only called once is actually bad practice because in case the dialogue start gets disturbed (because the player klicks the mouse or whatever), then the dialogue will not trigger, but the trigger variable will still be open, meaning: either the player triggers it instead of the PID by klick-initiating dialogue, or this dialogue will trigger the next moment a dialogue should fire - with the new dialogue then holding the queue until it is triggered by accident later. This is especially bad for scenery dialogues which would then fire way too late.

In your case here with Imoen's Dialogues in her banter file that's not such a big deal as the engine will call them eventually anyhow. Doing this in scripted dialogues in the j-file however would lead to the skipping and "queueing" of dialogues I described and let to a lot of bugs in the past, that is exactly why Kulyok wrote her tutorial "How to ensure your banters always run when you want them to", so that "skipped and queued" dialogues are no longer a problem. This gave a new kind of bug of course, the stutter bug. But that's a bug which can be fixed, whereas the skipping/queueing of unfired dialogues that are triggered only once is something that can happen randomly to any player wile playing.

To prevent Ascension to trigger Imoen's dialogues a second time after Imoen Romance already did, best practice would be the script checking the variable of that dialogue, e.g. Global("ExpBImoen10","LOCALS",2) for the "Global("YagaShuraHeart1","GLOBAL",2)" dialogue, assuming Imoen Romance doesn't delete this.

In short: for Imoen's dialogues in Ascension using trigger variables that are set once and have nothing to do with the dialogue they are supposed to trigger works, but only because the dialogues are in the B.dlg.  The "Interact()" action can be disturbed by the player giving a click command before it is executed. This wasn't perceived as a bug probably because the engine calls the banter file randomly anyhow so the dialogue could trigger later.

 

Link to comment
Guest
This topic is now closed to further replies.
×
×
  • Create New...