Jump to content

General Bugs Encountered in EET


Roxanne

Recommended Posts

 

I am not sure if this observation is related to the pocket plane issue or not - but it seems that those particular special ability has some strange life of its own:

In my Sandrah RtF mod the game continues (optionally) after ToB end. For this part I remove the pocket plane/slayer abilities from player1 again - at least I try to. In my testing I have found that those removed spells re-appear after exiting and reloading the game, so I needed some extra code to assure the removal in those cases. Maybe what works in the one direction works in the other as well (i.e. in my case removed abilities re-appear, in your case gained abilities dis-appear???). Just a wild guess.

What do you do to remove the ability ? Asking cause I have made a way to regain innate spells, with timers. As an extension of the iispellsystemadjustment mod... and have and might still run into these. I simply use opcodes 171 and 172 to do that, something to this effect:

LPF ~ADD_SPELL_EFFECT~ INT_VAR opcode = 172 target = 1 timing = 1 resist_dispel = 2 probability1 = 100 STR_VAR resource = EVAL "%SOURCE_RES%" END
LPF ~ADD_SPELL_EFFECT~ INT_VAR opcode = 171 target = 1 timing = 4 resist_dispel = 2 duration = timer0 probability1 = 100 STR_VAR resource = EVAL "%SOURCE_RES%" END

At this time (for EET) I have gone back to the basics with a script

 

IF

OnCreation()

GlobalGT("SanBeginRTF","GLOBAL",1)

THEN

RESPONSE #100

ActionOverride(Player1,RemoveSpellRES("spin649")) // Pocket Plane

ActionOverride(Player1,RemoveSpellRES("spin822")) // Slayer Change

Continue()

END

 

I had experimented with a spell that used opcode 172 but it made no difference, the abilities re-appeared after re-loads.

 

Maybe a solution for the unwanted loss is some similar code to give the ability if missing and check with the respective globals + chapter conditions?

Link to comment
Easy to reproduce: I take my savegame at the VERY beginning of ToB. I do the first challange (after talking to/reviving Sarevok) and I get the pocket plane Ability. Save and reload. I don't have it anymore :( The other guy (from the post above), don't seem to use EET (he has not posted weidu.log but he said he used BWS...). So no EET related.

Very strange, according to NI, my char has SPIN649.SPL in my 1st savegame... it disapear when loading the save game... thus, it's not saved anymore...

Fouinto, I can reproduce it even on vanilla game if I teleport to AR4000 without using MoveToExpansion(). It looks like the engine has hardcoded SPIN649 spell cleaning done on save reload. It removes it if the game is not detected as expansion. Here is a fix:

COPY_EXISTING ~BALDUR.EXE~ ~BALDUR.EXE~
    REPLACE_TEXTUALLY ~SPIN649~ ~~ (7)

Roxanne, this will probably fix your problem too.

 

So we will just need to implement manual SPIN649 spell removal when someone imports a new character at the beginning of the game. Thanks for the report.

 

edit: to save you time you can use the pre-made tp2 file: https://www.sendspace.com/file/o7c360

Please let me know if there are more spells like this other than Pocket Plane

 

edit2: Roxanne, since the SPIN822 is also mentioned in the EXE file add this to above code:

REPLACE_TEXTUALLY ~SPIN822~ ~~ (7)

didn't test this one, but should work considering removing SPIN649 from the EXE doesn't seem to change anything other than removing the hardcoded implementation.

Link to comment

Your fix works :worship: :worship: :worship:

 

I am not sure how many full-run I have done with BG2EE but I guess at least 4 vanilla BG2EE and 2 EET (it's my third attempt).

So, I wonder why I haven't encountered it sooner...

 

BTW, Thank you :beer:

Link to comment

@Roxanne, for removing spells/abilities, I have done it successfully by following two rules:

 

1) The ability's filename must be 7 letters long - NOT 8.

 

2) I put the 172 removal effect in a "Global Effect" (to use NI terminology), i.e. it is not within an extended header in the .spl.

 

Incidentally, I've recently had an issue where innate abilities were not successfully removed... these .spl files have 6 letters in their filenames. I need to do more testing to be sure, but it looks like the rule is not just "<8 letters" but rather that 7 really is the magic number for this purpose.

 

OTOH after reading k4thos' post above I would guess that the Sandrah issue has to do with the game executable. Seems like whenever you begin play in the post-SoA expansion, it gives you SPIN649... and whenever you begin play *not* in the expansion, the game takes it away.

Link to comment

 

Easy to reproduce: I take my savegame at the VERY beginning of ToB. I do the first challange (after talking to/reviving Sarevok) and I get the pocket plane Ability. Save and reload. I don't have it anymore :( The other guy (from the post above), don't seem to use EET (he has not posted weidu.log but he said he used BWS...). So no EET related.

Very strange, according to NI, my char has SPIN649.SPL in my 1st savegame... it disapear when loading the save game... thus, it's not saved anymore...

