Jump to content

Trouble with INTERJECT_COPY_TRANS


Recommended Posts

I've been adding interjections into my Gorgon's Eye mod, but for some reason Imoen's are the only ones that are actually triggering. I went back to this test block with other companions after noticing they weren't working. It's just a simple one-liner said to a mod-added creature in the middle of their dialog.

This will work:

INTERJECT_COPY_TRANS h_yumild 1 imotoyum1
  == IMOEN2 IF ~IsValidForPartyDialogue("Imoen")~ THEN
    ~I've always loved a good ghost story.~
END

This will not work:

INTERJECT_COPY_TRANS h_yumild 1 imotoyum1
  == AJANTI IF ~IsValidForPartyDialogue("Ajantis")~ THEN
    ~I've always loved a good ghost story.~
END

For all non-Imoen companions, I can see that their interjections are being added to their dialog file, but not only do they not trigger, they also force the conversation to close instead of continuing to the next dialog block.

Seems weird, but maybe I'm missing something? Anything insight would be appreciated.

Link to comment

Maybe it's a dumb idea, but I think everytime I see INTERJECT_COPY_TRANS in this context it was used with the Joined dialog : AJANTJ, ALORAJ, BRANWJ...

Until someone who knows their stuff answers, it could perhaps maybe be worth a try.

Edited by JohnBob
Link to comment

Right. Joinable characters always have several different dialogue files, depending on their party status.

- Initial file: typically just the character's name or an abbreviation. This is the character's dialogue when first met, before ever joining the party.

- Joined file: typically adds a J to the end. This is the character's dialogue file when in the party.

- Post file: typically adds a P to the end. This is the character's dialogue file after they have been dismissed from the party.

- Banter file: typically adds a B to the front. This is an alternate dialogue file for the character in the party, accessible through the Interact() script action.

These are assigned to the characters through 2DA files; PDIALOG.2DA for the initial/joined/post transitions, and INTERDIA.2DA for the banters. Plus sometimes alternate versions of those 2DAs in different campaigns; SoD has BDDIALOG.2DA, for example. The 2DAs also serve as a convenient lookup table for the filenames to use.

If you try to jump to a file that doesn't apply right now, like using the initial file while the character is in the party, then the game looks around, finds nobody with the target dialogue file, and terminates out of the conversation.

Link to comment

@TotalMilk90 I can only recommend you have a look at the "Crossing the great divide" modding tutorial - not so that you can consider Tutu and BGT, but to see the principle of how to consider BG:EE and EET in one set of files.

That said, what you'd do is read in the cpmvars.tpa files with the definition of the NPCs' joined dialogue files, and then just use %AJANTIS_JOINED% for his dlg.

And another thing, if you want to see what the dlgs for the NPCs are, they are listed in the pdialog, 2da for BG1 & BGII / bpdialog.2da for SoD (POST_DIALOG_FILE; JOIN_DIALOG_FILE; DREAM_SCRIPT_FILE) and  interdia.2da (Banter dialogue file). They might differ for the games, that is why we use the cpmvar.tpa definitions. You can find those in almost all BG1 mods under "lib"; the ones for EET are included in the EET package itself.

Link to comment

@jmerry @jastey

Thanks for the lessons. My understanding of dialog was not at that level. The 2da files look really convenient and I wasn't aware of those at all. Also thanks for the link, I am interested in reading through it today.

Regarding the cpmvar, are you saying use its joined dialog file line in lieu of the "J"?
For instance, monty in the cpmvar list:  OUTER_SPRINT "MONTARON_JOINED" "MONTAJ"

Would simply be:

INTERJECT_COPY_TRANS h_yumild 1 imotoyum1
  == %MONTARON_JOINED% IF ~IsValidForPartyDialogue("Montaron")~ THEN
    ~I've always loved a good ghost story.~
END

Does handling it this way require adding anything to my tp2 file? 

I only vaguely remember using some of these for eet compatibility and that was a while ago.
 

Link to comment
40 minutes ago, TotalMilk90 said:

Does handling it this way require adding anything to my tp2 file? 

First, you need to include and read in the definitions, e.g.:

 ACTION_IF GAME_IS ~bgee~ THEN BEGIN
   INCLUDE ~AjantisBG1/lib/g3_bgee_cpmvars.tpa~
 END

 ACTION_IF GAME_IS ~eet~ THEN BEGIN
      INCLUDE ~EET/other/cpmvars/eet_cpmvars.tpa~
 END

Second, you need to tell the installer to evaluate the variables by adding EVALUATE_BUFFER, e.g.:

   COMPILE EVALUATE_BUFFER ~AjantisBG1/Friendship/Ajantis_friendship_d.d~

  EXTEND_TOP ~%tutu_var%ajantis.bcs~ ~AjantisBG1/ee/Ajantis_ee.baf~ EVALUATE_BUFFER 

 

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...