Jump to content

NPC mod: pdialog.2da, baldur.bcs for BG1, SoD, BGII...?


jastey

Recommended Posts

I am sorry if this is explained elsewhere (please give me the link).

 

Gavin BG1 adds Gavin's dialogue files to

//2da appending for dialogues
APPEND ~pdialog.2da~
~B!GAVIN   B!GAVINP   B!GAVINJ   B!GAVIND~
UNLESS ~B!GAVIN~

APPEND ~interdia.2da~
~B!GAVIN   BB!GAVIN~
UNLESS ~B!GAVIN~

For SoD, I guess it would be (appends to interdia.2da are the same as for BG1, I assume):

APPEND ~bddialog.2da~
~B!GAVIN   B!GAVINP   B!GAVINJ   B!GAVIND~
UNLESS ~B!GAVIN~

For BGII, the Gavin BGII mod adds this to the BGII pdialog.2da

//2da appending for dialogues
APPEND ~pdialog.2da~
~b!gavin2    b!gavp     b!gavj     b!gavd     b!gav25p     b!gav25j     b!gav25d     b!gav25s~
UNLESS ~b!gavin2~

APPEND ~interdia.2da~
~b!gavin2   bb!gav     bb!gav25~
UNLESS ~b!gavin2~ 

How do I treat this for EET, if I want to make an NPC combination of type 1 + 3 (treat the two Gavin mods separately)? How is the xxdialog.2da treated in general?

 

 

EDIT: My second question: how does EET treat the bdbaldur.bcs and baldur.bcs?

Link to comment

The active global script is defined in CAMPAIGN.2DA. It's BALDUR.BCS for BG1 and SoA, BDBALDUR.BCS for SoD and BALDUR25.BCS for ToB. CAMPAIGN.2DA also defines other 2DA resources, such as INTERDIA, PDIALOG, INTERACT, CLASTEXT and RACETEXT.

Example campaign.2da for EET:

2DA            V1.0
*
               WORLDSCRIPT    DESCRIPTION    ICON           INTERDIA       LOADHINT       MASTAREA       MUSIC          NAME           NPCLEVEL       TBPPARTY       PDIALOG        SAVE_DIR       STARTARE       STRTGOLD       STARTPOS       STWEAPON       25STWEAP       XPCAP          XPLIST         WORLDMAP       WORLDSCRIPT    MAP_DROPSHADOW MAP_FONTCOLOR  KEEP_POWERS    INTRO_MOVIE    IMPORT         INTERACT       YEARS          REPUTATION     CLASTEXT       RACETEXT
SOA            BALDUR         -1             2              INTERDIA       *              MASTAREA       33             -1             *              *              PDIALOG        save           STARTARE       STRTGOLD       STARTPOS       *              *              *              *              WORLDMAP       BALDUR         1              0xFFFFFFFF     1              INTRO15F       PARTY          INTERACT       YEARS          REPUTATI       CLASTEXT       RACETEXT
TOB            BALDUR25       -1             3              25BANTER       *              MASTAREA       81             -1             *              *              25DIALOG       save           25STARTA       STRTGOLD       25STARTP       25STWEAP       25STWEAP       *              *              WORLDMAP       BALDUR25       1              0xFFFFFFFF     0              INTRO          PARTY          INTERACT       25YEARS        REPUTATI       CLASTEXT       RACETEXT
BG1            BALDUR         -1             0              BGBANTER       *              MASTAREA       159            -1             *              *              BGDIALOG       save           BGSTARTA       STRTGOLD       BGSTARTP       STWEAPON       STWEAPON       *              *              WORLDMAP       BALDUR         1              0xFFFFFFFF     0              INTRO_         PARTY          INTERACT       BGYEARS        REPUTATI       BGCLATXT       BGRACTXT
SOD            BDBALDUR       -1             1              BDBANTER       *              MASTAREA       152            -1             *              *              BDDIALOG       save           SODSTRTA       STRTGOLD       SODSTPOS       SODWEAP        BDSTWEAP       *              *              BGMAP          BDBALDUR       1              0xFFFFFFFF     1              SODCIN01       PARTY          SODINTER       SODYEARS       REPUTATI       SODCLTXT       SODRACE
BP1            BALDUR         -1             4              *              *              MASTAREA       106            -1             *              TBPPART_       *              bpsave         STARTBP_       STRTGOLD       *              *              *              *              *              WORLDMAP       BALDUR         1              0xFFFFFFFF     0              BLACKPI_       PARTY          *              BGYEARS        *              *              *
BP2            BALDUR         -1             5              *              *              MASTAREA       106            -1             *              TBPPARTY       *              bpsave         STARTBP        STRTGOLD       *              *              *              *              *              WORLDMAP       BALDUR         1              0xFFFFFFFF     0              BLACKPIT       PARTY          *              YEARS          *              *              *
TUT            BALDUR         -1             6              *              *              MASTAREA       136            -1             *              *              *              save           TUSTARTA       STRTGOLD       TUSTARTP       STWEAPON       STWEAPON       *              *              WORLDMAP       BALDUR         1              0xFFFFFFFF     0              BGENTER        PARTY          *              BGYEARS        REPUTATI       BGCLATXT       BGRACTXT
Link to comment

