Jump to content

EET v13.4 released


Recommended Posts

 

that would explain it. Never played with PID (Player-Initiated Dialogues) installed, so never encountered it. There is also nothing like this in vanilla game. But it makes sense considering the only trigger check in PID dialogues in BG1NPC Project is:

IsGabber(Player1)

Same would happen in vanilla game if any mod installed after BG1NPC Project would append a new dialogue to VICONJ.DLG file because PID would be earlier and would trigger without our intention instead of that later dialogue. But there is a way to make PID dialogues compatible with mods installed later and EET that automatically merges join dialogue files. This additional trigger should do the job:

ObjectActionListEmpty(Myself)

Once it's there PID won't be initiated when dialogue is triggered by script for example via:

ActionOverride("Viconia",StartDialogueNoSet(Player1))

And you will be still able to initiate dialogue manually with her, so nothing really is changed.

 

Please install mod attached to this message and let me know if it fixes the problem. It should update every single PID dialogue in your game.

I agree with your analysis, but I have a question to the solution. It seems this is aimed at PIDs from BG1NPC mod specifically. What will it do to any other use of IsGabber(Player1) that is in the game?

Besides, there are also other mods with PIDs...

If there are any side effects on other mods or uses, it may be best to add this solution as a feature to BG1NPCs which is normally installed pretty early in the game and in front of other contents adding mods - this way it will not impact others.

PS - Most likely the only campaign in the game using such triggers is SoD. Maybe the BG1NPC PIDs could have something not to trigger in SoD? I think the makers of that mod have declared several times that they will not add SoD contents to their work ?

 

 

 

I don't know enough to discuss this choice but I can at least confirm that the fix works!

The fix works for the SoD triggers.

I also made a series of tests of situations from my own mod where I use IsGabber(Player1). There are no issues. (I saw my dialogues in the install window for the mod, so they were changed indeed).

Looks okay for the time.

Link to comment

I've just encountered a second Rasaad in Nashkel after revisiting the town. Inspecting my saved game I found a third character entry for Rasaad as well, although that one hasn't been placed on any map.


Could this be EET-related or is it a BGEE issue? I'm using EET RC3 with the RC4 hot fix and a small number of mods (incl. BG1 NPC Project). Rasaad never joined my party, but I talked to him once already.

Link to comment
PS - Most likely the only campaign in the game using such triggers is SoD

This has nothing to do with the way SoD uses proximity triggers. In all EE and not EE games PIDs can be triggered by code like:

ActionOverride("Viconia",StartDialogueNoSet(Player1))

from any script. And this shouldn't be the case if we are talking about "Player-Initiated Dialogues".

 

I also made a series of tests of situations from my own mod where I use IsGabber(Player1). There are no issues. (I saw my dialogues in the install window for the mod, so they were changed indeed).

use this code in command line to extract your dialogue file to d format:

weidu.exe yourdialogue.dlg

Now try to search for 'ObjectActionListEmpty(Myself)'. If I didn't make a mistake than the code should only change PID initial dialogues, nothing else. Dialogues with more triggers are skipped too. Your other IsGabber(Player1) instances should be unaltered by it.

If there are any side effects on other mods or uses, it may be best to add this solution as a feature to BG1NPCs which is normally installed pretty early in the game and in front of other contents adding mods - this way it will not impact others.

This fix will be included in RC5 finalise component to handle this automatically although I will limit the patching only to JOIN dialogue files mentioned in 2da files, so it will be impossible to patch a block that is not actually a PID.

Edited by K4thos
Link to comment

 

PS - Most likely the only campaign in the game using such triggers is SoD

This has nothing to do with the way SoD uses proximity triggers. In all EE and not EE games PIDs can be triggered by code like:

ActionOverride("Viconia",StartDialogueNoSet(Player1))

from any script. And this shouldn't be the case if we are talking about "Player-Initiated Dialogues".

 

I also made a series of tests of situations from my own mod where I use IsGabber(Player1). There are no issues. (I saw my dialogues in the install window for the mod, so they were changed indeed).

