Jump to content

WK NPC Interjects


SimDing0

Recommended Posts

Can anyone think of an easy way to identify all the NPC interjects taking place in Watcher's Keep? I'm thinking about how to do the fix so the interjects work in SoA.
You could try doing a search for "Imoen2," as she has about 0 dialogue in SoA. You can also try checking for "Sarevok." Most of the Watcher's Keep creatures have the following prefixes: FS (related to the Final Seal), GOR (related to Demogorgon), SHU (the Vigil Knights), and TEL (the teleport maze (Yakman's level)). IIRC, most or all of the dialogues have the prefix "GOR."

 

Anyway, now that you pointed this out, it appears I don't fix this locally in every case, so here's what I'm currently updating: FSSPIR2, GORIMP01, GORMAD1, and GORODR1.

Link to comment

So far, this is the list I've compiled: weidu GORAPP1.DLG GORAPR.DLG GORCAMB.DLG GORDEMO.DLG GORGIT.DLG GORIMP01.DLG GORMAD1.DLG GORODR1.DLG GORPOL1.DLG --out ~/Desktop

 

Note that I don't think Yakman (GORMAD1) has any externs, only checks to see who's talking to him.

Link to comment

Most of these are prevented because of chapter checks. I got the exact same list (plus Fate Spirit dialogue, fsspir2) by using a GlobalGT("Chapter","GLOBAL",7) check through game dialogues. I checked the interjections to verify there's nothing ToB-specific. Fixed as follows in tob-dlg.d:

 

// making WK interjects available in SoA
REPLACE_TRIGGER_TEXT ~gorapp1~  ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gorapr~   ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gorcamb~  ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gordemo~  ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gorgit~   ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gorimp01~ ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gormad1~  ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gorodr1~  ~GlobalGT("Chapter","GLOBAL",7)~ ~~
REPLACE_TRIGGER_TEXT ~gorpol1~  ~GlobalGT("Chapter","GLOBAL",7)~ ~~

 

Yakman did have a few EXTERNs in there. Did you find any more devSin?

Link to comment

Did I find any a year ago that I can tell about now? You must be kidding...

 

