Jump to content
Sign in to follow this  
cmorgan

Bug Hunt Luridel 01.15.2019

Recommended Posts

Amellg, thank you for reporting - in addition to the odd area actor behavior listed as fixed in the beta thread, I have tracked down the Gavin <> Aran gift interaction error. (Credits to Roxanne and Berelinde for the idea and implementation, and to Berelinde for letting me add the gift option to her mod). Install order to see all content is Gavin BG2 then Aran Whitehand. Fix is up and checked by installing over Gavin on a clean install of BG2EE and checking the relevant files in NI.

In addition I set up the dialogue and script conditioning to work on EET by shamelessly copying and pasting from Jastey's and CamDawg's latest releases. Luckily all the relevant code fell within files already using COMPILE EVALUATE_BUFFER...

GitHub Commit 84d96a4ffe48372c3fd2d9069be9ac6577b55675

I expect the GitHub master for Aran to be moving to the G3 Organization within a week, if Mike1072 and I can make it happen; no worries if he vanishes from GitHub general access when that is in process. I have a full backup locally.

 

 

Share this post


Link to post

Thanks for the update! :D

Glad to find a bug hunt thread is opened, I put the issues I've come across so far in EET here:
(My PC is a female, and have romanced Aran through SoA and ToB.)

  • About the format conversion of chapter numbers, I think the "GlobalGT("Chapter","GLOBAL"," and "GlobalLT("Chapter","GLOBAL"," may need to be converted too.
     
  • If Aran stay in party from the ending of SoA to ToB, his ToB FT/LTs will not fire automatically, unless I send him back to Amn via Fate Spirit, and summon a new Aran by choosing "Bring me Aran Whitehand / my former lover / my lover Aran...".
     
  • And then in ToB, Aran's SoA PID keep popping up instead of FT/LTs every few seconds. I solved it for myself by adding a condition "GlobalLT("Chapter","GLOBAL",%bg2_chapter_8%)" to the SoA PID trigger. Looks like the problem can be fixed by this.
     
  • In ToB, Hexxat's banter triggers when Hexxat is not in party. Aran says "So you still be here." but no one answers.
     
  • This one is a question: In ToB, When I ask "What do you think our "relationship" is?" from PID, Aran answers and says "why do you be askin'?", the option "I was just wondering." disappears from the PC reply list because my c-aranrom is 2 but it requires Global("c-aranrom","GLOBAL",0). Why it has trigger conditions like this while there's none in SoA
     
  • Another question about ToB romance: According to c-arn25.baf, one of the conditions to active ToB romance is Global("c-aranmatch","GLOBAL",0). But c-aranmatch is already 1 since SoA.
     
  • Typos?
    Quote

    @4501 = ~[ARAN] He tosses coins across the table to the server, and leaves.)~

    A "(" is missing. Also in Line @7668, @7671,@7910. 

  • Quote

    @12724 = ~[HGWRA01] What of the inevitable pain you must cause to the one you love? This man, the one whom you call @68.~

    The dialog box shows "@68".
Edited by amellg

Share this post


Link to post
  • This one is rather an odd issue. It happens like this:
    Ask Aran to "come to me when we rest" from PID/LT → Click the rest button 
    → Aran's music plays, dialogue box appears and shows Valygar's Tree of Life dialogue "<charname>: Valygar... the intense and noble ranger whom you saved from the predations…" with the corresponding reply options
    → If Valygar is not in party, choose one of the replies and then dialogue ends; if Valygar is in party, he will answer and then go on to the next member's Tree of Life dialogue.

    I have tried uninstalling and installing different Aran versions, or changing the installation order, but this still happened in my every EET playthrough.
    I looked into player1.dlg and found that the line "<charname>: Valygar... the intense and noble ranger..." has been modified by Corthala Romantique mod.  At last I added conditions like "!Global("c-aranrom","GLOBAL",2) !Global("c-aranrom","GLOBAL",1)" to this line and sucessfully made Aran's night visit dialogue show up properly. I wonder why Aran's night visit variables will trigger Valygar's Tree of Life talk. Or I just messed up my EET installation (still haven't tested this on a clean EET). Anyway the problem is solved and I just write it down here for reference…

Deeply sorry for my poor English. I think I'd better shut up from now on and wait for the new ToB content silently... :unsure:

Edited by amellg

Share this post


Link to post

No, absolutely great feedback! I will take a look and let you know what I find out.