use this code in command line to extract your dialogue file to d format:

weidu.exe yourdialogue.dlg

Now try to search for 'ObjectActionListEmpty(Myself)'. If I didn't make a mistake than the code should only change PID initial dialogues, nothing else. Dialogues with more triggers are skipped too. Your other IsGabber(Player1) instances should be unaltered by it.

If there are any side effects on other mods or uses, it may be best to add this solution as a feature to BG1NPCs which is normally installed pretty early in the game and in front of other contents adding mods - this way it will not impact others.

This fix will be included in RC5 finalise component to handle this automatically although I will limit the patching only to JOIN dialogue files mentioned in 2da files, so it will be impossible to patch a block that is not actually a PID.

 

You made no mistake - it really only affects solo IsGabber(Player1) in initial dialogue triggers.

I was alerted because i use this trigger quite often and in conjunction with other conditions, so it was not clear what the extra would do.

Looks like there is no reason to worry.

Link to comment

I've just encountered a second Rasaad in Nashkel after revisiting the town. Inspecting my saved game I found a third character entry for Rasaad as well, although that one hasn't been placed on any map.

 

Could this be EET-related or is it a BGEE issue? I'm using EET RC3 with the RC4 hot fix and a small number of mods (incl. BG1 NPC Project). Rasaad never joined my party, but I talked to him once already.

 

There are 2 vanilla bugs similar to this (duplicated GAM entries, 1 of them without map) caused by weird Beamdog code mentioned in my last post of this report:

http://redmine.beamdog.com/issues/22244

When there is more than 1 GAM entry per NPC than the game confuses them when you reference NPC via DV. Both problems were fixed by EET fixpack, although there may be simillar problem for Rasaad.

 

