SimDing0 Posted February 24, 2005 Share Posted February 24, 2005 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. Link to comment
devSin Posted February 24, 2005 Share Posted February 24, 2005 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
devSin Posted February 24, 2005 Share Posted February 24, 2005 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
CamDawg Posted February 1, 2006 Share Posted February 1, 2006 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
CamDawg Posted February 1, 2006 Share Posted February 1, 2006 Hehe. Grim was kind enough to point that there may be a slight issue that the characters don't have their ToB dialogue files yet, so we've got a slightly bigger fix to do here. Link to comment
devSin Posted February 1, 2006 Share Posted February 1, 2006 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
devSin Posted February 1, 2006 Share Posted February 1, 2006 And Sim mentioned somewhere that you can just APPEND to the ToB states on the SoA dialogue files and then do a ChapterLT(8) EXTERN not25dlg. Or something. Again, this is a year later... Link to comment
CamDawg Posted February 1, 2006 Share Posted February 1, 2006 Yep, that's what I'm going to do. And here I thought I had a nice simple fix... now I remember why this was sitting at the ass-end of the Pending forum. Link to comment
devSin Posted February 1, 2006 Share Posted February 1, 2006 Yeah, I never even bothered to do anything except reinforce the ToB EXTERNs so that they never get stuck in SoA. Things sitting in pending are usually stuff even I don't want to think about. Link to comment
CamDawg Posted February 2, 2006 Share Posted February 2, 2006 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
devSin Posted February 2, 2006 Share Posted February 2, 2006 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
CamDawg Posted February 2, 2006 Share Posted February 2, 2006 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
devSin Posted February 2, 2006 Share Posted February 2, 2006 Almost all of these are pretty complex. The only ones that aren't going to suck look like GORMAD1 and GORODR1 (GORPOL1 breaks --transitive, so she may or may not be OK). Link to comment
devSin Posted February 2, 2006 Share Posted February 2, 2006 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
the bigg Posted February 2, 2006 Share Posted February 2, 2006 How about giving the NPCs the *25 .dlg files while you are in WK? Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.