Jump to content

dialogue misc


Recommended Posts

A random sampling from memory; not exhaustive:

 

SarBul04 - The interjections here make no sense. They all try to extern back to SarKis01; nothing transitions to SarBul04:3, so I guess they should be False()d

IF ~~ THEN BEGIN 2 // from: 4.3 0.2 0.0
 SAY #71386 /* ~You don't give the orders in this town! We work for Gromnir!~ */
 IF ~~ THEN GOTO 3
 IF ~IsValidForPartyDialogue("Korgan")~ THEN EXTERN ~KORGA25J~ 13
 IF ~IsValidForPartyDialogue("Mazzy")~ THEN EXTERN ~MAZZY25J~ 11
 IF ~IsValidForPartyDialogue("Anomen")~ THEN EXTERN ~ANOME25J~ 36
END

For some inexplicable reason, the following all try to link to Mazzy25A. As far as I can determine (without tracking down Mazzy and running the encounters), greeting dialogues can't be linked to. They should all extern Mazzy25J, with the current state -1 (Mazzy25A:11 to Mazzy25J:10, and Mazzy25A:13 to Mazzy25J:12). Additionally, the corresponding state for Mazzy25A:10 (linked from SarCnt01) doesn't exist in Mazzy25J, so it needs to be appended as a new state (13).

/Users/akay/Desktop/dump/DLG/EDWIN25J.D:  IF ~IsValidForPartyDialog("Mazzy")~ THEN EXTERN ~MAZZY25A~ 11
/Users/akay/Desktop/dump/DLG/JAHEI25J.D:EscapeArea()~ EXTERN ~MAZZY25A~ 13
/Users/akay/Desktop/dump/DLG/SARCNT01.D:~ EXTERN ~MAZZY25A~ 10
/Users/akay/Desktop/dump/DLG/VALYG25J.D:~ THEN EXTERN ~MAZZY25A~ 11