RC4 (and hotfix too unless I've made a mistake there) also fixed a problem with NPCLEVEL equivalent files referenced in CAMPAIGN.2DA that would respawn new CRE file based on 2da entry from different campaign if that NPC never joined the party. Although that problem simply replaced existing character rather than duplicating it.

 

None of these explains your problem though. Please upload all your Chapter Start saves - I will try to discover at which point of the story duplication occured (or at least at which point that entry without area happended which may be responsible for further problems). Also your latest save if you have it before entering Nashkel. Thanks in advance.

Edited by K4thos
Link to comment

thanks. Good that you've included the ARE script - I didn't even need to open your saves in NI.

IF
  Global("RASAAD_SPAWN_STOP","GLOBAL",0)
  Global("RASAAD_1ST_SPAWN","BG4800",0)
  !Dead("RASAAD")  // ~Rasaad~
  !InPartyAllowDead("RASAAD")  // ~Rasaad~
  XPLT(Player1,1500)
THEN
  RESPONSE #100
    CreateCreature("RASAAD",[1100.782],SSE)  // ~Rasaad~
    ActionOverride("RASAAD",MakeGlobal())
    ActionOverride("RASAAD",ChangeAIScript("RASAADX",DEFAULT))
    SetGlobal("RASAAD_1ST_SPAWN","BG4800",1)
END

IF
  !Global("RASAADFIGHT","BG4800",1)
  Global("RASAAD_SPAWN_STOP","GLOBAL",0)
  Global("RASAAD_2ND_SPAWN","BG4800",0)
  !Dead("RASAAD")  // ~Rasaad~
  !InPartyAllowDead("RASAAD")  // ~Rasaad~
  XPGT(Player1,1499)
  XPLT(Player1,6050)
THEN
  RESPONSE #100
    ActionOverride("RASAAD",DestroySelf())
    SmallWait(2)
    CreateCreature("RASAAD",[1100.782],SSE)  // ~Rasaad~
    ActionOverride("RASAAD",MakeGlobal())
    ActionOverride("RASAAD",ChangeAIScript("RASAADX",DEFAULT))
    SetGlobal("RasaadTalkedTo","BG4800",1)
    SetGlobal("RASAAD_2ND_SPAWN","BG4800",1)
END

IF
  !Global("RASAADFIGHT","BG4800",1)
  Global("RASAAD_SPAWN_STOP","GLOBAL",0)
  Global("RASAAD_3RD_SPAWN","BG4800",0)
  !Dead("RASAAD")  // ~Rasaad~
  !InPartyAllowDead("RASAAD")  // ~Rasaad~
  XPGT(Player1,6049)
  XPLT(Player1,27550)
THEN
  RESPONSE #100
    ActionOverride("RASAAD",DestroySelf())
    SmallWait(2)
    CreateCreature("RASAAD",[1100.782],SSE)  // ~Rasaad~
    ActionOverride("RASAAD",MakeGlobal())
    ActionOverride("RASAAD",ChangeAIScript("RASAADX",DEFAULT))
    SetGlobal("RasaadTalkedTo","BG4800",1)
    SetGlobal("RASAAD_3RD_SPAWN","BG4800",1)
END

IF
  !Global("RASAADFIGHT","BG4800",1)
  Global("RASAAD_SPAWN_STOP","GLOBAL",0)
  Global("RASAAD_4TH_SPAWN","BG4800",0)
  !Dead("RASAAD")  // ~Rasaad~
  !InPartyAllowDead("RASAAD")  // ~Rasaad~
  XPGT(Player1,27549)
THEN
  RESPONSE #100
    ActionOverride("RASAAD",DestroySelf())
    SmallWait(2)
    CreateCreature("RASAAD",[1100.782],SSE)  // ~Rasaad~
    ActionOverride("RASAAD",MakeGlobal())
    ActionOverride("RASAAD",ChangeAIScript("RASAADX",DEFAULT))
    SetGlobal("RasaadTalkedTo","BG4800",1)
    SetGlobal("RASAAD_4TH_SPAWN","BG4800",1)
END

It's the same problem as the one that caused bugs in vanilla BG:EE+SoD for Dorn and Neera but this time multiplied 4 times :jump: His cre file that is made GLOBAL at first spawn is respawned each time the party reaches higher XP (unless you got him into party which sets RASAAD_SPAWN_STOP to 1). And each time with another MakeGlobal() instead of MakeGlobalOverride() that would prevent GAM duplication. I get what they wanted to achieve here but all of this is usless in patch 2.x considering all vanilla NPCs now have Override script code that automatically adjusts the XP (looks like a leftover from earlier patches although someone from Beamdog already modified it after that considering all of these blocks reference one and the same CRE file which doesn't make sense).

 

So yes, vanilla bug. This is another NPC that would also have problems with BeenInParty flags during SoD transition. (report mentioned in previous post). I will add fix for him to EET BG1 fixpack, thanks for report.

 

edit: the reason why ActionOverride("RASAAD",DestroySelf()) doesn't work in this case is most likely caused by that first deleted Rasaad without area - the game runs DV actions on that GAM reference.

Edited by K4thos
Link to comment

I currently have 2 long swords + 1 which should probably be merged in 1 item. Only the description vary but it's not specific like for the plate mail.

 

They did not get similarly affected by the lore changes of item revision and that's how I found out, I also don't know which one appear when.

 

SW1H05 description :

These swords are usually referred to as doubled-edged swords, war swords, or military swords. In many cases, the long sword has a single-edged blade. There is no single version of the long sword; the design and length vary from culture to culture, and may vary within the same culture depending on the era. Among the most common characteristics of all long swords is their length, which ranges from 35 to 47 inches. In the latter case, the blade is known to take up 40 inches of the total length. Most long swords have a double-edged blade and a sharp point at the tip. Despite the tip, the long sword is designed for slashing, not thrusting. This long sword is particularly good at its job, as it has been enchanted with a few magical properties.

SW1H05S description :

These swords are usually referred to as doubled-edged swords, war swords, or military swords. The blade hums slightly in your hand, the only overt evidence that magic runs through it.

 

