Jump to content


Photo

Bug in v20


7 replies to this topic

#1 Shaitan

Shaitan

    Bad bad nurse.

  • Members
  • 1549 posts
  • Gender:Male
  • Location:Copenhagen, Denmark

Posted 30 January 2012 - 12:01 PM

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
"You're dumb as a mule and twice as ugly. If a strange man offers you a ride I say take It"
-Grandpa Simpson

#2 jastey

jastey
  • Gibberlings
  • 5091 posts
  • Gender:Female

Posted 31 January 2012 - 05:54 AM

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.

#3 Shaitan

Shaitan

    Bad bad nurse.

  • Members
  • 1549 posts
  • Gender:Male
  • Location:Copenhagen, Denmark

Posted 31 January 2012 - 11:46 PM

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.
"You're dumb as a mule and twice as ugly. If a strange man offers you a ride I say take It"
-Grandpa Simpson

#4 Kulyok

Kulyok
  • Members
  • 5552 posts
  • Gender:Female
  • Location:Moscow, Russia

Posted 01 February 2012 - 04:50 AM

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

#5 Shaitan

Shaitan

    Bad bad nurse.

  • Members
  • 1549 posts
  • Gender:Male
  • Location:Copenhagen, Denmark

Posted 01 February 2012 - 05:03 AM

Yeah, that's the dialogue Kulyok, thanks.
"You're dumb as a mule and twice as ugly. If a strange man offers you a ride I say take It"
-Grandpa Simpson

#6 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6911 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 01 February 2012 - 02:09 PM

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

https://github.com/c...e2/dlg/x#ict3.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.
I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams

#7 Silent

Silent
  • Members
  • 8 posts

Posted 07 February 2012 - 07:44 AM

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?

#8 Silent

Silent
  • Members
  • 8 posts

Posted 07 March 2012 - 03:17 AM

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...~





Reply to this topic



  


0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users