The problem with interjections is that the dialogues should EXTERN FOOL25, so you need to be in ToB (otherwise, in SoA, instead of trying to access FOOLIO, it's going to try to link to the unloaded FOOL25).

 

Or something. Again, this is a year later...

 

EDIT: Damn. Beat me to it.

Link to comment

Scratch the previous code; this is for tob-dlg.d.

 

/////                                                  \\\\\
///// making WK interjects available in SoA            \\\\\
/////                                                  \\\\\

INTERJECT GORAPP1 6 cd_keldorn_wk1
== KELDORJ IF ~IsValidForPartyDialog("Keldorn") GlobalLT("Chapter","GLOBAL",8)~ THEN #70409 END GORAPP1 7
INTERJECT GORAPP1 6 cd_anomen_wk1
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70408 END GORAPP1 7

INTERJECT GORAPP1 10 cd_cernd_wk2
== CERNDJ IF ~IsValidForPartyDialog("Cernd") GlobalLT("Chapter","GLOBAL",8)~ THEN #70412 END GORAPP1 11
INTERJECT GORAPP1 10 cd_jaheira_wk2
== JAHEIRAJ IF ~IsValidForPartyDialog("Jaheira") GlobalLT("Chapter","GLOBAL",8)~ THEN #70413 END GORAPP1 11
INTERJECT GORAPP1 10 cd_viconia_wk2
== VICONIJ IF ~IsValidForPartyDialog("Viconia") GlobalLT("Chapter","GLOBAL",8)~ THEN #70411 END GORAPP1 11
INTERJECT GORAPP1 10 cd_korgan_wk2
== KORGANJ IF ~IsValidForPartyDialog("Korgan") GlobalLT("Chapter","GLOBAL",8)~ THEN #70410 END GORAPP1 11

INTERJECT GORAPR 10 cd_valygar_wk3
== VALYGARJ IF ~IsValidForPartyDialog("Valygar") GlobalLT("Chapter","GLOBAL",8)~ THEN #70416 END GORAPR 11
INTERJECT GORAPR 10 cd_edwin_wk3
== EDWINJ IF ~IsValidForPartyDialog("Edwin") GlobalLT("Chapter","GLOBAL",8)~ THEN #70415 END GORAPR 11
INTERJECT GORAPR 10 cd_aerie_wk3
== AERIEJ IF ~IsValidForPartyDialog("Aerie") GlobalLT("Chapter","GLOBAL",8)~ THEN #70414 END GORAPR 11
INTERJECT GORAPR 10 cd_nalia_wk3
== NALIAJ IF ~IsValidForPartyDialog("Nalia") GlobalLT("Chapter","GLOBAL",8)~ THEN #70417 END GORAPR 11

INTERJECT GORCAMB 0 cd_haerdalis_wk4
== HAERDAJ IF ~IsValidForPartyDialog("HaerDalis") !Global("INTOB","GLOBAL",1)~ THEN #70542 DO ~AddXP2DA("PLOT2C")~ END GORCAMB 66

INTERJECT GORCAMB 17 cd_minsc_wk5
== MINSCJ IF ~IsValidForPartyDialog("Minsc") GlobalLT("Chapter","GLOBAL",8)~ THEN #70550 END GORCAMB 18
INTERJECT GORCAMB 17 cd_imoen2_wk5
== IMOEN2J IF ~IsValidForPartyDialog("Imoen2") GlobalLT("Chapter","GLOBAL",8)~ THEN #70551 END GORCAMB 18
INTERJECT GORCAMB 17 cd_haerdalis_wk5
== HAERDAJ IF ~IsValidForPartyDialog("HaerDalis") GlobalLT("Chapter","GLOBAL",8)~ THEN #70549 END GORCAMB 18

INTERJECT GORDEMO 1 cd_keldorn_wk6
== KELDORJ IF ~IsValidForPartyDialog("Keldorn") GlobalLT("Chapter","GLOBAL",8)~ THEN #70500 END GORDEMO 2
INTERJECT GORDEMO 1 cd_viconia_wk6
== VICONIJ IF ~IsValidForPartyDialog("Viconia") GlobalLT("Chapter","GLOBAL",8)~ THEN #70503 END GORDEMO 2
INTERJECT GORDEMO 1 cd_anomen_wk6
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70502 END GORDEMO 2
INTERJECT GORDEMO 1 cd_aerie_wk6
== AERIEJ IF ~IsValidForPartyDialog("Aerie") GlobalLT("Chapter","GLOBAL",8)~ THEN #70501 END GORDEMO 2

INTERJECT GORDEMO 18 cd_haerdalis_wk7
== HAERDAJ IF ~IsValidForPartyDialog("HaerDalis") GlobalLT("Chapter","GLOBAL",8)~ THEN #70506 EXIT
INTERJECT GORDEMO 18 cd_anomen_wk7
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70504 EXIT
INTERJECT GORDEMO 18 cd_keldorn_wk7
== KELDORJ IF ~IsValidForPartyDialog("Keldorn") GlobalLT("Chapter","GLOBAL",8)~ THEN #70505 EXIT

INTERJECT GORDEMO 24 cd_imoen2_wk8
== IMOEN2J IF ~IsValidForPartyDialog("Imoen2") GlobalLT("Chapter","GLOBAL",8)~ THEN #70512 EXIT
INTERJECT GORDEMO 24 cd_anomen_wk8
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70513 EXIT
// no need for sarevok here

INTERJECT GORGIT 1 cd_jan_wk9 // didn't like the = with strrefs so use redundant == JANJs
== JANJ IF ~IsValidForPartyDialog("Jan") GlobalLT("Chapter","GLOBAL",8)~ THEN #70422 == JANJ #70423 == JANJ #70428 END GORGIT 3

INTERJECT GORIMP01 7 cd_imoen2_wk10
== IMOEN2J IF ~IsValidForPartyDialog("Imoen2") GlobalLT("Chapter","GLOBAL",8)~ THEN #70421 END GORIMP01 8
INTERJECT GORIMP01 7 cd_haerdalis_wk10
== HAERDAJ IF ~IsValidForPartyDialog("HaerDalis") GlobalLT("Chapter","GLOBAL",8)~ THEN #70420 END GORIMP01 8

INTERJECT GORMAD1 8 cd_viconia_wk11
== VICONIJ IF ~IsValidForPartyDialog("Viconia") GlobalLT("Chapter","GLOBAL",8)~ THEN #70552 END GORMAD1 10
INTERJECT GORMAD1 8 cd_aerie_wk11
== AERIEJ IF ~IsValidForPartyDialog("Aerie") GlobalLT("Chapter","GLOBAL",8)~ THEN #70553 END GORMAD1 11
INTERJECT GORMAD1 8 cd_keldorn_wk11
== KELDORJ IF ~IsValidForPartyDialog("Keldorn") GlobalLT("Chapter","GLOBAL",8)~ THEN #70554 END GORMAD1 11

INTERJECT GORODR1 11 cd_mazzy_wk12
== MAZZYJ IF ~IsValidForPartyDialog("Mazzy") GlobalLT("Chapter","GLOBAL",8)~ THEN #70523 END GORODR1 12
// skipping sarevok here
INTERJECT GORODR1 11 cd_korgan_wk12
== KORGANJ IF ~IsValidForPartyDialog("Korgan") GlobalLT("Chapter","GLOBAL",8)~ THEN #70521 END GORODR1 12

INTERJECT GORODR1 19 cd_jaheira_wk13
== JAHEIRAJ IF ~IsValidForPartyDialog("Jaheira") GlobalLT("Chapter","GLOBAL",8)~ THEN #70524 END GORODR1 20
INTERJECT GORODR1 19 cd_jan_wk13
== JANJ IF ~IsValidForPartyDialog("Jan") GlobalLT("Chapter","GLOBAL",8)~ THEN #70526 END GORODR1 20
INTERJECT GORODR1 19 cd_haerdalis_wk13
== HAERDAJ IF ~IsValidForPartyDialog("HaerDalis") GlobalLT("Chapter","GLOBAL",8)~ THEN #70527 END GORODR1 20

INTERJECT GORODR1 35 cd_korgan_wk14
== KORGANJ IF ~IsValidForPartyDialog("Korgan") GlobalLT("Chapter","GLOBAL",8)~ THEN #70528 END GORODR1 36
INTERJECT GORODR1 35 cd_valygar_wk14
== VALYGARJ IF ~IsValidForPartyDialog("Valygar") GlobalLT("Chapter","GLOBAL",8)~ THEN #70529 END GORODR1 36
INTERJECT GORODR1 35 cd_minsc_wk14
== MINSCJ IF ~IsValidForPartyDialog("Minsc") GlobalLT("Chapter","GLOBAL",8)~ THEN #70530 END GORODR1 36

INTERJECT GORODR1 44 cd_keldorn_wk15
== KELDORJ IF ~IsValidForPartyDialog("Keldorn") GlobalLT("Chapter","GLOBAL",8)~ THEN #70532 END GORODR1 35
INTERJECT GORODR1 44 cd_mazzy_wk15
== MAZZYJ IF ~IsValidForPartyDialog("Mazzy") GlobalLT("Chapter","GLOBAL",8)~ THEN #70533 END GORODR1 35
INTERJECT GORODR1 44 cd_imoen2_wk15
== IMOEN2J IF ~IsValidForPartyDialog("Imoen2") GlobalLT("Chapter","GLOBAL",8)~ THEN #70534 END GORODR1 35
INTERJECT GORODR1 44 cd_anomen_wk15
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70531 END GORODR1 35

INTERJECT GORODR1 50 cd_edwin_wk16
== EDWINJ IF ~IsValidForPartyDialog("Edwin") GlobalLT("Chapter","GLOBAL",8)~ THEN #70537 EXIT
INTERJECT GORODR1 50 cd_korgan_wk16
== KORGANJ IF ~IsValidForPartyDialog("Korgan") GlobalLT("Chapter","GLOBAL",8)~ THEN #70536 EXIT
INTERJECT GORODR1 50 cd_imoen2_wk16
== IMOEN2J IF ~IsValidForPartyDialog("Imoen2") GlobalLT("Chapter","GLOBAL",8)~ THEN #70535 EXIT

INTERJECT GORODR1 53 cd_jaheira_wk17
== JAHEIRAJ IF ~IsValidForPartyDialog("Jaheira") GlobalLT("Chapter","GLOBAL",8)~ THEN #70541 END GORODR1 54
INTERJECT GORODR1 53 cd_viconia_wk17 // Viccy can't be non-evil in SoA, ignore MASK_EVIL trigger
== VICONIJ IF ~IsValidForPartyDialog("Viconia") GlobalLT("Chapter","GLOBAL",8)~ THEN #70540 END GORODR1 54
INTERJECT GORODR1 53 cd_anomen_wk17
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70539 END GORODR1 54

INTERJECT GORPOL1 1 cd_cernd_wk18
== CERNDJ IF ~IsValidForPartyDialog("Cernd") GlobalLT("Chapter","GLOBAL",8)~ THEN #70520 END GORODR1 8
INTERJECT GORPOL1 1 cd_keldorn_wk18
== KELDORJ IF ~IsValidForPartyDialog("Keldorn") GlobalLT("Chapter","GLOBAL",8)~ THEN #70519 END GORODR1 8
INTERJECT GORPOL1 1 cd_anomen_wk18
== ANOMENJ IF ~IsValidForPartyDialog("Anomen") GlobalLT("Chapter","GLOBAL",8)~ THEN #70518 END GORODR1 8

Link to comment

There's one problem in at least one of these (the only one I've looked at so far):

 