For one thing, I need to look at the way EET brings the characters along - I assume a ToB resummoning, and it looks like it must do something else. I will take a run at these tonight!

Share this post


Link to post
2 hours ago, amellg said:

About the format conversion of chapter numbers, I think the "GlobalGT("Chapter","GLOBAL"," and "GlobalLT("Chapter","GLOBAL"," may need to be converted too.

Search ""Chapter"" (96 hits in 4 files)
D:\BeamDog\00783\aranw\baf\c-aran.baf (12 hits)
D:\BeamDog\00783\aranw\baf\c-arand.baf (1 hit)
D:\BeamDog\00783\aranw\dialog\c-arandialog.d (56 hits)
D:\BeamDog\00783\aranw\dialog\c-arantobdialog.d (27 hits)

All repaired to EET variable substitution

Confirming .tp2 C E_B usage to make sure we really cover these files:
Line 275: COMPILE EVALUATE_BUFFER ~aranw/dialog/c-arandialog.d~   
Line 281: COMPILE EVALUATE_BUFFER ~aranw/dialog/c-arantobdialog.d~
Line 1069: COMPILE EVALUATE_BUFFER ~aranw/baf/c-aran.baf~ /* override script */
Line 1071: COMPILE ~aranw/baf/c-arand.baf~ /* SoA dreamscript */

Successful install on BG2EE + Gavin (latest)

And NI says...

in the DreamScript,


GlobalLT("Chapter","GLOBAL",127514)


OK. That looks... wrong.

in dialogue files, no worries - IsGabber(Player1) Global("chapter","GLOBAL",5) shows up just fine for the underdark PiD.


So I need to investigate that script.

All instances repaired and integrated, though - commit linked here.

 

Edit: AHA!! Modding While Drinking Scotch Is Fun But Silly(tm). Found it. No E_B on C-ARAND.BAF - right in front of my eyes. Repaired, test installed, NI and DLTCEP show a happier global!

Repair commit linked here.

Share this post


Link to post
2 hours ago, amellg said:

In ToB, Hexxat's banter triggers when Hexxat is not in party. Aran says "So you still be here." but no one answers.

Heh. I added the block to Aran's banter but used Myself instead of Hexxat's DV. Easy fix.

Commit repair linked here.

Share this post


Link to post
  • The first time I talk to Salvanas in Copper Coronet, Aran wil make a comment like "Persistant little bastard, eh?..."
    The second time I talk to Salvanas, the same place shows a "NO VALID REPLIES OR LINKS".

Edit: Found this one was already mentioned in another thread years ago.

Edited by amellg

Share this post


Link to post
9 hours ago, amellg said:
  • The first time I talk to Salvanas in Copper Coronet, Aran wil make a comment like "Persistant little bastard, eh?..."
    The second time I talk to Salvanas, the same place shows a "NO VALID REPLIES OR LINKS". 

Edit: Found this one was already mentioned in another thread years ago.

Well, I found one possible source - I had one trigger on LOCALS and set GLOBAL. So that is fixed.

IF ~~ THEN BEGIN 24 // from: 23.0 22.0 21.0
  SAY #25178 /* ~It saddens me, but if it must be so, I shall worship my goddess from afar! Farewell, my goddess!~ */
  IF ~  OR(4)
Global("c-aransalvanas","GLOBAL",1)
!InParty("c-aran")
!InMyArea("c-aran")
StateCheck("c-aran",CD_STATE_NOTVALID)
~ THEN EXIT
  IF ~  InParty("c-aran")
InMyArea("c-aran")
!StateCheck("c-aran",CD_STATE_NOTVALID)
Global("c-aransalvanas","GLOBAL",0)
~ THEN EXTERN ~C-ARANJ~ 3144
END

So the only condition that I could find that might lead to failure is that one condition on state 24:

IF ~  OR(4) Global("c-aransalvanas","LOCALS",1) !InParty("c-aran") !InMyArea("c-aran") StateCheck("c-aran",CD_STATE_NOTVALID) ~ THEN EXIT

as the LOCALS would be 0 and the GLOBAL would be 1.

Untested in-game (installed and inspected with NI and DLTCEP) but repair is up  right here on GitHub

Also, thank you for the typos - all repaired and about to go up - since some are the adult stuff, not linking the commit, but it is on GitHub.

Share this post


Link to post
22 hours ago, amellg said:

