Jump to content


Photo

[Research] The 'my transition is stuck' thread


  • Please log in to reply
85 replies to this topic

#61 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 22 November 2015 - 03:47 AM

@ waebbl

 

You may try this

Put attached file into override folder

Go to the quicksave to talk to Gorion again

The cutscene with Imoen appearing should repeat

If you get stuck again you should be having your controls again so you could act yourself

e.g. strg+J out of the cage for Imoen to reach you or initiate talk with her

attachicon.gifNEWGAME.BCS

I finally found the issue blocking Imoen from your cage - it is your familiar (a Cat, green circled so this is why I think it is the familiar, she was also sitting next to your PC in Gorion's scene) she is sitting right in front of the cage door and Imoen cannot reach the door.

I have never used familiars myself and know not how they are handled - Can you tell her to go somewhere prior to starting the final talk with Gorion?

And maybe with this - it has become again a transition issue in the wider sense = transition with a familiar case.

 

In order to find it, I have again modified the cutscene script slightly - you get your full controls earlier, you will be able to see the cat and can move her out of Imoen's way so she does not get stuck - worked for me.

attachicon.gifNEWGAME.BCS

 

Edit I saw WTPFamiliars mod in your Weidu log - worth to investigate if that mod does something to the transition of familiars??

PS With strg+y on poor Kitty before talking to Gorion there was finally not any issue so it is definitly the familiar blocking Imoen from opening your cell.

(and maybe this is helpful for many others who had this problem as the familiar is not visible as long as the cutscene is running, i.e. you never see the problem as the cutscene hangs....a vicious circle)


Edited by Roxanne, 22 November 2015 - 03:51 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#62 waebbl

waebbl
  • Member
  • 29 posts

Posted 22 November 2015 - 04:33 AM

 
By that point actually the transition has finished - it is more being stuck at BG2 start (I mention this just in case you may want to search for all those forum entries that talk about the case "Imoen walks up to my cage and has nothing to say" - there are loads of them.)


From a technical view, the transition might be finished. From a players view, I'm as long in the transition (interrupted by the Candlekeep Chores, if I chose to play them), as I don't have control of my character.
 

If I understand correctly you are hung in cutscene mode? So you are not able to talk to Imoen yourself.??
This is what happens
Wait(3)
        ActionOverride("Imoen2",OpenDoor("DOOR11"))
        ActionOverride("Imoen2",MoveToPoint([3405.2924]))
        ActionOverride("Imoen2",Face(0))
        ActionOverride("Imoen2",SmallWait(5))
        ActionOverride("Imoen2",MultiPlayerSync())
        ActionOverride("Imoen2",MoveToObject(Player1))
        ActionOverride("Imoen2",Unlock("Cell03"))     >>>>This is where you maybe are stuck
        ActionOverride("Imoen2",OpenDoor("Cell03"))
        ActionOverride("Imoen2",MultiPlayerSync())
        ActionOverride("Imoen2",UnhideGUI())     >>> Here you get your controls back again
        ActionOverride("Imoen2",Dialogue(Player1))
        DestroySelf()
 
And if that is true, this is original code unaffected by the transition that fails. If you can confirm my analysis we could probably provide a quick solution for it in a minute.

 
Not only, can I talk to her, but I can do nothing, not even open the console. Your analysis is right, this is exactly the location where I was stuck.
Would you tell me, in which file this code you posted here is in? I tried to find it, without success...
 
 

I finally found the issue blocking Imoen from your cage - it is your familiar (a Cat, green circled so this is why I think it is the familiar, she was also sitting next to your PC in Gorion's scene) she is sitting right in front of the cage door and Imoen cannot reach the door.
I have never used familiars myself and know not how they are handled - Can you tell her to go somewhere prior to starting the final talk with Gorion?
And maybe with this - it has become again a transition issue in the wider sense = transition with a familiar case.


I was indeed the cat. I can ask her to climb into my backpack. When I do this, right before the last talk with Gorion, the cutscene finishes without issues, the dialog with Imoen starts and I regain control. Only thing, my familiar's gone from the inventory once I regain control. That's not a big issue, as I simply can recast a new familiar. It is just a slight cheat, because I didn't loose a point of CON and gain HP points from my new familiar.
 

Edit I saw WTPFamiliars mod in your Weidu log - worth to investigate if that mod does something to the transition of familiars??

 

I haven't looked into that yet.


Edited by waebbl, 22 November 2015 - 09:55 AM.


#63 waebbl

waebbl
  • Member
  • 29 posts

Posted 22 November 2015 - 04:41 AM

How's the licensing of those mods? I haven't looked at many, but a lot of what I've seen have a very liberal license. So, what about importing the code of those mods, whose devs are gone or don't longer care about their mods, into github? They don't need to be changed much, just so, that they work for the transition or for fixing bugs. We only need one or a couple of people willing to maintain the repositories. :devil:
Well, considering that none of the BG mods are actually legistlatively protected by any kind of law, or instance(with the exacption of ALL the BG2 mod forums)... we are deep on the gray zone. You can lie to your users and put a users prefered copyright to your readme, but like said, it's a lie.
As modifying a file doesn't make it yours.
Weidu.exe can't actually make a BG2 files, so that their entire content would be considerable to be yours.

It's mostly honor bound system. Just like it's an honor bound to not to destroy the users game files, computer etc if you install a random mod. That kind of thing.
And also using others files can be called bad practice, but doing so is a guestion of worth. Usually it's not worth to cause a lot of mess by intentionally causing bad things.

I thought I've seen some BSD style or GPL licenses hanging around in some of the mods folders, but I might be wrong.

 

Isn't it so, that every mod dev could just pack a license with his code and so protect it legislatively? I suppose it's like every other software in this case. How's you come to the conclusion, none of the mods is protected by any law?



#64 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5148 posts

Posted 22 November 2015 - 04:45 AM

Would you tell me, in which file this code you posted here is in? I tried to find it, without success...
Should be the newgame.bcs file, yes, you need the Near Infinity or DLTCEP or yet some other IE scripting tool to open the file properly to see the .baf conversion of it, aka the non hexadecimal game only data, so you can actually read it ...
Isn't it so, that every mod dev could just pack a license with his code and so protect it legislatively? I suppose it's like every other software in this case. How's you come to the conclusion, none of the mods is protected by any law?
Well, you are modifying a licenced game, and your purchase licence doesn't actually allow you to do modifications to the game. Aka you are doing something that you could be sued on... by ATARI today, as you do not have a development licence(or what ever the legal term actually is). If they have a legimite claim on you doing something that damages their product, or other reasons.... which usually is not the case, but you can be sued still.

The Enhanced Edition team has the software development licence for some of the IE games.
Yes, it's the same thing for every hard- and software out there. Basically. Aka you can't make a McDonald's burgers even if you payed for one to eat ...

Edited by The Imp, 22 November 2015 - 05:12 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.


#65 Lollorian

Lollorian

    smiley addict

  • Member
  • 4150 posts

Posted 22 November 2015 - 04:51 AM

Like the Imp said, modding is usually honor bound - modders usually neither have the time nor resources to pursue any license breaches. It's usually the community itself that ostracizes any blatant breachers and wrongdoers :)

 

Just give credit where credit is due and respect people's work - nothing wrong with taking an old mod and improving on it's coding - and if you do want to change the original mod just make sure you call it "waebbl's version of XYZ mod" :P

 

The BG modding community is nice about these things - not like those cesspools you see in the VtMB and Oblivion circles :ermm:


"I am the smiley addict, yellow and round, this is my grin :D when I'm usually around :P.
When there's trouble brewing, see me post, cuz it's usually a wall o' yellow and your eyes are toast!!!"

BWP GUIDE - BWP FIXES - impFAQ - NPC LIST - KIT LIST - AREA LIST

GitHub Links : BWP Fixpack | Lolfixer | BWP Trimpack | RezMod


#66 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 22 November 2015 - 04:56 AM

 
By that point actually the transition has finished - it is more being stuck at BG2 start (I mention this just in case you may want to search for all those forum entries that talk about the case "Imoen walks up to my cage and has nothing to say" - there are loads of them.)


From a technical view, the transition might be finished. From a players view, I'm as long in the transition (interrupted by the Candlekeep Chores, if I chose to play them), as I don't have control of my character.
 

If I understand correctly you are hung in cutscene mode? So you are not able to talk to Imoen yourself.??
This is what happens
Wait(3)
        ActionOverride("Imoen2",OpenDoor("DOOR11"))
        ActionOverride("Imoen2",MoveToPoint([3405.2924]))
        ActionOverride("Imoen2",Face(0))
        ActionOverride("Imoen2",SmallWait(5))
        ActionOverride("Imoen2",MultiPlayerSync())
        ActionOverride("Imoen2",MoveToObject(Player1))
        ActionOverride("Imoen2",Unlock("Cell03"))     >>>>This is where you maybe are stuck
        ActionOverride("Imoen2",OpenDoor("Cell03"))
        ActionOverride("Imoen2",MultiPlayerSync())
        ActionOverride("Imoen2",UnhideGUI())     >>> Here you get your controls back again
        ActionOverride("Imoen2",Dialogue(Player1))
        DestroySelf()
 
And if that is true, this is original code unaffected by the transition that fails. If you can confirm my analysis we could probably provide a quick solution for it in a minute.

 
Not only, can I talk to her, but I can do nothing, not even open the console. Your analysis is right, this is exactly the location where I was stuck.
Would you tell me, in which file this code you posted here is in? I tried to find it, without success...
 
 

I finally found the issue blocking Imoen from your cage - it is your familiar (a Cat, green circled so this is why I think it is the familiar, she was also sitting next to your PC in Gorion's scene) she is sitting right in front of the cage door and Imoen cannot reach the door.
I have never used familiars myself and know not how they are handled - Can you tell her to go somewhere prior to starting the final talk with Gorion?
And maybe with this - it has become again a transition issue in the wider sense = transition with a familiar case.


I was indeed the cat. I can ask here to climb into my backpack. When I do this, right before the last talk with Gorion, the cutscene finishes without issues, the dialog with Imoen starts and I regain control. Only thing, my familiar's gone from the inventory once I regain control. That's not a big issue, as I simply can recast a new familiar. It is just a slight cheat, because I didn't loose a point of CON and gain HP points from my new familiar.
 

Edit I saw WTPFamiliars mod in your Weidu log - worth to investigate if that mod does something to the transition of familiars??

 

I haven't looked into that yet.

 

The code block is the very last part of Newgame.bcs which is the complete long cutscene when you are in the dungeon showing the Irenicus experiments on the PC and then the shadow thief attack and finally Imoen coming to free you.

The loss of familiar in backpack is a known issue, and several mods have tried their hand in providing solutions.

So - welcome to Amn!!


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#67 waebbl

waebbl
  • Member
  • 29 posts

Posted 22 November 2015 - 09:36 AM

Well, you are modifying a licenced game, and your purchase licence doesn't actually allow you to do modifications to the game. Aka you are doing something that you could be sued on... by ATARI today, as you do not have a development licence(or what ever the legal term actually is). If they have a legimite claim on you doing something that damages their product, or other reasons.... which usually is not the case, but you can be sued still.

 
Hmm, yes, I forgot they didn't pack a "Construction Set" or some other approach to legally extend their IE games with them... :crying:
 

Just give credit where credit is due and respect people's work - nothing wrong with taking an old mod and improving on it's coding - and if you do want to change the original mod just make sure you call it "waebbl's version of XYZ mod" :P
 

 
This is something, I am very well used to from the OSS community.
 

The code block is the very last part of Newgame.bcs which is the complete long cutscene when you are in the dungeon showing the Irenicus experiments on the PC and then the shadow thief attack and finally Imoen coming to free you.

The loss of familiar in backpack is a known issue, and several mods have tried their hand in providing solutions.
So - welcome to Amn!!

 
Thanks for the hint to newgame.bcs, both to Roxanne and The Imp :new_thumbs:
 
The cbct3500.bcs file (which is, for my installation the last cutscene with Gorian, which itself calls the newgame cutscene) has a call to DestroyAllEquipment(), which is supposedly removing my familiar from the inventory.
 
 

LeaveAreaLUA("AR0602","",[3190.3300],2)         
MoveViewPoint([3744.2799],INSTANT)         
TakePartyGold(2147483647)         
DestroyAllEquipment()         
SmallWait(5)
JumpToPoint([3744.2799])
Face(2)
MoveViewPoint([3744.2799],INSTANT)
Wait(1)
FadeFromColor([30.0],0)
Wait(1)
SetGlobal("KD_ChoresDone","GLOBAL",1)
StartCutScene("NEWGAME")


#68 waebbl

waebbl
  • Member
  • 29 posts

Posted 22 November 2015 - 09:49 AM

My approach to the issue would be to create a dedicated mini-mod for this.

The mod would be based on a stripped down version of Vlad's script (stripping all the NEJ specifics and retaining the generic parts) no copyright issue here as Vlad has offered his work for such a purpose.

This *basic script* would

- transit the apppropriate vanilla NPCs (Imoen,Minsc, Jaheira to BG2)

- it would remove all other NPCs from the party and the game

- it would move some vanilla items to Irenicus Dungeon

- it would contain a check for a NEJ specific Global and only fire if that one is zero

 

This mod goes into the install sequence just after BGT and prior to NEJ

(Option A to either overwrite original ARAM00,bcs - in this particular case I really advocate overwriting instead of appending, otherwise we replace one mess by another Option B trigger a new scene by Belt weighted dialogue to let everything happen in ARAM01)

 

If NEJ is installed it would EXTEND_TOP *basic script* and set a specific global such that it fires its extended script instead of basic

 

No other NPC or other mod would be required to add to this script unless

- they want a transition for their PC to SoA (in this case EXTEND_TOP *new script* such that the selected PC is moved into Amn before the big cleanup starts

- a mod that has the BGT transition AND a BG2 version of their NPC must also take care to avoid double spawning in the BG2 areas of their NPC (this is not necessarily ar0602, so it is for the modmaker to assure that - just simply set a global if NPC is in transition party, only spawn in BG2 if said global is zero)

- as for cheating items from BG1 to BG2, I think this is outdated and must not be part of the transition - use packmule, use the rod of refuge area, use Sandrah's feature to recover lost valuables, or simply make use of all the new merchants in Amn and pay with merchant legue checks...take it as a good chance to get rid of all the garbage you have accumulated.

 

Wouldn't it be nice, to have no longer needed GLOBALs deleted during the transition? My first save after the start of BG2 has way more than 1000 global variables in it... I guess, this slows loading, and processing and even gameplay down in some way. Or does it not affect the gameplay at all?

 

If there's a way that is... I checked the IESDP and didn't find a function to perform such an action. Well there would alway be a way of hex pattern matching and replacing using WeiDU or even sed, if WeiDU can't handle such (but IIRC it can do pattern matching)



#69 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 22 November 2015 - 10:01 AM

My approach to the issue would be to create a dedicated mini-mod for this.

The mod would be based on a stripped down version of Vlad's script (stripping all the NEJ specifics and retaining the generic parts) no copyright issue here as Vlad has offered his work for such a purpose.

This *basic script* would

- transit the apppropriate vanilla NPCs (Imoen,Minsc, Jaheira to BG2)

- it would remove all other NPCs from the party and the game

- it would move some vanilla items to Irenicus Dungeon

- it would contain a check for a NEJ specific Global and only fire if that one is zero

 

This mod goes into the install sequence just after BGT and prior to NEJ

(Option A to either overwrite original ARAM00,bcs - in this particular case I really advocate overwriting instead of appending, otherwise we replace one mess by another Option B trigger a new scene by Belt weighted dialogue to let everything happen in ARAM01)

 

If NEJ is installed it would EXTEND_TOP *basic script* and set a specific global such that it fires its extended script instead of basic

 

No other NPC or other mod would be required to add to this script unless

- they want a transition for their PC to SoA (in this case EXTEND_TOP *new script* such that the selected PC is moved into Amn before the big cleanup starts

- a mod that has the BGT transition AND a BG2 version of their NPC must also take care to avoid double spawning in the BG2 areas of their NPC (this is not necessarily ar0602, so it is for the modmaker to assure that - just simply set a global if NPC is in transition party, only spawn in BG2 if said global is zero)

- as for cheating items from BG1 to BG2, I think this is outdated and must not be part of the transition - use packmule, use the rod of refuge area, use Sandrah's feature to recover lost valuables, or simply make use of all the new merchants in Amn and pay with merchant legue checks...take it as a good chance to get rid of all the garbage you have accumulated.

 

Wouldn't it be nice, to have no longer needed GLOBALs deleted during the transition? My first save after the start of BG2 has way more than 1000 global variables in it... I guess, this slows loading, and processing and even gameplay down in some way. Or does it not affect the gameplay at all?

 

If there's a way that is... I checked the IESDP and didn't find a function to perform such an action. Well there would alway be a way of hex pattern matching and replacing using WeiDU or even sed, if WeiDU can't handle such (but IIRC it can do pattern matching)

1. There is no way to remove globals - they are in all the saves as well - and nobody will be able to tell which ones are no longer needed except for the one who initially set them (and I would doubt even that).

2. One of the features e.g. of Sandrah to be a continuous character is that she uses a number of Globals throughout the game - her reaction to some event in ToB will depend on whether she has encountered some person in a BG1 quest before (one of very many examples just from this mod).

3. There is no evidence I have ever heard of that the amount of Globals slows the game. On older PCs something like searching the inventory including bags of holding etc in search for items caused some slowdown. If you set a Global to tell the engine that you possess an item then this lag goes away - some kind of evidence for my argument,

4. What is done is the journal clean-up. Setting globals to 0 will not remove them, they stay at value 0 in the game.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#70 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 22 November 2015 - 10:06 AM

My approach to the issue would be to create a dedicated mini-mod for this.

The mod would be based on a stripped down version of Vlad's script (stripping all the NEJ specifics and retaining the generic parts) no copyright issue here as Vlad has offered his work for such a purpose.

This *basic script* would

- transit the apppropriate vanilla NPCs (Imoen,Minsc, Jaheira to BG2)

- it would remove all other NPCs from the party and the game

- it would move some vanilla items to Irenicus Dungeon

- it would contain a check for a NEJ specific Global and only fire if that one is zero

 

This mod goes into the install sequence just after BGT and prior to NEJ

(Option A to either overwrite original ARAM00,bcs - in this particular case I really advocate overwriting instead of appending, otherwise we replace one mess by another Option B trigger a new scene by Belt weighted dialogue to let everything happen in ARAM01)

 

If NEJ is installed it would EXTEND_TOP *basic script* and set a specific global such that it fires its extended script instead of basic

 

No other NPC or other mod would be required to add to this script unless

- they want a transition for their PC to SoA (in this case EXTEND_TOP *new script* such that the selected PC is moved into Amn before the big cleanup starts

- a mod that has the BGT transition AND a BG2 version of their NPC must also take care to avoid double spawning in the BG2 areas of their NPC (this is not necessarily ar0602, so it is for the modmaker to assure that - just simply set a global if NPC is in transition party, only spawn in BG2 if said global is zero)

- as for cheating items from BG1 to BG2, I think this is outdated and must not be part of the transition - use packmule, use the rod of refuge area, use Sandrah's feature to recover lost valuables, or simply make use of all the new merchants in Amn and pay with merchant legue checks...take it as a good chance to get rid of all the garbage you have accumulated.

 

Wouldn't it be nice, to have no longer needed GLOBALs deleted during the transition? My first save after the start of BG2 has way more than 1000 global variables in it... I guess, this slows loading, and processing and even gameplay down in some way. Or does it not affect the gameplay at all?

 

If there's a way that is... I checked the IESDP and didn't find a function to perform such an action. Well there would alway be a way of hex pattern matching and replacing using WeiDU or even sed, if WeiDU can't handle such (but IIRC it can do pattern matching)

1. There is no way to remove globals - they are in all the saves as well - and nobody will be able to tell which ones are no longer needed except for the one who initially set them (and I would doubt even that).

2. One of the features e.g. of Sandrah to be a continuous character is that she uses a number of Globals throughout the game - her reaction to some event in ToB will depend on whether she has encountered some person in a BG1 quest before (one of very many examples just from this mod).

3. There is no evidence I have ever heard of that the amount of Globals slows the game. On older PCs something like searching the inventory including bags of holding etc in search for items caused some slowdown. If you set a Global to tell the engine that you possess an item then this lag goes away - some kind of evidence for my argument,

4. What is done is the journal clean-up. Setting globals to 0 will not remove them, they stay at value 0 in the game.

5. The longer the game and the more data is stored affects the loading of the game but once the necessary stuff is restored the game runs as normal - I have been through the game with a maximum of mods on the way and then went through all of my RtF sequel as well - no slowdown in game, loading the game initially is longer, loading and saving on area transition takes slightly longer but no performanceissues while playing - at least not with my equipment (I also used a not too powerful notebook at times).


Edited by Roxanne, 22 November 2015 - 10:07 AM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#71 waebbl

waebbl
  • Member
  • 29 posts

Posted 22 November 2015 - 11:13 AM

Wouldn't it be nice, to have no longer needed GLOBALs deleted during the transition? My first save after the start of BG2 has way more than 1000 global variables in it... I guess, this slows loading, and processing and even gameplay down in some way. Or does it not affect the gameplay at all?
 
If there's a way that is... I checked the IESDP and didn't find a function to perform such an action. Well there would alway be a way of hex pattern matching and replacing using WeiDU or even sed, if WeiDU can't handle such (but IIRC it can do pattern matching)

1. There is no way to remove globals - they are in all the saves as well - and nobody will be able to tell which ones are no longer needed except for the one who initially set them (and I would doubt even that).
2. One of the features e.g. of Sandrah to be a continuous character is that she uses a number of Globals throughout the game - her reaction to some event in ToB will depend on whether she has encountered some person in a BG1 quest before (one of very many examples just from this mod).
3. There is no evidence I have ever heard of that the amount of Globals slows the game. On older PCs something like searching the inventory including bags of holding etc in search for items caused some slowdown. If you set a Global to tell the engine that you possess an item then this lag goes away - some kind of evidence for my argument,
4. What is done is the journal clean-up. Setting globals to 0 will not remove them, they stay at value 0 in the game.
5. The longer the game and the more data is stored affects the loading of the game but once the necessary stuff is restored the game runs as normal - I have been through the game with a maximum of mods on the way and then went through all of my RtF sequel as well - no slowdown in game, loading the game initially is longer, loading and saving on area transition takes slightly longer but no performanceissues while playing - at least not with my equipment (I also used a not too powerful notebook at times).

 

There would be an easy way of telling whether a variable is needed any longer. Just set them to an unused value once you no longer need them, like -MAX_INT or something, I believe negative values are rarely used for globals. Then you can easily check and do a clean-up. Could even be done with a time trigger on a regular base. Of course, this would require the mod devs to code more carefully :whistling:  something not everyone will be happy with

 

I'm aware of the fact, that setting globals to 0, will not remove them and also of the usefulness of them to track progress. But thanks for pointing this out anyway!

 

But... as there's no evidence, the amount of globals are slowing down the game, there'd be no need of removing them either.



#72 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 22 November 2015 - 11:33 AM

Wouldn't it be nice, to have no longer needed GLOBALs deleted during the transition? My first save after the start of BG2 has way more than 1000 global variables in it... I guess, this slows loading, and processing and even gameplay down in some way. Or does it not affect the gameplay at all?
 
If there's a way that is... I checked the IESDP and didn't find a function to perform such an action. Well there would alway be a way of hex pattern matching and replacing using WeiDU or even sed, if WeiDU can't handle such (but IIRC it can do pattern matching)

1. There is no way to remove globals - they are in all the saves as well - and nobody will be able to tell which ones are no longer needed except for the one who initially set them (and I would doubt even that).
2. One of the features e.g. of Sandrah to be a continuous character is that she uses a number of Globals throughout the game - her reaction to some event in ToB will depend on whether she has encountered some person in a BG1 quest before (one of very many examples just from this mod).
3. There is no evidence I have ever heard of that the amount of Globals slows the game. On older PCs something like searching the inventory including bags of holding etc in search for items caused some slowdown. If you set a Global to tell the engine that you possess an item then this lag goes away - some kind of evidence for my argument,
4. What is done is the journal clean-up. Setting globals to 0 will not remove them, they stay at value 0 in the game.
5. The longer the game and the more data is stored affects the loading of the game but once the necessary stuff is restored the game runs as normal - I have been through the game with a maximum of mods on the way and then went through all of my RtF sequel as well - no slowdown in game, loading the game initially is longer, loading and saving on area transition takes slightly longer but no performanceissues while playing - at least not with my equipment (I also used a not too powerful notebook at times).

 

There would be an easy way of telling whether a variable is needed any longer. Just set them to an unused value once you no longer need them, like -MAX_INT or something, I believe negative values are rarely used for globals. Then you can easily check and do a clean-up. Could even be done with a time trigger on a regular base. Of course, this would require the mod devs to code more carefully :whistling:  something not everyone will be happy with

 

I'm aware of the fact, that setting globals to 0, will not remove them and also of the usefulness of them to track progress. But thanks for pointing this out anyway!

 

But... as there's no evidence, the amount of globals are slowing down the game, there'd be no need of removing them either.

Setting them to unused value?? Any value you set them to would be used - just like the 0.

Negative values exist, globals can be used as counters and you can add or substract (like in Sandrah - the relationship with PC is checked by a global to which some decisions add and some reduce, a similar thing happens in LR Irenicus.) Timers are also some type of Globals where the value is systemtime/realtime resp difference between current and target.

And after all - the transition is technically done by a series of scripts - cutscenes (which are just another type of scripts) - and movies. So the way for what you propose must be somehow achievable with that toolset.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#73 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5148 posts

Posted 22 November 2015 - 12:21 PM


...
I'm aware of the fact, that setting globals to 0, will not remove them and also of the usefulness of them to track progress. But thanks for pointing this out anyway!
But... as there's no evidence, the amount of globals are slowing down the game, there'd be no need of removing them either.

Setting them to unused value?? Any value you set them to would be used - just like the 0.


To remove a Global variable from a savegame, you need to do the cutting in a hex editor... and remove the bits that occupied that slot. So the next replace the emprty point ... well technically you can do it in to a .sav file if you run a properly coded command file, but it's way too compilcated to automatically do. As you have to not remove the important stuff, items, the variables that are still needed and stuff. ...aka do a bit by bit comparison with known variables, from some known point of reference.

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.


#74 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 22 November 2015 - 12:37 PM


...
I'm aware of the fact, that setting globals to 0, will not remove them and also of the usefulness of them to track progress. But thanks for pointing this out anyway!
But... as there's no evidence, the amount of globals are slowing down the game, there'd be no need of removing them either.

Setting them to unused value?? Any value you set them to would be used - just like the 0.

 

To remove a Global variable from a savegame, you need to do the cutting in a hex editor... and remove the bits that occupied that slot. So the next replace the emprty point ... well technically you can do it in to a .sav file if you run a properly coded command file, but it's way too compilcated to automatically do. As you have to not remove the important stuff, items, the variables that are still needed and stuff. ...aka do a bit by bit comparison with known variables, from some known point of reference.

And we are talking about the ingame transition from BG1 to BG2 and - among others - that some users currently sit before a blank screen for a coffee or two even without such a function running over the sav and patching bitwise. And how to run command line and change saves while the game is running and the transition script itself has an autosave at some point ....and...and...


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#75 waebbl

waebbl
  • Member
  • 29 posts

Posted 22 November 2015 - 04:45 PM

Looks like the Bioware devs just didn't meant GLOBALs to be undefined. Doing a hex pattern matching on a saved file would mean you have to call an external script or application, which, AFAIK isn't possible form within the IE. And at the time, when the transition mechanics is embedded within the IE, aka installation, there's no apropriate savegame present to work with.

 

Anyway, it was just an idea, that came up, seemingly a silly idea :ROFL:



#76 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 24 November 2015 - 12:52 PM

I found this interesting bit in the BGT documentation (related to transition stuck problem where the familiar blocked Imoen from opening PC's cage and start dialogue)

 

Familiar importation

If a familiar is out during the transition to Shadows of Amn, it will follow the player into Irenicus’ dungeon. However, if the familiar is in inventory, its importation occurs by script in AR0602.BCS. Since DropInventory() does not drop undroppable items (this is to preserve unique items of joinable NPCs, such as Minsc’s Boo), and the start of Shadows of Amn calls upon DestroyAllEquipment(), which removes all items regardless of their parameters, there is a gap where checks for a familiar in inventory can take place. Familiar checks check for familiar type, but also required the MeetOldenFriends global variable to be set to 100, exclusive to the importation process. This prevents characters directly imported into Shadows of Amn from erroneously keeping their familiar. The familiar, if found, is placed in Picture 1 of AR0602.ARE.

 

I never used familiars so I am not sure about the last point of finding the familiar again. The red 100 is misprinted as 10 in the BGT documentation, it is 100 in ar0602,bcs


Edited by Roxanne, 24 November 2015 - 01:22 PM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#77 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 24 November 2015 - 01:35 PM

How's the licensing of those mods? I haven't looked at many, but a lot of what I've seen have a very liberal license. So, what about importing the code of those mods, whose devs are gone or don't longer care about their mods, into github? They don't need to be changed much, just so, that they work for the transition or for fixing bugs. We only need one or a couple of people willing to maintain the repositories. :devil:
Well, considering that none of the BG mods are actually legistlatively protected by any kind of law, or instance(with the exacption of ALL the BG2 mod forums)... we are deep on the gray zone. You can lie to your users and put a users prefered copyright to your readme, but like said, it's a lie.
As modifying a file doesn't make it yours.
Weidu.exe can't actually make a BG2 files, so that their entire content would be considerable to be yours.

It's mostly honor bound system. Just like it's an honor bound to not to destroy the users game files, computer etc if you install a random mod. That kind of thing.
And also using others files can be called bad practice, but doing so is a guestion of worth. Usually it's not worth to cause a lot of mess by intentionally causing bad things.

My approach to the issue would be to create a dedicated mini-mod for this.

The mod would be based on a stripped down version of Vlad's script (stripping all the NEJ specifics and retaining the generic parts) no copyright issue here as Vlad has offered his work for such a purpose.

This *basic script* would

- transit the apppropriate vanilla NPCs (Imoen,Minsc, Jaheira to BG2)

- it would remove all other NPCs from the party and the game

- it would move some vanilla items to Irenicus Dungeon

- it would contain a check for a NEJ specific Global and only fire if that one is zero

 

This mod goes into the install sequence just after BGT and prior to NEJ

(Option A to either overwrite original ARAM00,bcs - in this particular case I really advocate overwriting instead of appending, otherwise we replace one mess by another Option B trigger a new scene by Belt weighted dialogue to let everything happen in ARAM01)

 

If NEJ is installed it would EXTEND_TOP *basic script* and set a specific global such that it fires its extended script instead of basic

 

No other NPC or other mod would be required to add to this script unless

- they want a transition for their PC to SoA (in this case EXTEND_TOP *new script* such that the selected PC is moved into Amn before the big cleanup starts

- a mod that has the BGT transition AND a BG2 version of their NPC must also take care to avoid double spawning in the BG2 areas of their NPC (this is not necessarily ar0602, so it is for the modmaker to assure that - just simply set a global if NPC is in transition party, only spawn in BG2 if said global is zero)

- as for cheating items from BG1 to BG2, I think this is outdated and must not be part of the transition - use packmule, use the rod of refuge area, use Sandrah's feature to recover lost valuables, or simply make use of all the new merchants in Amn and pay with merchant legue checks...take it as a good chance to get rid of all the garbage you have accumulated.

After some intense research of the issue I have to revise my position here - the dedicated mini-mod idea is not feasible.

It is possible to optimise the scripts for aram00 and ar0602 as the sending and receiving ends of the transition - I have done so locally and tested it successfully. But there is more to the transition than just those scripts, e.g. journal cleanup, correct setting of DVs and some more - all of this is provided by BGT install.

Thus the problem here is to provide a compile-version of the changes from the tested scripts but the only feasible method for that would be to update the scripts within BGT itself.


The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*

 


#78 waebbl

waebbl
  • Member
  • 29 posts

Posted 24 November 2015 - 04:26 PM

I found this interesting bit in the BGT documentation (related to transition stuck problem where the familiar blocked Imoen from opening PC's cage and start dialogue)

 

Familiar importation

If a familiar is out during the transition to Shadows of Amn, it will follow the player into Irenicus’ dungeon. However, if the familiar is in inventory, its importation occurs by script in AR0602.BCS. Since DropInventory() does not drop undroppable items (this is to preserve unique items of joinable NPCs, such as Minsc’s Boo), and the start of Shadows of Amn calls upon DestroyAllEquipment(), which removes all items regardless of their parameters, there is a gap where checks for a familiar in inventory can take place. Familiar checks check for familiar type, but also required the MeetOldenFriends global variable to be set to 100, exclusive to the importation process. This prevents characters directly imported into Shadows of Amn from erroneously keeping their familiar. The familiar, if found, is placed in Picture 1 of AR0602.ARE.

 

I never used familiars so I am not sure about the last point of finding the familiar again. The red 100 is misprinted as 10 in the BGT documentation, it is 100 in ar0602,bcs

In my savegame, the familiar is actually not in Picture 1. I made two saves before the transition, one with cat in my backpack, and another with it outside. The relevant variables of WTPFamiliar, as far as I have found them, (WTP* and #G*) are actually identical in both saves, and also with the autosave happening after newscene.bcs. The MeetOldenFriends variable is set to 100. The familiar might not be found by BGT, because WTPFamiliar uses different names for them, all starting with wtp.



#79 waebbl

waebbl
  • Member
  • 29 posts

Posted 24 November 2015 - 06:05 PM

I found this in ar0602.bcs:
 

IF
	Global("MeetOldenFriends","GLOBAL",100)
	Global("IHaveFamiliar","GLOBAL",0)
	PartyHasItem("FAMCAT") // Vertrauter
THEN
	RESPONSE #100
		ActionOverride("Picture 1",TakePartyItem("FAMCAT")) // Vertrauter
		SetGlobal("IHaveFamiliar","GLOBAL",2)
		Continue()
END

SImiliar blocks are there for other familiars as well.

With WTPFamiliars installed, the familiars are called WTP* instead of FAM*, i.e. WTPCat for the cat familiar. And I don't have a variable IHaveFamiliar defined at all. I have no clue, where this gets set to 0, maybe when the original spell Find Familiar is cast, but the spell is modified by WTPFamiliars IIRC. I did all kind of searches with NI, but only found this variable set to 2 within ar0602.bcs. Looks like this could be the source, why the familiar doesn't appear in Picture 1.



#80 Roxanne

Roxanne

    Modder

  • Member
  • 3564 posts

Posted 24 November 2015 - 10:56 PM

I found this in ar0602.bcs:
 
IF
	Global("MeetOldenFriends","GLOBAL",100)
	Global("IHaveFamiliar","GLOBAL",0)
	PartyHasItem("FAMCAT") // Vertrauter
THEN
	RESPONSE #100
		ActionOverride("Picture 1",TakePartyItem("FAMCAT")) // Vertrauter
		SetGlobal("IHaveFamiliar","GLOBAL",2)
		Continue()
END

SImiliar blocks are there for other familiars as well.

With WTPFamiliars installed, the familiars are called WTP* instead of FAM*, i.e. WTPCat for the cat familiar. And I don't have a variable IHaveFamiliar defined at all. I have no clue, where this gets set to 0, maybe when the original spell Find Familiar is cast, but the spell is modified by WTPFamiliars IIRC. I did all kind of searches with NI, but only found this variable set to 2 within ar0602.bcs. Looks like this could be the source, why the familiar doesn't appear in Picture 1.

The Global set to 0 is the default, it is not set but is equal to does not exist, ie in your case it IS 0 already.

So the only issue is that the WTPmod is not consisten for BGT it would need the quivalent blocks to what yoiu have found.

If you still have the save from entering Duke palace (i.e. when you had your familiar in the inventory and you had not yet been to ar0602 ever) , vou can easily test that

In NI ar0602.bcs put this behind the original cat block and compile

IF
	Global("MeetOldenFriends","GLOBAL",100)
	Global("IHaveFamiliar","GLOBAL",0)
	PartyHasItem("WTPCAT") 
THEN
	RESPONSE #100
		ActionOverride("Picture 1",TakePartyItem("WTPCAT")) 
		SetGlobal("IHaveFamiliar","GLOBAL",2)
		Continue()
END

 

Reload and check the picture now.(Not forgetting to let your familiar climb on board this time BEFORE YOU TALK TO BELT)

 

You may want to report the issue to the WTP modmakers if you know who/where they are.


Edited by Roxanne, 24 November 2015 - 11:00 PM.

The Sandrah Saga

another piece of *buggy, cheesy, unbalanced junk*