GORAPR interjects are structured such that the list cycles through NALIA -> AERIE -> EDWIN -> VALYGAR. In SoA, your interjects are only going to shoot for NALIA | AERIE | EDWIN | VALYGAR (i.e., rather than going from AERIEJ to EDWINJ to VALYGARJ, you're just going to get AERIEJ).

Link to comment

Argh, I missed that entirely. Scratch that whole GORAPR 10 block and replace with this:

 

EXTEND_BOTTOM GORAPR 10
IF ~IsValidForPartyDialog("Valygar") GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN VALYGARJ cd_valygar_wk3
IF ~IsValidForPartyDialog("Edwin")   GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN EDWINJ cd_edwin_wk3
IF ~IsValidForPartyDialog("Aerie")   GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN AERIEJ cd_aerie_wk3
IF ~IsValidForPartyDialog("Nalia")   GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN NALIAJ cd_nalia_wk3
END

APPEND NALIAJ
 IF ~~ THEN BEGIN cd_nalia_wk3 SAY #70417
   IF ~~ THEN EXTERN GORAPR 11
   IF ~IsValidForPartyDialog("Valygar") GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN VALYGARJ cd_valygar_wk3
   IF ~IsValidForPartyDialog("Edwin")   GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN EDWINJ cd_edwin_wk3
   IF ~IsValidForPartyDialog("Aerie")   GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN AERIEJ cd_aerie_wk3
 END
END

APPEND AERIEJ
 IF ~~ THEN BEGIN cd_aerie_wk3 SAY #70414
   IF ~~ THEN EXTERN GORAPR 11
   IF ~IsValidForPartyDialog("Valygar") GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN VALYGARJ cd_valygar_wk3
   IF ~IsValidForPartyDialog("Edwin")   GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN EDWINJ cd_edwin_wk3
 END
END

APPEND EDWINJ
 IF ~~ THEN BEGIN cd_edwin_wk3 SAY #70415
   IF ~~ THEN EXTERN GORAPR 11
   IF ~IsValidForPartyDialog("Valygar") GlobalLT("Chapter","GLOBAL",8)~ THEN EXTERN VALYGARJ cd_valygar_wk3
 END
END

APPEND VALYGARJ
 IF ~~ THEN BEGIN cd_valygar_wk3 SAY #70416
   IF ~~ THEN EXTERN GORAPR 11
 END
END

 

Since COPY_TRANS is processed before everything else, I can't pyramid these as an I_C_T series. :)

Link to comment

And, to suck even more, some of the responses are mutually exclusive (Jaheira/Cernd, Aerie/Nalia). For GorApr, it's actually (Nalia|Aerie)->Edwin->Valygar, such that the code would be something like

EXTEND_BOTTOM GORAPR 10
IF ~IsValidForPartyDialogue("Valygar")GlobalLT("Chapter","GLOBAL",8)~ EXTERN VALYGARJ cd_valygar_wk3
IF ~IsValidForPartyDialogue("Edwin")GlobalLT("Chapter","GLOBAL",8)~ EXTERN EDWINJ cd_edwin_wk3
IF ~IsValidForPartyDialogue("Aerie")GlobalLT("Chapter","GLOBAL",8)~ EXTERN AERIEJ cd_aerie_wk3
IF ~IsValidForPartyDialogue("Nalia")GlobalLT("Chapter","GLOBAL",8)~ EXTERN NALIAJ cd_nalia_wk3
END

APPEND NALIAJ
IF ~~ cd_nalia_wk3 SAY #70417
// SoA-style triggers for that special touch
IF ~!IsValidForPartyDialogue("Edwin")!IsValidForPartyDialogue("Valygar")~ EXTERN GORAPR 11
IF ~IsValidForPartyDialogue("Edwin")~ EXTERN EDWINJ cd_edwin_wk3
IF ~!IsValidForPartyDialogue("Edwin")IsValidForPartyDialogue("Valygar")~ EXTERN VALYGARJ cd_valygar_wk3
END
END

APPEND AERIEJ
IF ~~ cd_aerie_wk3 SAY #70414
// SoA-style triggers for that special touch
IF ~!IsValidForPartyDialogue("Edwin")!IsValidForPartyDialogue("Valygar")~ EXTERN GORAPR 11
IF ~IsValidForPartyDialogue("Edwin")~ EXTERN EDWINJ cd_edwin_wk3
IF ~!IsValidForPartyDialogue("Edwin")IsValidForPartyDialogue("Valygar")~ EXTERN VALYGARJ cd_valygar_wk3
END
END

APPEND EDWINJ
IF ~~ cd_edwin_wk3 SAY #70415
IF ~!IsValidForPartyDialogue("Valygar")~ EXTERN GORAPR 11
IF ~IsValidForPartyDialogue("Valygar")~ EXTERN VALYGARJ cd_valygar_wk3
END
END

APPEND VALYGARJ
IF ~~ cd_valygar_wk3 SAY #70416
IF ~~ EXTERN GORAPR 11
END
END

Link to comment

Archived

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

×
×
  • Create New...