Fouinto, I can reproduce it even on vanilla game if I teleport to AR4000 without using MoveToExpansion(). It looks like the engine has hardcoded SPIN649 spell cleaning done on save reload. It removes it if the game is not detected as expansion. Here is a fix:

COPY_EXISTING ~BALDUR.EXE~ ~BALDUR.EXE~
    REPLACE_TEXTUALLY ~SPIN649~ ~~ (7)

Roxanne, this will probably fix your problem too.

 

So we will just need to implement manual SPIN649 spell removal when someone imports a new character at the beginning of the game. Thanks for the report.

 

edit: to save you time you can use the pre-made tp2 file: https://www.sendspace.com/file/o7c360

Please let me know if there are more spells like this other than Pocket Plane

 

edit2: Roxanne, since the SPIN822 is also mentioned in the EXE file add this to above code:

REPLACE_TEXTUALLY ~SPIN822~ ~~ (7)

didn't test this one, but should work considering removing SPIN649 from the EXE doesn't seem to change anything other than removing the hardcoded implementation.

 

 

 

Your fix works :worship: :worship: :worship:

 

I am not sure how many full-run I have done with BG2EE but I guess at least 4 vanilla BG2EE and 2 EET (it's my third attempt).

So, I wonder why I haven't encountered it sooner...

 

BTW, Thank you :beer:

I have installed your fix for both SPIN649 and 822.

I have removed my code to remove these spells OnCreation from the script.

Saved and reloaded my post-ToB game several times and the spells stay disabled (as should be in this case).

I cannot test the reverse case of Fouinto as it worked correctly in my ToB part (why I do not know, luck?).

 

So what does it mean -

1) will this be a feature of EET when it comes out or do I need to implement into my own mod (should I decide to publish it)?

2) I would still need a (one time) event to remove the two spells at the start of my post-ToB extension, like it was my initial design?

Link to comment
I am not sure how many full-run I have done with BG2EE but I guess at least 4 vanilla BG2EE and 2 EET (it's my third attempt).

 

I cannot test the reverse case of Fouinto as it worked correctly in my ToB part (why I do not know, luck?).

Fouinto's bug is a recent regression caused by the removal of MoveToExpansion(). You are using older beta that didn't have this problem (although your problem was always there even on vanilla engine since it was hardcoded). And that guy on SHS had the same issue on non-EET game probably because he didn't finish the BG2 game and simply teleported to the expansion at some point.

 

edit:

1) will this be a feature of EET when it comes out or do I need to implement into my own mod (should I decide to publish it)?

you mean the exe hacking? It will be implemented by default.

 

2) I would still need a (one time) event to remove the two spells at the start of my post-ToB extension, like it was my initial design?

yes. Or you can use the existing spell that removes all bhaal powers (including those 2 spells):

ReallyForceSpellRES("K#REMBHA",Player1)

here is updated K#REMBHA.SPL that will be included in the next update:

https://www.sendspace.com/file/e4budn

Link to comment

 

I am not sure how many full-run I have done with BG2EE but I guess at least 4 vanilla BG2EE and 2 EET (it's my third attempt).

 

I cannot test the reverse case of Fouinto as it worked correctly in my ToB part (why I do not know, luck?).

Fouinto's bug is a recent regression caused by the removal of MoveToExpansion(). You are using older version of EET. And that guy had the same issue on non-EET game probably because he didn't finish the BG2 game and simply teleported to the expansion at some point.

 

edit:

1) will this be a feature of EET when it comes out or do I need to implement into my own mod (should I decide to publish it)?

you mean the exe hacking? It will be implemented by default.

 

2) I would still need a (one time) event to remove the two spells at the start of my post-ToB extension, like it was my initial design?

yes. Or you can use the existing spell that removes all bhaal powers (including those 2 spells):

ReallyForceSpellRES("K#REMBHA",Player1)

here is updated K#REMBHA.SPL that will be included in the next update:

https://www.sendspace.com/file/e4budn

 

Thanks for clarification.

It also explains in hindsight why my removal never worked in BGT.

 

And just as a big Thank You and Encouragement for your work on EET:

My post-ToB expansion with revisiting all of the known game world (plus some 100 new areas that I add) works wonderful with the EET new features. Probably IWD expansion will work just as fine.

(Minor point - the dead Khalid and shadow thieves in Irenicus Dungeon are no longer removable like they were in BGT??? Cosmetics...)

Link to comment
(Minor point - the dead Khalid and shadow thieves in Irenicus Dungeon are no longer removable like they were in BGT??? Cosmetics...)

from what I see they are implemented exactly the same in AR0603.ARE as in BGT. References to death actor CRE files with "pernament corpse" flags. They all have DVs, so should be able to be called by scripts. ActionOverride("DeadKhalid",DestroySelf()) or Deactivate("DeadKhalid") when used in the same area doesn't work?

Link to comment

 

(Minor point - the dead Khalid and shadow thieves in Irenicus Dungeon are no longer removable like they were in BGT??? Cosmetics...)