I'd suggest taking the first description for all long swords +1.

 

Is this EET made? It doesn't use the _ affixe so i'd guess not but then who would made 2 different identical items for a single game?

 

Edit : Also just got a ring of fire resistance that has a very short description compared to the one I had already. It looks like the Beamdog made generic weapons have very short descriptions compared to the originals and aren't always merged. Still a guess, i'll keep track of other similar cases(though I won't catch them all).

 

Edit 2: Well, another! The ring of Free Action bought in SoD isn't the same as the one looted at the Iron Throne HQ... I'd be curious as to why Beamdog did that...

Edited by GrimLefourbe
Link to comment

Hey, I did a fresh install with RC4 today (since I wanted to change a few mods anyway) and while testing stuff I noticed that the alternate SoD GUI EET offers does not come with an "abilities" button (for high level abilities) which means charcters can no longer level up as soon as they get HLAs.

 

While I'm at it, I'd like to suggest offering an option to use the new EE movies instead of the classic ones, either as an EET core feature or at least as part of EET Tweaks. In my opinion the new movies are way better than the old ones (at least on today's widescreens).

Link to comment

Dorn or Viconia aren't present in Athkathla for me. I'm on RC4 and I don't think I have a mod that would affect Dorn so i'm surprised.

 

https://www.dropbox.com/s/uuyk3dyd5hwhmj5/000000070-where%20vico.7z?dl=0

What happened to them during BG1 - did you have them in party, did they die, did they leave you due ro high Rep?

Edited by Roxanne
Link to comment

Dorn or Viconia aren't present in Athkathla for me. I'm on RC4 and I don't think I have a mod that would affect Dorn so i'm surprised.

 

https://www.dropbox.com/s/uuyk3dyd5hwhmj5/000000070-where%20vico.7z?dl=0

intersting, I've just tested it and unless I'm not mistaken it seems to work differently now compared to how it worked in patch 1.3. Now when you use MoveGlobal and start procedding additional actions at the same script block for some reason NPC Override script is able to kick in and run at least once before rest of the area script block proceeds. It's a major EET bug and regression compared to beta releases but easy to fix. A matter of changing:

MoveGlobal("AR1000","Viconia",[1821.1081])
//some other actions
ActionOverride("Viconia",ChangeAIScript("VICONIA",OVERRIDE))

to

ActionOverride("Viconia",ChangeAIScript("VICONIA",OVERRIDE)) //NPC don't have to be in current area to make this work
MoveGlobal("AR1000","Viconia",[1821.1081])
//some other actions

Same happended for Dorn to you and will probably happen for other transition NPCs. I will write a hotfix for this problem later today and upload it here. Thanks for report.

 

edit: don't play any further - your save needs to be cleaned for area spawn variables that already have been set for Viconia and Dorn.

Edited by K4thos
Link to comment

I had them both up to the end of SoD. Viconia left with a mini banter commenting on Skie's murder and Dorn disappeared during the following black screen (transition between Dragonspear and Baldur's Gate).

You are right, Viconia shoulöd be there, she has BeenInParty Flag, she is not dead, so according to

ar1000.bcs

IF

Global("K#ViconiaImport","AR1000",0)

BeenInParty("Viconia") yes

GlobalLT("chapter","GLOBAL",20) yes, is 14

!StateCheck("Viconia",STATE_REALLY_DEAD) not dead

THEN

RESPONSE #100

MoveGlobal("AR1000","Viconia",[1821.1081])

etc...

 

The Global("K#ViconiaImport","AR1000",1) is set, which means that the block was triggered, So question is, what made her go again?

 

My guess is that it is this code in BDViconi.bcs

IF

GlobalGT("CHAPTER","GLOBAL",13)

THEN

RESPONSE #100

DestroySelf()

END

 

The import code in ar1000.bcs changes her last script BDViconi.bcs to Viconia.bcs but maybe that did not work?

 

Let us see what k4thos has to say...

Edited by Roxanne
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...