Jump to content

jastey

Gibberlings
  • Posts

    13,696
  • Joined

  • Last visited

Posts posted by jastey

  1. @Lightbringer thanks for the kind words!

    I'm not sure the two mods will go together so well after Imoen is recovered from Spellhold, though. The dialogues from IR are written with Imoen being away: she doesn't know the other NPCs, she asks why it took the PC so long, etcpp... Playing the two mods together needs a lot of head canon and ignoring of wrong references in Imoen's dialogues and her interaction with other NPCs, I fear. Still, thaks for your enthousiasm and I hope you enjoy your playthrough!

  2. What I do currently is I detect the subrace mods, then install an additional script block which sets a variable in case the PC is Drow or Half-Drow. What I would need for your mod is how to detect this. Does a check for Race(Player1,Drow), Race(Player1,Half-Drow) work like for Corsymyr's BG:EE Subrace mod or would I need something else?

  3. @Lightbringer I don't know the Iomen Romnce too well, but since you asked about I4E:

    Mein events are

    -Imoen gets taken as usual at the Promenade

    -Imoen returns to party after they left Gaelan's house in the slums

    -Imoen has some reactions to PC's dreams, but I think I made those optional

    -Upon arriving Brynnlaw, Imoen gets taken after leaving the ship (after the fight with Bodhi's Welcome Committee).

    -Game continues as normal.

    Note that the cutscenes are changed as well, since now it's not Imoen irenicus makes his experiments on.

  4. This is a quick tutorial how to insert additional dialogue lines into mod added lines. This can be used to make parts of your own mod optional (as in the example below). It is also the choice for crossmod into other mods where e.g. your mod NPC should interject into lines of a quest mod.


    Note: STATE_WHICH_SAYS only works if that line does not exist more than once in the specified dlg, i.e. only one dialogue state with this text line should be existent in the dlg or the patching will fail.

    Also: The mod /contents you want to interject into has to be installed already (obviously). Checks for installation are not included in the example below as it is not necessary in this case (because the main component has to be installed in this case).

    The example is taken from Endless BG1: The main component inserts dialogue for Duke Belt where the PC is called "Hero of Baldur's Gate". If only the main component of Endless BG1 is installed, the dialogue lines go the following:

    Spoiler

    ~<CHARNAME>, you were successful! You defeated Sarevok who conspired against the city, the Sword Coast, even Amn - for his own dark goals and purpose.~
    = ~You opened our eyes to the deceit and saved us from a great peril while we remained blind to the threat. By the power bestowed upon me as Duke of the Council of Four of this city I herewith name you "Hero of Baldur's Gate"! On behalf of the city let me express our deepest gratitude!~
    = ~<CHARNAME>, Hero of Baldur's Gate. Are you ready to combine forces with the Flaming Fist and go against the last followers of Sarevok?~

     

    The second component of Endless BG1 inserts another line from Duke Belt giving the room on the 3rd floor of the Palace to the PC as their quarters.

    For this, the component should insert the new line

    Quote

    ~With the title come official quarters for you on the third level of the Ducal Palace! The servants will help you settle in as soon as you are ready. Everyone, praise our Hero of Baldur's Gate!~

    after the 2nd line:

    Quote

    ~You opened our eyes to the deceit and saved us from a great peril while we remained blind to the threat. By the power bestowed upon me as Duke of the Council of Four of this city I herewith name you "Hero of Baldur's Gate"! In the name of the city let me express our deepest gratitude!~

     

    To do this, we first need to read in the state number of the line we want to interject into so we can use INTERJECT_COPY_TRANS (I_C_T). The main component is installed so inside the player's game this line is now a normal state in BELT.dlg. Since the line was added by Endless BG1's first component itself, we do not have a fixed number but need to evaluate the state number using STATE_WHICH_SAYS.

    STATE_WHICH_SAYS needs the following specifications:
    - the dlg the line is in. Here it is "BELT".
    - a name for the variable for the state number which we will use internally in our mod. You can name this anything you want and it should be something unique in your mod. In this example it will be "belt_victory_01".
    - we also need to know the tra line we want to search for. In this case, it is @1 in ~c#endlessbg1/translations/%s/dialogues.tra~.
    Note: if you interject into another mod, this will work even if the other mod is installed in another language than yours!

    Inside the tp2 we now have:

    // Get state for BELT %belt_victory_01%
    /* ~You opened our eyes to the deceit and saved us from a great peril while we remained blind to the threat. By the power bestowed upon me as Duke of the Council of Four of this city I herewith name you "Hero of Baldur's Gate"! In the name of the city let me express our deepest gratitude!~
    */
    OUTER_SET belt_victory_01 = STATE_WHICH_SAYS 1 IN ~c#endlessbg1/translations/%s/dialogues.tra~ FROM ~BELT~

    After this, the state number will be stored in %belt_victory_01% and can be used inside the mod.

    In our example, it is used inside the d-file "add_ee.d", which containes the following. This is a normal I_C_T where the state number is our variable:
     

    I_C_T BELT %belt_victory_01% c#st_belt_victory_01
    == BELT @42 /* ~With the title come official quarters for you on the third level of the Ducal Palace! The servants will help you settle in as soon as you are ready. Everyone, praise our Hero of Baldur's Gate!~ */
    END

    And in the tp2, we add the compilation of this d-file with EVALUATE_BUFFER so the variable will evaluated (note: I put all tra lines fom Endless BG1 into one file "dialogues.tra" that is why it is specified here):
     

     COMPILE EVALUATE_BUFFER ~c#endlessbg1/pc_palaceresidence/add_ee.d~ USING ~c#endlessbg1/translations/%s/dialogues.tra~

    And that's it! The dialogue from Duke Belt ingame now reads:

    Spoiler

    ~<CHARNAME>, you were successful! You defeated Sarevok who conspired against the city, the Sword Coast, even Amn - for his own dark goals and purpose.~
    = ~You opened our eyes to the deceit and saved us from a great peril while we remained blind to the threat. By the power bestowed upon me as Duke of the Council of Four of this city I herewith name you "Hero of Baldur's Gate"! On behalf of the city let me express our deepest gratitude!~
    = ~With the title come official quarters for you on the third level of the Ducal Palace! The servants will help you settle in as soon as you are ready. Everyone, praise our Hero of Baldur's Gate!~
    = ~<CHARNAME>, Hero of Baldur's Gate. Are you ready to combine forces with the Flaming Fist and go against the last followers of Sarevok?~

     

  5. 2 minutes ago, Austin said:

    The compatibility with "Imoen Forever" is done in the form of variable checks, so it will work as you said, anyway

    Ah, I got it wrong in the first post. Cool!

    2 minutes ago, Austin said:

    Therefore, it would be too difficult to transfer them to a separate component, it would require a strong rework of the mod

    I understand. It would be possible to insert the comments later, though. I do it in Endless BG1 where the (I think) 2nd component inserts more dialogue lines into the ones from the main component, for example. Let me know if you want me to give examples how I'd do it.

  6. Congrats on the release!

    Putting the install after all NPC mods is bad for more compatibility, though - unless you want to include all crossmod into your mod. I would suggest making the crossmod an own component that can be installed later.

    11 hours ago, Austin said:

    5) Jastey’s «Imoen 4 Ever» mod

    :wub2: You could make the compatibility also independent on I4E if you use the variables specified in the readme, but install order I4E before this mod makes sense anyhoe. Thank you for considering!

  7. I'd vote for a separate something, either a component in the mod that is installed last or a separate add-on. This way, everyone has the choice and noone a reason to complain about original mod content being gone etc.

    I am sure that adding a compatibility component to one of the mods could be organized, but I'm saying this without having any maintenance authorization over either of them.

  8. 12 hours ago, Austin said:

    I cannot add the changelog to the readme, because the readme is in an uneditable format.

    html files can be opened by editors, e.g. Notepad++

    12 hours ago, Austin said:

    Our translators tried very hard on the text and are waiting for their work to be added to the mod

    I understand, but activity of Gibberlings and admins varies and is low currently. I am working on a flood of modding requests, mod updates for mods that are not my own, and my own projects I want to finish.

    This is on my list and I'll prepare an update when I'll find the time - unless someone else steps in first. It will still need an admin to approve of any update we provide because I lack the rights to Mur'Neth's GitHub repo.

  9. 4 hours ago, Roberciiik said:

    Is it possible to start script from banter file instead of switching?

    I'd rather keep the J.dlg after the banter started with it. The B.dlg is full of dialogues that trigger when the time is right - mixing this with timered talks is not a good idea. It's usually: the J.dlg is for timered and via script initiated dialogues, the B.dlg contains states that gets tiggered by the engine and have true triggers (for certain conditions).

    Do you think we could test this somehow before someone starts changing all dialogues that are affected? I guess you want to finish your current runthrough before reinstalling mods on both of your games...

  10. Thanks for the tests!

    9 hours ago, Roberciiik said:

    - Dynaheir is controlled by me, Minsc controlled by host: issue occurred.

    And the banter always ended after Dynaheir's line? I would have thought that if Minsc is controlled by the host the switch between dlgs should work..

    I would believe it is an engine problem, yes. At least I don't have any other explanation. The only thing I see is to change the whole banter to use the same dlg for Minsc all the way. This does not only concern these two with Dynaheir, though. I think all banters in BG1NPC that are triggered by script switch to teh banter file after being started vir the joined dlg..

  11. OK. I do start to think there is something fishy with your install tbh. I managed to destroy several installs even without obvious things like aborted mod installations or starting several install windows at once etc. (which usually lead to a borked install right away). Still, at some point I noticed the game is done for with ressources in it that shouldn't be there or mixed up strings in the dialog.tlk etc. although no mod was installed. I usually start with a fresh game in those cases.

  12. @Lauriel how exactly did you install the mod? Did you do it in several steps? Did you rearrange the components afterwards?

    The tp2 contains the following with regard to Wilson:

    //////////////////////////////////////////////////////////////////////////////////
    ////Give WILSON banter file as used in the Wilson chronicles ///
    //////////////////////////////////////////////////////////////////////////////////
    
    
    ACTION_IF FILE_EXISTS_IN_GAME ~wilson.dlg~ THEN BEGIN
     PRINT ~Wilson detected - Wilson interdia.2da append - set Wilsons's banter file (BWILSON & BWILSO25)~
        APPEND ~interdia.2da~ ~WILSON BWILSON BWILSO25~
        UNLESS ~WILSON~
       ACTION_IF NOT (FILE_EXISTS_IN_GAME ~BWILSON.dlg~) THEN BEGIN
          <<<<<<<< ...inlined/BWILSON.d
          BEGIN BWILSON
          >>>>>>>>
          COMPILE ~...inlined/BWILSON.d~
      END
       ACTION_IF NOT (FILE_EXISTS_IN_GAME ~BWILSO25.dlg~) THEN BEGIN
          <<<<<<<< ...inlined/BWILSO25.d
          BEGIN BWILSO25
          >>>>>>>>
          COMPILE ~...inlined/BWILSO25.d~
      END
    END

    This should be fail-safe - but it is only done once, no matter how many times the optional mod components are re- or deinstalled afterwards. It seems that after installing the main component those Wilson dlg files somehow got lost on your BGII game, which is weird. Also, if you installed the mod there should be a DEBUG. If you have the mod installed and no DEBUG then something went very wrong I would say.

×
×
  • Create New...