Thank you! This means that if I install an NPC mod to an existing EET game, in the tp2 I would need all of these (I'll take the Gavin references for now, even though it's officially two different mods with different dv)?

 

(Is the ToB override-script patching "b!gav25s" correct?)

BG1:

//2da appending for dialogues
APPEND ~BGDIALOG.2da~
~B!GAVIN   B!GAVINP   B!GAVINJ   B!GAVIND~
UNLESS ~B!GAVIN~

APPEND ~BGBANTER.2da~
~B!GAVIN   BB!GAVIN~
UNLESS ~B!GAVIN~

SoD:

APPEND ~BDDIALOG.2da~
~B!GAVIN   B!GAVINP   B!GAVINJ   B!GAVIND~
UNLESS ~B!GAVIN~

APPEND ~BDBANTER.2da~
~B!GAVIN   BB!GAVIN~
UNLESS ~B!GAVIN~

SoA:

APPEND ~pdialog.2da~
~b!gavin2 b!gavp b!gavj b!gavd~
UNLESS ~b!gavin2~

APPEND ~interdia.2da~
~b!gavin2 bb!gav bb!gav25~
UNLESS ~b!gavin2~ 

ToB:

APPEND ~25DIALOG.2da~
~b!gav25p     b!gav25j     b!gav25d     b!gav25s~
UNLESS ~b!gavin2~

APPEND ~25BANTER.2da~
~b!gavin2   bb!gav     bb!gav25~
UNLESS ~b!gavin2~ 
Link to comment

It really depends on what you try to achieve.

EET (per default) takes the standard 2da entries for mods and automatically adds them to SoD etc (UNLESS you require something different).

 

My example

APPEND ~pdialog.2da~
~CVSandr CVSandrP CVSandrJ CVSandrD CVSan25P CVSan25J CVSan25D CVSan25~
UNLESS ~CVSandr~

APPEND ~interdia.2da~
~CVSandr BSandr BSandr25 ~
UNLESS ~CVSandr~

 

Results in the non-25 banter files are used from BG1 until switch to ToB - thereafter the 25's.

The non-25 joined and parting files are used throughout - even though you put your ToB contents into the 25 file which is referenced (EET will do the merge)

 

Without me doing anything, the entry in BDDialog.2da AND BGDialog.2da is this

CVSandr CVSandrP CVSandrJ CVSandrD

and in BDBanter.2da AND BGBanter.2da

CVSandr BSandr

 

PS - If you still remember the discussion about the NPC banters in SoD, the horrible situation at this time is that the vanilla NPCs have special banter files assigned for that campaign ALTHOUGH they do not use them and the *banters* are displayed as strings over their heads instead. Here is the reason why.

Link to comment

Thank you! But I am confused about the SoD banter file assignment. There is no BDBANTER.2DA in original SoD? How do I know which banter files are assigned (in SoD without EET - this is OT)?

Sorry, there was a mistake in my previous description (for the ToB files). I have corrected it.

 

As for banters in the vanilla SoD, there are none for the vanilla NPCs. If I remember correctly from developping my SoD contents before EET was released, the BG1 banter continued for my NPC - but banters failed after the opening line because the counterpart had no file assigned. e.g. Sandrah detected Safana and started a b-file banter but there was no response.

Link to comment

Ah, so SoD works with a BDBanter.2da which doesn't exist in vanilla SoD, so to say. Thank you!

In hindsight - this is from memory - I started a short game in BGEE just enough to have Sandrah join the PC. I then exported them to SoD for my testing. It may be that due to this process she kept her banter file assignment. So *normal* game play may differ, it is better to test this again.

I never play the stand alone games, so be careful.

Link to comment