Anome25J - The link to Mazzy25J should go to State 10, not State 12. Only if you tell Jaheira to shove off, should Mazzy25J:12 be linked to automatically (e.g., only from Jaheira's dialogue). If Jaheira isn't valid, you should always get a chance to pacify Mazzy.

IF ~~ THEN BEGIN 38 // from: 36.1
 SAY #72459 /* ~I shame myself by remaining in your presence, <CHARNAME>. I thought you a <PRO_LADYLORD> of virtue, but I see I was a blind fool. We must part ways here.~ */
 IF ~~ THEN DO ~LeaveParty()
EscapeArea()~ EXTERN ~SARKIS01~ 34
 IF ~IsValidForPartyDialog("Keldorn")~ THEN DO ~LeaveParty()
EscapeArea()~ EXTERN ~KELDO25J~ 17
 IF ~IsValidForPartyDialog("Mazzy")~ THEN DO ~LeaveParty()
EscapeArea()~ EXTERN ~MAZZY25J~ 12
 IF ~IsValidForPartyDialog("Jaheira")
~ THEN DO ~LeaveParty()
EscapeArea()~ EXTERN ~JAHEI25J~ 44
END

In the following script and dialogues, "TalkedToCor" should be "TalkedCor."

/Users/akay/Desktop/dump/BCS/ANOMEN.BAF:Global("TALKEDTOCOR","GLOBAL",0)
/Users/akay/Desktop/dump/DLG/COR.D:Global("TalkedToCor","GLOBAL",0)
/Users/akay/Desktop/dump/DLG/COR.D:GlobalGT("TalkedToCor","GLOBAL",0)~ THEN BEGIN 55 // from:
/Users/akay/Desktop/dump/DLG/COR.D:GlobalGT("TalkedToCor","GLOBAL",0)~ THEN BEGIN 56 // from:

GMTown02 - State 4 is set up for an interjection with Viconia, but it actually links to ValygarJ. There are no corresponding states for an interjection with Viconia; it should be checking for Valygar.

IF WEIGHT #0 ~InParty("Viconia")
See("Viconia")
!StateCheck("Viconia",STATE_SLEEPING)
RandomNum(2,1)
Global("gmtown02Viconia","GLOBAL",0)
~ THEN BEGIN 4 // from:
 SAY #30045 /* ~I think joining the army is the most noble thing one can do for his nation! I cannot wait to partake in glorious victories!~ */
 IF ~~ THEN DO ~SetGlobal("gmtown02Viconia","GLOBAL",1)
~ EXTERN ~VALYGARJ~ 23
END

CopGreet - The global is only set if the links to KorganJ and ViconiJ aren't taken.

IF ~~ THEN BEGIN 6 // from: 7.2 5.2 4.2 3.3 2.3
 SAY #25290 /* ~As you wish, my <LADYLORD>. Enjoy!~ */
 IF ~!IsValidForPartyDialog("Viconia")
!IsValidForPartyDialog("Korgan")~ THEN DO ~SetGlobal("TalkedToFrankie","GLOBAL",1)~ EXIT
 IF ~IsValidForPartyDialog("Viconia")~ THEN EXTERN ~VICONIJ~ 29
 IF ~!IsValidForPartyDialog("Viconia")
IsValidForPartyDialog("Korgan")~ THEN EXTERN ~KORGANJ~ 39
END

DLost - The actor only executes EscapeArea() if the links to KeldorJ and ViconiJ aren't taken.

IF ~~ THEN BEGIN 3 // from: 2.1 1.2 0.2
 SAY #25442 /* ~B-b-b-but... I... I... (sniff!) wwaaAAAAHHHH!!~ */
 IF ~!IsValidForPartyDialogue("VICONIA")
!IsValidForPartyDialogue("KELDORN")~ THEN DO ~EscapeArea()
~ EXIT
 IF ~IsValidForPartyDialogue("VICONIA")~ THEN EXTERN ~VICONIJ~ 55
 IF ~!IsValidForPartyDialogue("VICONIA")
IsValidForPartyDialogue("KELDORN")~ THEN EXTERN ~KELDORJ~ 137
END

CircG1 - The journal entry is only set if the links to YoshJ and MinscJ aren't taken.

IF ~~ THEN BEGIN 3 // from: 9.0 8.1
 SAY #14656 /* ~Very well, then. I'll not stop you if you wish to risk yourself, citizen. You were warned.~ */
 IF ~!IsValidForPartyDialog("Minsc")
!IsValidForPartyDialog("Yoshimo")~ THEN DO ~SetGlobal("NoEntry","AR0700",2)
MoveToPoint([3037.1566])
Face(0)~ UNSOLVED_JOURNAL #34110 /* ~Investigate the circus tent.

Something has occurred in the circus tent in Waukeen's Promenade... no one that goes in comes back out. The guard in front has agreed to allow me to enter to investigate.~ */ EXIT
 IF ~IsValidForPartyDialog("Minsc")~ THEN DO ~SetGlobal("NoEntry","AR0700",2)
MoveToPoint([3037.1566])
Face(0)~ EXTERN ~MINSCJ~ 69
 IF ~!IsValidForPartyDialog("Minsc")
IsValidForPartyDialog("Yoshimo")~ THEN DO ~SetGlobal("NoEntry","AR0700",2)
MoveToPoint([3037.1566])
Face(0)~ EXTERN ~YOSHJ~ 25
END

Imoen2J - The check for IsValidForPartyDialog("Edwin") is completely missing from the last transition.

IF ~~ THEN BEGIN 11 // from: 12.0
 SAY #55207 /* ~Unless it's because she was a vampire, with no soul of her own. She just... died, and there was only my own soul left? Or maybe it had something to do with your dying at the Tree of Life. I don't know.~ [IMOEN74] */
-- [CUT] --
 IF ~!IsValidForPartyDialog("Aerie")
!IsValidForPartyDialog("Minsc")
!IsValidForPartyDialog("Valygar")
!IsValidForPartyDialog("Korgan")
!IsValidForPartyDialog("Jan")
!IsValidForPartyDialog("Viconia")
!IsValidForPartyDialog("Yoshimo")
!IsValidForPartyDialog("Jaheira")
!IsValidForPartyDialog("Cernd")
!IsValidForPartyDialog("Mazzy")
!IsValidForPartyDialog("Anomen")
!IsValidForPartyDialog("HaerDalis")
!IsValidForPartyDialog("Keldorn")
!IsValidForPartyDialog("Nalia")~ THEN EXTERN ~EDWINJ~ 95
END

MgAppr01 - The check should be !GlobalTimerExpired().

IF ~InPartySlot(LastTalkedToBy,0)
GlobalTimerExpired("ApprentiBuildTimer","GLOBAL")
GlobalGT("Apprenti","GLOBAL",28)
GlobalLT("Apprenti","GLOBAL",31)~ THEN BEGIN 48 // from:
 SAY #41965 /* ~This is stretching our luck, even for me. I really don't even understand half of the conjuring I'm doing. Perhaps this was a mistake.~ */
 IF ~~ THEN EXIT
END

MgAppr02 - Too many bugs to recall. State 16 should be RandomNumLT(100,70) (makes no difference); I'm fairly confident that State 49 should set Apprenti to 10 (currently, it's impossible to fail the Horrid Wilting); State 77 should be RandomNumLT(100,61) (I guess there's 1% chance no valid replies or links?); States 95 & 96 never set a global, so I guess they have no dialogue if you tell them to make the Staff of Power - I *think* they should set Apprenti to 29 and 30, respectively (based on State 99).

IF ~~ THEN BEGIN 16 // from: 79.2 14.2
 SAY #41777 /* ~Very good. Like I said, there is some danger, so Larz will probably like it, but we're sure to have it for you in a reasonable amount of time.~ */
 IF ~RandomNumGT(100,0)
RandomNumLT(100,71)~ THEN GOTO 18
 IF ~RandomNumGT(100,69)
~ THEN GOTO 19
END

IF ~~ THEN BEGIN 49 // from: MGAPPR03:32.1
 SAY #41857 /* ~We'll be okay. We've got to learn this stuff sooner or later. A few days from now and we'll be laughing about how hard we thought it was.~ */
 IF ~~ THEN DO ~SetGlobal("Apprenti","GLOBAL",9)
SetGlobalTimer("ApprentiBuildTimer","GLOBAL",FOUR_DAYS)~ EXIT
END

IF ~~ THEN BEGIN 77 // from: 84.2 72.3 71.2
 SAY #41915 /* ~Then... then the staff of power it shall be. A half-week. Check back then. You'll know in a few days if it worked.~ */
 IF ~RandomNumGT(100,0)
RandomNumLT(100,60)~ THEN GOTO 95
 IF ~RandomNumGT(100,60)~ THEN GOTO 96
END

IF ~~ THEN BEGIN 95 // from: 77.0
 SAY #41956 /* ~If this gambit succeeds the accomplishment will be nothing short of legendary. Send a good word toward Tymora, will you?~ */
 IF ~~ THEN DO ~SetGlobal("KillLarz","GLOBAL",1)
SetGlobal("DropElvenChain","AR0411",1)
SetGlobal("KillNara","GLOBAL",1)
SetGlobal("KillMorul","GLOBAL",1)
SetGlobalTimer("ApprentiBuildTimer","GLOBAL",FOUR_DAYS)
SetGlobalTimer("TeolAppear","GLOBAL",ONE_DAY)~ EXIT
END

IF ~~ THEN BEGIN 96 // from: 77.1
 SAY #41957 /* ~If this gambit succeeds the accomplishment will be nothing short of legendary. Send a good word toward Tymora, will you?~ */
 IF ~~ THEN DO ~SetGlobal("KillLarz","GLOBAL",1)
SetGlobal("KillNara","GLOBAL",1)
SetGlobal("KillMorul","GLOBAL",1)
SetGlobalTimer("ApprentiBuildTimer","GLOBAL",FOUR_DAYS)
SetGlobalTimer("TeolAppear","GLOBAL",ONE_DAY)~ EXIT
END

Mourner5 - The Cernd interjection will never happen if IsValidForPartyDialog("Mazzy"), even though the Mazzy interjection will only occur once (meaning it blocks Cernd forever).

IF ~~ THEN BEGIN 2 // from: MOURNER6:2.0
 SAY #26609 /* ~Shhh. Shhh, my sweet. It will be all right.~ */
 IF ~~ THEN GOTO 3
 IF ~IsValidForPartyDialog("Mazzy")
Global("mourner5mazzy","AR0800",0)~ THEN DO ~SetGlobal("mourner5mazzy","AR0800",1)~ EXTERN ~MAZZYJ~ 84
 IF ~!IsValidForPartyDialog("Mazzy")
IsValidForPartyDialog("Cernd")
Global("mourner5cernd","AR0800",0)~ THEN DO ~SetGlobal("mourner5cernd","AR0800",1)~ EXTERN ~CERNDJ~ 78
END

BKeldo25 - It looks like both (identical) replies will be made available, even though only one should be presented (either IsValidForPartyDialog("Jan"), or not).

IF ~~ THEN BEGIN 55 // from: BAERIE25:154.2 BCERND25:54.2 BEDWIN25:35.3 BJAHEI25:100.2 BMAZZY25:67.2 BNALIA25:58.2 BVICON25:71.2
 SAY #69870 /* ~You... you are with child, Aerie? But... but you are not married! Unless we sanctify your union with <CHARNAME> this child will be a bast...~ */
 IF ~~ THEN REPLY #69872 /* ~Don't even go there, Keldorn!~ */ EXTERN ~BAERIE25~ 155
 IF ~InParty("Jan")
See("Jan")
!StateCheck("Jan",STATE_SLEEPING)~ THEN REPLY #69875 /* ~Don't even go there, Keldorn!~ */ EXTERN ~BJAN25~ 95
END

Link to comment

Yeah, I ended up having to redo the actions & triggers for the last batch of items.

 

SW2H14.DLG -- the first state has a transition with an invalid trigger (the transition to just tell it to shut up); these were accidentally left over from the familiar dialogue it was copied from, meaning you can rarely choose the reply to end dialogue right away (something like P1 has to be MASK_EVIL or MASK_something and !InventoryFull()).

Link to comment

Archived

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

×
×
  • Create New...