Jump to content

Bug in v20


Shaitan

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

Link to comment

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.

Link to comment

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?)

Link to comment

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.

Link to comment

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?
Link to comment

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...~
Link to comment

Archived

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

×
×
  • Create New...