sorry for late reply. What Roxanne mentioned about PDIALOG.2DA file patching is correct.

In short all you need to patch for BG2 Gavin is PDIALOG.2DA the same way as you would do in vanilla BG2:EE. setup-EET.exe will automatically update ToB version of these files to include your Gavin references (25DIALOG.2DA). You can do it manually yourself but the result would be the same since the last component in install order checks those files and extracts ToB references to correct files.

 

As for banters in the vanilla SoD, there are none for the vanilla NPCs. If I remember correctly from developing my SoD contents before EET was released, the BG1 banter continued for my NPC - but banters failed after the opening line because the counterpart had no file assigned. e.g. Sandrah detected Safana and started a b-file banter but there was no response.

banter files are switched on each campaign automatically via CAMPAIGN.2DA. BG1 uses BGBanter.2da, no changes to dlg files but some of them are renamed due to conflicts with BG2 resources (this in handled automatically if mod is installed on BG:EE). After BG1 portion of the story they are switched to those referenced in BDBanter.2da (there are no banter files at all in vanilla SoD, so you won't have banters in files referenced in that 2da unless you patch them in). In BG2 engine switches it into INTERDIA.2DA (no changes at all compared to BG2:EE) and in ToB it's changed to 25BANTER.2DA (again no changes). Notice that BG2 portion of the game uses vanilla implementation so no changes are needed for BG2:EE mods when it comes to banter files.

 

Since the files are swapped on each campaign no filtering is needed (unless you use the same banter file for multiple campaigns). The problem you mentioned Roxanne shouldn't be the case if you don't try to trigger banter manually that is not currently assigned. setup-eet_end doesn't update other banter 2da files because we don't really want automatic banters from different portion of the game to trigger at wrong time, so if you use the same banter file for Sandrah for all campaigns (since your mod works from BG1 up until ToB and beyond) than you should manually add them to BGBANTER.2da, BDBANTER.2da, interdia.2da, 25BANTER.2da during your mod installation (again this is not needed for mods with BG2:EE only content or mods installed on BG:EE).

Link to comment

additional post since I missed that you have both BG:EE and BG2:EE version of the Gavin. In such case:

BG:EE Gavin:

- if BG:EE Gavin is meant to be installed on BG:EE before EET (the way he is implemented now) no changes are needed compared to your current code

- if BG:EE Gavin will be coded to work natively on EET (which is not really needed to work as intented although it would be easy to add considering your mod uses cpmvars) you would need to patch BG1 and SoD version of 2da files with your files references.

 

BG2:EE Gavin:

- no changes needed when it comes to PDIALOG.2DA and INTERDIA.2DA compared to your vanilla BG2:EE code

Link to comment

- if BG:EE Gavin will be coded to work natively on EET (which is not really needed to work as intented although it would be easy to add considering your mod uses cpmvars) you would need to patch BG1 and SoD version of 2da files with your files references.

That's a very useful info. Maybe not for Gavin, but for a continuous NPC I am writing currently.

 

Questions for a continuous NPC:

Let's say I am smart and design the NPC so I can use the EET_NPC_TRANSITION function. Then the NPC would be type "3".

-I would use differently named override script files during the different campaign parts

-I would use the same joined dialogue through the whole campaign

-I would patch BG1 and SoD version of 2da files with my files references

-I would assign the banter files for the different campaigns by hand to BGBANTER.2da, BDBANTER.2da, interdia.2da, 25BANTER.2da

-I would script the move to SoA by hand (because the NPC will not spawn in ID)

 

Does this make sense so far?

 

Would it "hurt" to patch the SoA and ToB pdialog.2da with the dlg file references, too?

 

What with kickout dialogue? What with dream script? How are these handled / merged / do I need to patch them manually to all campaign parts?

Link to comment

Blash2: At some point, yes (no ETA), but I am shying away from making it a full-continuous experience (meaning, Gavin will have suffered from a short temporary memory loss when you meet him in BGII - although berelinde designed the meeting dialogue so that it's very little immersion breaking, but it does mean the player could pick the wrong reply option and turn deeply in love Gavin into a mere friend or vice versa.). I was toying with a full-continuous version, but it means editing half of the mod (since the engagement from BG1 leads to several additional reply options even if Gavin is not there, yet), and although I would not entirely dodge from the work included, it's just too great an edit (and, risk of integrating bugs) for a mod that's not my own.

 

Why am I typing this here? I should post in the Gavin forum. :-)

Link to comment

Archived

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

×
×
  • Create New...