This one is a question: In ToB, When I ask "What do you think our "relationship" is?" from PID, Aran answers and says "why do you be askin'?", the option "I was just wondering." disappears from the PC reply list because my c-aranrom is 2 but it requires Global("c-aranrom","GLOBAL",0). Why it has trigger conditions like this while there's none in SoA?

Hmmm.... I am not sure 🤔 -  checking against all other variants of this, it looks like a typo.

  D:\BeamDog\00783\aranw\dialog\c-arandialog.d (2 hits)
    Line 29603: ++ @11286 EXIT  
    Line 29637: ++ @11286 EXIT
  D:\BeamDog\00783\aranw\dialog\c-arantobdialog.d (3 hits)
    Line 10761: ++ @11286 EXIT
    Line 10828: ++ @11286 EXIT
    Line 10907: ++ @11286 EXIT
  D:\BeamDog\00783\aranw\tra\english\C-ARANW.TRA (1 hit)
    Line 11670: @11286 = ~[PC] I was just wondering.~

Behavior now matches the SoA J and P files, and the other two ToB (A25 and P25) files. Commit made Here.

 

 

 

Share this post


Link to post
On 1/23/2019 at 8:36 PM, amellg said:

Another question about ToB romance: According to c-arn25.baf, one of the conditions to active ToB romance is Global("c-aranmatch","GLOBAL",0). But c-aranmatch is already 1 since SoA.

This one is a little more awkward - a strictly EET thing I think (but might be BG2EE-SoA->BG2EE-ToB as I know moving your party to the expansion in the EEs has improved dramatically over Ye Olden Days of Yore).

BG2 SoA did not have much functional "move between the parts". So much so that BGT was born. And it still didn't have much portability (though more than traditional stuff). So, the assumption is that an NPC is going to be summoned through the Fate Spirit. If it is, then the Fate Spirit dialog is used to set all the relevant variables - basically, a new PC or one brought up from SoA can "rewrite history" by stating that the NPC was her lover, or is her lover, or is just a friend.

BUT.

for the materials for Aran in ToB to be consistent, the romance check needs to run so that a newly created PC has the same opportunities to develop the relationship - especially the flirting and such.

BUT.