from what I see they are implemented exactly the same in AR0603.ARE as in BGT. References to death actor CRE files with "pernament corpse" flags. They all have DVs, so should be able to be called by scripts. ActionOverride("DeadKhalid",DestroySelf()) or Deactivate("DeadKhalid") when used in the same area doesn't work?

 

I used that code, yes, and it worked in BGT but has no effect in EET - I also checked the mos to see if they were permanent but no. I was assuming that in the new game the scripts on dead creatures may not work?

I used both variations you proposed.e.g.

 

IF

Global("FiendsRTF","ar0603",3)

THEN

RESPONSE #100

TriggerActivation("Khalid Info",FALSE) ok

TriggerActivation("Jar 8 broken",FALSE) ok

Deactivate("Deadkhalid") no effect

 

 

 

Link to comment

I've just tested it on patch 2.0 and it doesn't work there too. If this indeed worked on vanilla BG2 engine than I would consider it an engine bug that affects mods and limits what we can achieve in the engine, so worth reporting to Beamdog. I'm extremly busy right now to do it though. Anyone have time to test it in other places (to be sure that non-party dead creatures indeed don't react to anything and it's not something else going on here) and prepare proper repo steps if this is the case that are needed to report it? Not only text but also saves made on vanilla BG2:EE and vanilla BG2 games (no mods) and explanation how to test it quickly (for example using BS code like this added to scripts folder and attached in game to player)

IF
  HotKey(S)
THEN
  RESPONSE #100
    Deactivate("Deadkhalid")
    ActionOverride("DeadKhalid",DestroySelf())
    DisplayStringHead(Player1,1)
    Continue()
END
Link to comment

You have to remove the creature corpse(dkhalid.cre), and the two points of interest, the info trigger(Khalid Info) and the proximity trigger (DeadKhalid) from the ar0603.are file. ...

At least in the v1.3 BG2EE... :p

Link to comment

You have to remove the creature corpse(dkhalid.cre), and the two points of interest, the info trigger(Khalid Info) and the proximity trigger (DeadKhalid) from the ar0603.are file. ...

At least in the v1.3 BG2EE... :p

 

 

proximity trigger indeed has the same name as DV, so this may be the reason why corpse doesn't react. This problem needs testing. If someone has time for it - please do so.

This was the issue - I changed khalid's DV in a savegame + script and the script works and he's gone...now I need to look at those dead thieves littering the area..

For my own mod I can use this method to get rid of the stuff as this happens after the *normal* game has ended, But it will have an effect on anyone who tries to use the vanille DV of either the trap or the dead Khalid, so I rather should not. On the other hand - I know of no mod that uses Irenicus Dungeon at a later point in the game...

Any ideas?

Link to comment

 

You have to remove the creature corpse(dkhalid.cre), and the two points of interest, the info trigger(Khalid Info) and the proximity trigger (DeadKhalid) from the ar0603.are file. ...

At least in the v1.3 BG2EE... :p

 

 

proximity trigger indeed has the same name as DV, so this may be the reason why corpse doesn't react. This problem needs testing. If someone has time for it - please do so.

This was the issue - I changed khalid's DV in a savegame + script and the script works and he's gone...now I need to look at those dead thieves littering the area..

For my own mod I can use this method to get rid of the stuff as this happens after the *normal* game has ended, But it will have an effect on anyone who tries to use the vanille DV of either the trap or the dead Khalid, so I rather should not. On the other hand - I know of no mod that uses Irenicus Dungeon at a later point in the game...

Any ideas?

Check if Zirael's BG2 Khalid mod is not doing something with body already: http://www.shsforums.net/topic/47899-khalid-mod-for-bg-ii/

Other than this nothing comes to my mind.

Link to comment

 

 

You have to remove the creature corpse(dkhalid.cre), and the two points of interest, the info trigger(Khalid Info) and the proximity trigger (DeadKhalid) from the ar0603.are file. ...

At least in the v1.3 BG2EE... :p

 

 

proximity trigger indeed has the same name as DV, so this may be the reason why corpse doesn't react. This problem needs testing. If someone has time for it - please do so.

This was the issue - I changed khalid's DV in a savegame + script and the script works and he's gone...now I need to look at those dead thieves littering the area..

For my own mod I can use this method to get rid of the stuff as this happens after the *normal* game has ended, But it will have an effect on anyone who tries to use the vanille DV of either the trap or the dead Khalid, so I rather should not. On the other hand - I know of no mod that uses Irenicus Dungeon at a later point in the game...

Any ideas?

Check if Zirael's BG2 Khalid mod is not doing something with body already: http://www.shsforums.net/topic/47899-khalid-mod-for-bg-ii/

Other than this nothing comes to my mind.

 

Yes, I checked that one but there will be no conflict as the Khalid mod uses the proximity trigger at the BG2 start while my script disables things in the dungeon long after ToB finish. And no mod nor the original game seems to ever use dead Khalid's 10-letter DV.

 

What puzzles me is why all of it worked back in BGT???

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...