Jump to content
Sign in to follow this  
Shaitan

Bug in v20

Recommended Posts

Hello mighty BG1 NPC Project team.

 

I get this smaller issue when visiting Amarande with my party containing Jaheira.

 

1) If I leave Jaheira downstairs the dialogue is screwed: I get no valid replies.

 

2) If she comes with me it works swell (she has her chat with Amarande).

 

I can't post my screenshot, but could provide it if necessary.

 

Cheers

 

/Hans

Share this post


Link to post

If you could quote a line that would be great, so we can better identify which interjection doesn't work. I hope it's not the InMyArea() trigger that leads to this.

Share this post


Link to post

If you could quote a line that would be great, so we can better identify which interjection doesn't work. I hope it's not the InMyArea() trigger that leads to this.

 

I can't quote an exact line, all I have is a screendump with the "no valid replies". However I guess it's due to the InMyArea() because it only happens when Jaheira isn't approaching Amarande.

Share this post


Link to post

If we're talking about ~Ah, the infamous Shadow Archdruid himself, as unbalanced and unreasonable as any of his followers, as one can judge by the way of this greeting. And if the sickle that will try to cut me down is as dull as your wit, then I have very little to fear. and I shall clear this wood of the taint of Shadow Druids, so that the *true* druids can resume their caring nurturing of the forest.~

 

//I_C_T2 ~%tutu_var%AMARAN~ 4 X#JaheiraAmaran

// == ~%JAHEIRA_JOINED%~ IF ~InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID)~ THEN @102

// == ~%tutu_var%AMARAN~ IF ~InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID)~ THEN @103

//END

 

I wonder if it's InMyArea(), because IESDP says clearly that if Jaheira is downstairs, she's in a different area:

AR1601 FW1601 AR8401 Tree house, ground floor

AR1602 FW1602 AR8402 Tree house, second floor (Amarande)

 

But maybe there's a problem with area code switching somewhere, so it is worth it to use a Range(15) instead just in case.

 

(I don't like I_C_T2 here, though: since you have a "go-back" line, isn't it wiser to replace it with an I_C_T?)

Share this post


Link to post

Yep, definitely better for an ICT, so it was moved to ICT3

 

https://github.com/cmorganbg/BG1NPC/blob/master/bg1npc/phase2/dlg/x%23ict3.d

lines 1423 to 1435 inclusive

 

/* passback supplied */
I_C_T3 ~%tutu_var%AMARAN~ 4 X#AMARAN4
== ~%JAHEIRA_JOINED%~ IF ~InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID)~ THEN @560
== ~%tutu_var%AMARAN~ IF ~InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID)~ THEN @561
== ~%MINSC_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID)~ THEN @562
== ~%MINSC_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID)~ THEN @563
== ~%MINSC_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID)~ THEN @564
== ~%MINSC_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID) InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID) InParty("khalid") InMyArea("khalid") !StateCheck("khalid",CD_STATE_NOTVALID)~ THEN @565
== ~%KHALID_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID) InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID) InParty("khalid") InMyArea("khalid") !StateCheck("khalid",CD_STATE_NOTVALID)~ THEN @566
== ~%JAHEIRA_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID) InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID) InParty("khalid") InMyArea("khalid") !StateCheck("khalid",CD_STATE_NOTVALID)~ THEN @567
== ~%KHALID_JOINED%~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID) InParty("jaheira") InMyArea("jaheira") !StateCheck("jaheira",CD_STATE_NOTVALID) InParty("khalid") InMyArea("khalid") !StateCheck("khalid",CD_STATE_NOTVALID)~ THEN @568
== ~%tutu_var%AMARAN~ IF ~InParty("minsc") InMyArea("minsc") !StateCheck("minsc",CD_STATE_NOTVALID)~ THEN @569
END

 

Taking a look -

 

confirmed. InMyArea() trigger is the problem, but runs into logic problems if they are shouting at eachother up the stairs - and definitely is a bug nonetheless, as it should not give NVROL, it should just skip those lines!

 

I suspect it is because we are trying to ICT into a state that has only an exit transition, which means we may need to be using ALTER_TRANS to re-map the dialog with something like

 

IF ~!inparty(folks-we-want)~ THEN EXIT

IF ~inparty(folks-we-want)~ THEN EXTERN newstate-ict3-changed-to-CHAIN

 

I'll play about with it and see what i can come up with.

Share this post


Link to post

Hi

 

I has found one typo in p#brlt.d:

CHAIN IF ~%BGT_VAR% Global("X#AjBRRORE1","LOCALS",0) Global("P#BranwenRomanceActive","GLOBAL",2) CombatCounter(0) !See([ENEMY]) InParty("alora") See("branwen") !StateCheck("alora",CD_STATE_NOTVALID) !StateCheck("branwen",CD_STATE_NOTVALID)~ THEN ~%AJANTIS_BANTER%~ AJBRRORE1

@685

DO ~SetGlobal("X#AjBRRORE1","LOCALS",1)~

== ~%BRANWEN_BANTER%~ @686

== ~%AJANTIS_BANTER%~ @687

== ~%BRANWEN_BANTER%~ @688

== ~%AJANTIS_BANTER%~ @689

EXIT

alora -> ajantis?

Share this post


Link to post

Another typo.

 

x#challenge.tra

@136 = ~*Quietly and quickly, to <CHARNAME>* ~ ~Sweetling, the way I see it, we have two choices: You run for it while I stay behind to entertain the dragon, or I stop this farce, and I fight her...~

Share this post


Link to post
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.

Sign in to follow this  

×
×
  • Create New...