Apparently the new games bring over those variables (or you wouldn't be reporting a halt in the process).

So the simplest solution is to split the blocks up to fire one at a time - one that sets the match if it is not set, the other that fires when it is set (it won't run in SoA as the .cre there is assigned the SoA script and this second check is run on the ToB script). Basically, if the variables are persisting and Aran is running his correct scripts for ToB, he should do his stuff. If the variables are not, then the first block catches that and sets it.

Untested (other than the usual "it installs without error and NI and DLTCEP agree everything looks right) but activated:

IF
  Global("c-aranmatch","GLOBAL",0)
  Global("c-arantobrom","GLOBAL",0)
  InParty(Myself)
  !StateCheck(Myself,CD_STATE_NOTVALID)
  !StateCheck(Player1,CD_STATE_NOTVALID)
  Gender(Player1,FEMALE)
  !HasItemEquiped("belt05",Player1)  // Girdle of Gender
THEN
  RESPONSE #100
    SetGlobal("c-aranmatch","GLOBAL",1)
    RealSetGlobalTimer("c-aranromtimer","GLOBAL",EIGHT_HOURS)
    RealSetGlobalTimer("c-aranflirttimer","GLOBAL",FOUR_HOURS)
END

IF
  Global("c-aranmatch","GLOBAL",1)
  Global("c-arantobrom","GLOBAL",0)
  InParty(Myself)
  !StateCheck(Myself,CD_STATE_NOTVALID)
  !StateCheck(Player1,CD_STATE_NOTVALID)
  Gender(Player1,FEMALE)
  !HasItemEquiped("belt05",Player1)  // Girdle of Gender
THEN
  RESPONSE #100
    SetGlobal("c-arantobrom","GLOBAL",1)
    RealSetGlobalTimer("c-aranromtimer","GLOBAL",EIGHT_HOURS)
    RealSetGlobalTimer("c-aranflirttimer","GLOBAL",FOUR_HOURS)
END

Going to recheck the IDS I am using as that EIGHT_HOURS and FOUR_HOURS is certainly not intended, unless it is the values for in-game time, rather than real time. Darn it - forgetting things. I used to know this.

Commit code here.

Share this post


Link to post
On 1/23/2019 at 8:36 PM, amellg said:

If Aran stay in party from the ending of SoA to ToB, his ToB FT/LTs will not fire automatically, unless I send him back to Amn via Fate Spirit, and summon a new Aran by choosing "Bring me Aran Whitehand / my former lover / my lover Aran...".

I *think* this is the same problem we just fixed in the post above this one... but we will have to re-test. I don't know enough about how EET keeps the party together to say for certain.

Share this post


Link to post
On 1/23/2019 at 8:36 PM, amellg said:

And then in ToB, Aran's SoA PID keep popping up instead of FT/LTs every few seconds. I solved it for myself by adding a condition "GlobalLT("Chapter","GLOBAL",%bg2_chapter_8%)" to the SoA PID trigger. Looks like the problem can be fixed by this.

That... shouldn't happen. They are in two separate dialog files.

Wait a sec...

EET docs...

yep. Dammit. EET came to the same conclusion Acsension64 did with BGT, and stacked files.

OK. well. The good news is that your solution will work well with those SoA PiDs.

 

Unfortunately the inside of my head just exploded, with a million swearwords running around - I have no idea if the weighting and construction of the two dialogue files merger has any odd results on the project here. I know EET is well coded, but I don't know about my stuff, since they were build without interaction except where parts are duplicated with different variables (like Watcher's Keep). The old "fix" back in my BG1NPC days was to set a variable on BGT content that did not exist in BG only on BGT games - wait...

yep. They kept that. Plus a new one: " InToB - vanilla variable that is set to 1 in the first area of Throne of Bhaal expansion (AR4000.BCS)". I probably need to play around with this.

And the transition is covered here : " As mentioned in readme file EET uses new system for NPC transition from Siege of Dragonspear expansion to Shadows of Amn and from Shadows of Amn to Throne of Bhaal expansion. In order to make modder's life easier we've prepared a function designed to automatically add both types of transition to any kind of NPC mod. All you need to do to make your NPC fully compatible with EET is disabling your normal patching code for AR4000.BCS, AR4500.BCS, FATESP.DLG and using EET_NPC_TRANSITION function instead ".

Share this post


Link to post

Thanks for all the quick fixes! :thumbsup:

21 hours ago, cmorgan said:

Also, thank you for the typos - all repaired and about to go up 

@7671 has not been repaired yet.

17 hours ago, cmorgan said:

I *think* this is the same problem we just fixed in the post above this one...

I guess this one has little to do with the c-aranmatch thing...???

I haven't tested the latest version yet, but before my last install (Aran v04.01.2019) I had modified c-arn25.baf in a similar way as you posted (change the "IF Global("c-aranmatch","GLOBAL",0)" to "IF Global("c-aranmatch","GLOBAL",1)" and such) attempting to make ToB romance active in my game.

However it seems that the whole "IF Global("c-aranmatch","GLOBAL",1)...THEN RESPONSE #100  SetGlobal("c-arantobrom","GLOBAL",1)... END" thing didn't work on an Aran brought from SoA at all. I used CLUAConsole:AdvanceRealTime(999999) and then checked "CLUAConsole:GetGlobal("c-arantobrom","GLOBAL")". It returned "c-arantobrom does not exist". I didn't change anything about ToB friend talk in c-arn25.baf but c-aranfriendtobstart would not set to 1, too, the same as c-arantobrom.

Once a new Aran is summoned, variables set as the script says and Aran start to initiate talks as normal. 

Edited by amellg

Share this post


Link to post

Thanks for the followup on the typo - I will get it fixed and up in the next batch (struggling with trying to get a way of changing the way the mod asks for user input to selected subcomponents right now and failing miserably :) )

I think, then, what is happening is the SoA import to ToB on EET is letting him use his SoA script. You can check on your imported .cre after ToB, and see what his script is - my bet is it is C-ARAN instead of C-ARN25. This is where i need to study an EET install myself; I need to do some work, setting up some different files and following the directions EET provides to cover this.

 

 

Share this post


Link to post
1 hour ago, cmorgan said:

You can check on your imported .cre after ToB, and see what his script is - my bet is it is C-ARAN instead of C-ARN25.

Yes,  you're right. It's C-ARAN for the Aran brought from SoA and C-ARAN25 for the new Aran.

I recall that something similar happened to some old NPC mods I force-installed on EET. Now I know the reason.:rolleyes:

Share this post


Link to post
Guest
You are commenting as a guest. If you have an account, please sign in.
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.

Sign in to follow this  

×