Jump to content

Holy. Crap.


Nightwoe

Recommended Posts

Mismatch.

 

BNWGwen

NWGwenB

NWGwen

 

 

COMPILE ~Gwen/BNWGwen.d~

COMPILE ~Gwen/NWGwenB.d~

 

I'd suggest rechecking your dialogs, and creating a separate section at the top of the first .d compiled, where you designate each one... like this:

 

BEGIN NWGWEN // non-joined dialog
BEGIN NWGWENB // banter dialog
BEGIN NWGWENJ // joined dialog
BEGIN NWGWENP // post-joined dialog

Then I would sort out what you have labeled

NWGWENB

and

BNWGWEN

 

 

If this is how you are setting up the dual personality, I'd suggest using CHAIN and only one banter dialog file, rather than separating them, as you will have troubles assigning two different sets of values to the same DV in interact.2da and pdialog.2da. The best example of this is the way BioWare coded Minsc and Boo - both use BMINSK, et al.

Link to comment

Oh, sorry - example;

 

CHAIN
IF ~InParty("Anomen")
InParty("NWGwen")
!StateCheck("Anomen",CD_STATE_NOTVALID)
!StateCheck("NWGwen",CD_STATE_NOTVALID)
Global("NWAnomenTalksToGwen1","GLOBAL",0)
See("NWGwen")~ THEN BANOMEN NWANOMENTALKSTOGWEN1
~(Takes Gwen's elbow in the ribs) Hey!~
DO ~SetGlobal("NWAnomenTalksToGwen1","GLOBAL",1)~
== NWGWENB ~(happy) Just because I wanted to,. Hey, lighten up! Only a thousand more monsters today, and we hit a record!~
== BANOMEN ~You look fine, Gwen. Want to have a wild night praying to Helm and contemplating our role in the universe?~
== NWGWENB ~(gloomy) Why not. At least I know you will be doomed to isolation and loneliness, just like me, for all eternity.~
END
IF ~~ THEN EXIT

/* or, to be more random, */

APPEND BANOMEN
IF ~InParty("Anomen")
InParty("NWGwen")
!StateCheck("Anomen",CD_STATE_NOTVALID)
!StateCheck("NWGwen",CD_STATE_NOTVALID)
Global("NWAnomenTalksToGwen1","GLOBAL",0)
See("NWGwen")~ THEN BEGIN NWANOMENTALKSTOGWEN1
 SAY ~(Takes Gwen's elbow in the ribs) Hey!~
 IF ~RandomNum(2,1)~ DO ~SetGlobal("NWAnomenTalksToGwen1","GLOBAL",1)~ EXTERN NWGWENBanomenhappy
 IF ~RandomNum(2,2)~ DO ~SetGlobal("NWAnomenTalksToGwen1","GLOBAL",1)~ goto anomensad
END

IF ~~ anomensad
 SAY ~You look fine, Gwen. Want to have a wild night praying to Helm and contemplating our role in the universe?~
 IF ~~ THEN EXTERN NWGWENB NWGWENBanomensad
END

END

APPEND NWGWENB

IF ~~ NWGWENBanomenhappy
 SAY ~(happy) Just because I wanted to. Hey, lighten up! Only a thousand more monsters today, and we hit a record!~
 IF ~~ THEN EXIT
END

IF ~~ NWGWENBanomensad
 SAY ~(gloomy) Why not. At least I know you will be doomed to isolation and loneliness, just like me, for all eternity.~
 IF ~~ THEN EXIT
END

END

Link to comment
Mismatch.

 

BNWGwen

NWGwenB

NWGwen

 

 

COMPILE ~Gwen/BNWGwen.d~

COMPILE ~Gwen/NWGwenB.d~

 

I'd suggest rechecking your dialogs, and creating a separate section at the top of the first .d compiled, where you designate each one... like this:

 

BEGIN NWGWEN // non-joined dialog
BEGIN NWGWENB // banter dialog
BEGIN NWGWENJ // joined dialog
BEGIN NWGWENP // post-joined dialog

Then I would sort out what you have labeled

NWGWENB

and

BNWGWEN

 

 

If this is how you are setting up the dual personality, I'd suggest using CHAIN and only one banter dialog file, rather than separating them, as you will have troubles assigning two different sets of values to the same DV in interact.2da and pdialog.2da. The best example of this is the way BioWare coded Minsc and Boo - both use BMINSK, et al.

 

 

I understand the mismatch issue, but I thought the non-joined dialogue had to have "B" in front of the file name?

 

The second part is over my head I'm afraid :) I havn't started coding her Gloomy/Jolly alternates, I'm not ready to dive into that complexity yet. I don't know what DV(Dialogue Value?) is, I'm afraid, but I think I get the gist of what you mean about the two values.

Link to comment

Ok, 2 problems left before Gwen is functioning properly.

1) I CAN NOT get her name to display in game. It's weird because her stats and everything are correct, but her name and her selection text will not show here's the TP2:

COPY ~Gwen/NWGwen.cre~ ~override\NWGwen.CRE~

WRITE_EVALUATED_ASCII DIALOG ~NWGwen~ #8

WRITE_EVALUATED_ASCII DEATHVAR ~NWGwen~ #32

WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE ~NWGwen~ #8

SAY NAME1 ~Gwen~

SAY NAME2 ~Gwen~

SAY BIO ~When asked about her past, Gwen completely ignores you.~

SAY MORALE ~[Jolly]I'm not ready to play yet!~ [NWGwen1]

SAY HAPPY ~[Jolly]This is fun!~ [NWGwen2]

SAY UNHAPPY_ANNOYED ~[Gloomy]You annoy me.~ [NWGwen3]

SAY UNHAPPY_SERIOUS ~[Jolly]I'm getting bo-ored!~ [NWGwen4]

SAY UNHAPPY_BREAKING ~[Gloomy]Stay away from me! You annoy me!~ [NWGwen5]

SAY LEADER ~[Jolly]Ewwww...~ [NWGwen6]

SAY TIRED ~[Gloomy]I can *make* you stop.~ [NWGwen7]

SAY BORED ~[Jolly]I'm *BORED*! Let's kill something!~ [NWGwen8]

SAY BATTLE_CRY1 ~[Jolly]YAY! Play time!~ [NWGwen9]

SAY BATTLE_CRY2 ~[Gloomy]I'll cut out your heart!~ [NWGwen10]

SAY BATTLE_CRY3 ~[Gloomy]Wanna die?!~ [NWGwen11]

SAY BATTLE_CRY4 ~[Jolly]I'm gunna break you!~ [NWGwen12]

SAY DAMAGE ~[Gloomy]Ow!~ [NWGwen13]

SAY DYING ~[Jolly]I think I broke...~ [NWGwen14]

SAY HURT ~[Gloomy]*DO* something!~ [NWGwen15]

SAY AREA_FOREST ~[Jolly]La-de-da-dA!~ [NWGwen16]

SAY AREA_CITY ~[Jolly]Betcha I could climb that building!~ [NWGwen17]

SAY AREA_DUNGEON ~[Gloomy]It's almost as dark as my mood...~ [NWGwen18]

SAY AREA_DAY ~[Gloomy]The sun's too bright.~ [NWGwen19]

SAY AREA_NIGHT ~[Jolly]I love night-time!~ [NWGwen20]

SAY SELECT_COMMON1 ~[Jolly]What's up?~ [NWGwen21]

SAY SELECT_COMMON2 ~[Gloomy]Spit it out.~ [NWGwen22]

SAY SELECT_COMMON3 ~[Jolly]Uh-huh?~ [NWGwen23]

SAY SELECT_COMMON4 ~[Gloomy]What?~ [NWGwen24]

SAY SELECT_COMMON5 ~[Jolly]Where to?~ [NWGwen25]

SAY SELECT_COMMON6 ~[Gloomy](Sigh)~ [NWGwen26]

SAY SELECT_ACTION1 ~[Jolly]Okay!~ [NWGwen27]

SAY SELECT_ACTION2 ~[Gloomy]Whatever.~ [NWGwen28]

SAY SELECT_ACTION3 ~[Jolly]Sure!~ [NWGwen29]

SAY SELECT_ACTION4 ~[Gloomy]Is that it?~ [NWGwen30]

SAY SELECT_ACTION5 ~[Jolly]Says who?~ [NWGwen31]

SAY SELECT_ACTION6 ~[Gloomy](Grunt)~ [NWGwen32]

SAY SELECT_ACTION7 ~[Jolly]La-de-da-dA!~ [NWGwen33]

SAY SELECT_RARE1 ~[Gloomy]WHAT???~

SAY SELECT_RARE2 ~[Jolly]Ooo, dummy!~

SAY CRITICAL_HIT ~[Jolly]Break!~ [NWGwen34]

SAY CRITICAL_MISS ~[Gloomy]Damn it!~ [NWGwen35]

SAY TARGET_IMMUNE ~[Gloomy]Moron...~ [NWGwen36]

SAY INVENTORY_FULL ~[Gloomy]*You* pick it up.~ [NWGwen37]

 

2) I ran the test banter I wrote between anomen and Gwen, and it came up...but ended when Gwen was supposed to say her line. I'm thinking this would be fixed if the other problem is fixed, though. Here's the banter...

 

BEGIN ~NWGwenB~

 

CHAIN

IF ~InParty("Anomen")

InParty("NWGwen")

!StateCheck("Anomen",CD_STATE_NOTVALID)

!StateCheck("NWGwen",CD_STATE_NOTVALID)

Global("NWAnomenTalksToGwen1","GLOBAL",0)

See("NWGwen")~ THEN BANOMEN NWANOMENTALKSTOGWEN1

~(Takes Gwen's elbow in the ribs) Hey!~

DO ~SetGlobal("NWAnomenTalksToGwen1","GLOBAL",1)~

== NWGwen ~/Gloomy/Do you even *realize* how much space you take up waving that shield around? You're always in the way!~

Link to comment

== NWGwen ~/Gloomy/Do you even *realize* how much space you take up waving that shield around? You're always in the way!~

 

Change NWGwen to NWGwenB. You want to use her banter file not her "original joining file" which is no longer attached to her after she's joined.

Link to comment
== NWGwen ~/Gloomy/Do you even *realize* how much space you take up waving that shield around? You're always in the way!~

 

Change NWGwen to NWGwenB. You want to use her banter file not her "original joining file" which is no longer attached to her after she's joined.

 

thanx grim, but does ANYONE have ANY idea why Gwen's name will not appear in game? has anyone ever had this problem?

I've tried editing strings on her CER, I've tried re-making her CER to make sure her name was displayed in Shadowkeeper, but somewhere between shadowkeeper and Infinity Engine her name data is lost. I tried re-typing her TP2, I've tried copy/pasting code and replacing only the NPC name. when you talk to her in game, you see her dialog and nothing else.

Link to comment
== NWGwen ~/Gloomy/Do you even *realize* how much space you take up waving that shield around? You're always in the way!~

 

Change NWGwen to NWGwenB. You want to use her banter file not her "original joining file" which is no longer attached to her after she's joined.

 

thanx grim, but does ANYONE have ANY idea why Gwen's name will not appear in game? has anyone ever had this problem?

I've tried editing strings on her CER, I've tried re-making her CER to make sure her name was displayed in Shadowkeeper, but somewhere between shadowkeeper and Infinity Engine her name data is lost. I tried re-typing her TP2, I've tried copy/pasting code and replacing only the NPC name. when you talk to her in game, you see her dialog and nothing else.

 

When you're checking that nothing's changed and it still doesn't work, are you using a saved game where Gwen is aready a member of the party or are you going and finding her afresh in the game (or even starting a new game?). Because if you're just reloading a save where she's already in the party it won't update - the saved game file has a record of the name of the character already.

Link to comment

[quote name='Grim Squeaker' date='Mar 23 2011, 01:49 AM' post='184224'

 

When you're checking that nothing's changed and it still doesn't work, are you using a saved game where Gwen is aready a member of the party or are you going and finding her afresh in the game (or even starting a new game?). Because if you're just reloading a save where she's already in the party it won't update - the saved game file has a record of the name of the character already.

 

Whenever I go to test her in the game I always return to a save before meeting her for the first time. I havn't tried starting a new game, though. I'll try that and see if it makes a difference.

Link to comment
Whenever I go to test her in the game I always return to a save before meeting her for the first time. I havn't tried starting a new game, though. I'll try that and see if it makes a difference.

Make sure you have never been in the area she was in. Even if MakeGlobal was never issued, if you entered the area, then the saved game will contain a copy of the actor.

DLTCEP can be used to delete an npc from the saved game (and with some more work, to remove a saved area from a saved game).

Link to comment
Whenever I go to test her in the game I always return to a save before meeting her for the first time. I havn't tried starting a new game, though. I'll try that and see if it makes a difference.

Make sure you have never been in the area she was in. Even if MakeGlobal was never issued, if you entered the area, then the saved game will contain a copy of the actor.

DLTCEP can be used to delete an npc from the saved game (and with some more work, to remove a saved area from a saved game).

i took your advice and installed DLTCEP. the only error I'm getting is

Bad override script reference: 'NWGWEN' !

 

I'm not going to lie, I have no idea. I thought I was catching on pretty well, but the more progress I make the more I realize just how much I don't know. From playing around on NearInfinity, I know that override scripts are .BCS. And that's all I know.

Link to comment

Hmmm. Not sure on that one. That probably means you have not yet created the script, which will eventually be NWGWEN.baf compiled. It is set up when you do that big APPEND to the pdialog.2da, showing the engine what all the dialogs and scripts are called.

 

Missed this question earlier:

COPY ~Beibeu\W@BEI.CRE~ ~override\W@Beibeu.CRE~

WRITE_EVALUATED_ASCII DIALOG ~w@beibeu~ #8

WRITE_EVALUATED_ASCII DEATHVAR ~w@beibeu~ #32

WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE ~w@beibeu~ #8

SAY NAME1 ~Beibeu~

SAY NAME2 ~Beibeu~

 

Newbie question, but why use WRITE_EVALUATED_ASCII instead of just WRITE_ASCII?

 

No need to, but some folks find it easier to use the WeiDU constants like DIALOG, DEATHVAR, SCRIPT_OVERRIDE instead of giving hex offsets. You can use the direct values with WRITE_ASCII.

 

Typed this up yesterday, but ran out of time, so posting it now even though Grim has you all straightened out on the dialog thing:

 

#1 I am not sure on - but on #2, I think you still have some dialog file confusion in your .d. This line:

== NWGwen ~/Gloomy/Do you even *realize* how much space you take up waving that shield around? You're always in the way!~

 

says

"ok, do I have a dialog named NWGWEN.DLG compiled and registered with the game in the file interact.2da? If so, display the string I have from that file".

 

But for your banter file, you have NWGWENB.dlg, not NWGwen.dlg.

 

So the engine will kick out , because it can't figure out what it is supposed to display.

If you have told the engine what dialog files are available for your NPC under what circumstances, like this, for example:

 

in the file gwen_mod.tp2

APPEND ~pdialog.2da~
 ~NWGWEN	 NWGWENP	  NWGWENJ	   NWGWEND	NWGW25P	   NWGW25J		NWGW25D		NWGWEN25~
 UNLESS ~NWGWEN~

APPEND ~interdia.2da~ ~NWGWEN	NWGWENB	 NWGW25B~
 UNLESS ~NWGWEN~

 

then you have registered the relevant files and scripts, and the game can figure out what it is looking for where. (This is only for joinable NPCs, you don't have to do this for anything that will not join the party.)

 

So, if you add that into your .tp2, then make sure you have one (and ONLY one) instance of

 

BEGIN NWGWEN // non-joined dialog
BEGIN NWGWENB // banter dialog
BEGIN NWGWENJ // joined dialog
BEGIN NWGWENP // post-joined dialog

 

at the top of the first .d file you compile (the line "BEGIN dialogfile" set alone like that links the dialog with the engine, and each time it runs it creates a new one so if you have it twice it blanks the old entries), you never have to worry about the registration with the game; the game will understand where it is supposed to look for the dialog.

 

After you set this up, you need to go through and change any place you have written dialog to use the dialog file names.

 

So,

 

DV = dv = death var = scriptname = nwgwen {in scripting it will always be in quotes, like See("nwgwen"), InParty("nwgwen") }

Also before-joining dialog file, so NWGWEN

post-joined (after kicked out of party) file name, NWGWENP

joined, called by StartDialogNoSet, Dialog, etc., NWGWENJ

dreamscript, NWGWEND

ToB post-joined dialog file, NWGW25P

ToB joined dialog, NWGW25J

ToB dreamscript, NWGW25D

ToB before-joining, NWGWEN25

 

and then stuff called from the banter file:

dv = script name = deathvar = NWGWEN

banter file (called by Interact()) = NWGWENB

ToB banter file (called by Interact()) = NWGW25B

 

 

 

By the way, your sig rocks. Mine would read more like

 

Parse Error. (tweak file)

Parse Error. (fix typo)

Parse Error. (fix typo)

Parse Error. (fix typo)

Parse Error. (tweak file)

Parse Error. (fix typo)

Parse Error. (slam head on desk)

Parse Error. (fix typo)

Parse Error. (mutter under breath about computer's lack of parentage and suspect upbringing. forget to tweak file and rerun it before fixing.)

Parse Error. (tweak file)

Parse Error. (curse violently, tweak file, fix typo)

Parse Error. (scream at computer, startling dogs... tweak file, fix typo)

Parse Error. (stare silently and malevolently at the code in Notepad++, and wonder why I ever started modding. Find 27 assorted typos, two dv's not in quotes, three places where I have put DO DO, two where I have forgotten to build reply states, and one where I have misspelled tongue... again. Reload file in ConTEXT in the vain hope that changing program will magically correct errors.)

Parse Error. (get up, go downstairs, fix scotch, stare at ceiling, wonder if Mount & Blade is easier to mod, go back upstairs, sip scotch, glare at computer, tweak file.)

Parse Error. (play Civ V.)

 

:)

Link to comment
Hmmm. Not sure on that one. That probably means you have not yet created the script, which will eventually be NWGWEN.baf compiled. It is set up when you do that big APPEND to the pdialog.2da, showing the engine what all the dialogs and scripts are called.

 

Missed this question earlier:

COPY ~Beibeu\W@BEI.CRE~ ~override\W@Beibeu.CRE~

WRITE_EVALUATED_ASCII DIALOG ~w@beibeu~ #8

WRITE_EVALUATED_ASCII DEATHVAR ~w@beibeu~ #32

WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE ~w@beibeu~ #8

SAY NAME1 ~Beibeu~

SAY NAME2 ~Beibeu~

 

Newbie question, but why use WRITE_EVALUATED_ASCII instead of just WRITE_ASCII?

 

No need to, but some folks find it easier to use the WeiDU constants like DIALOG, DEATHVAR, SCRIPT_OVERRIDE instead of giving hex offsets. You can use the direct values with WRITE_ASCII.

 

Typed this up yesterday, but ran out of time, so posting it now even though Grim has you all straightened out on the dialog thing:

 

#1 I am not sure on - but on #2, I think you still have some dialog file confusion in your .d. This line:

== NWGwen ~/Gloomy/Do you even *realize* how much space you take up waving that shield around? You're always in the way!~

 

says

"ok, do I have a dialog named NWGWEN.DLG compiled and registered with the game in the file interact.2da? If so, display the string I have from that file".

 

But for your banter file, you have NWGWENB.dlg, not NWGwen.dlg.

 

So the engine will kick out , because it can't figure out what it is supposed to display.

If you have told the engine what dialog files are available for your NPC under what circumstances, like this, for example:

 

in the file gwen_mod.tp2

APPEND ~pdialog.2da~
 ~NWGWEN	 NWGWENP	  NWGWENJ	   NWGWEND	NWGW25P	   NWGW25J		NWGW25D		NWGWEN25~
 UNLESS ~NWGWEN~

APPEND ~interdia.2da~ ~NWGWEN	NWGWENB	 NWGW25B~
 UNLESS ~NWGWEN~

 

then you have registered the relevant files and scripts, and the game can figure out what it is looking for where. (This is only for joinable NPCs, you don't have to do this for anything that will not join the party.)

 

So, if you add that into your .tp2, then make sure you have one (and ONLY one) instance of

 

BEGIN NWGWEN // non-joined dialog
BEGIN NWGWENB // banter dialog
BEGIN NWGWENJ // joined dialog
BEGIN NWGWENP // post-joined dialog

 

at the top of the first .d file you compile (the line "BEGIN dialogfile" set alone like that links the dialog with the engine, and each time it runs it creates a new one so if you have it twice it blanks the old entries), you never have to worry about the registration with the game; the game will understand where it is supposed to look for the dialog.

 

After you set this up, you need to go through and change any place you have written dialog to use the dialog file names.

 

So,

 

DV = dv = death var = scriptname = nwgwen {in scripting it will always be in quotes, like See("nwgwen"), InParty("nwgwen") }

Also before-joining dialog file, so NWGWEN

post-joined (after kicked out of party) file name, NWGWENP

joined, called by StartDialogNoSet, Dialog, etc., NWGWENJ

dreamscript, NWGWEND

ToB post-joined dialog file, NWGW25P

ToB joined dialog, NWGW25J

ToB dreamscript, NWGW25D

ToB before-joining, NWGWEN25

 

and then stuff called from the banter file:

dv = script name = deathvar = NWGWEN

banter file (called by Interact()) = NWGWENB

ToB banter file (called by Interact()) = NWGW25B

 

 

 

Ok, lets see if I even remotely comprehended any of this...Basically, for Gwen's dialog files, including banters, pre- and post- joined, and interjections...I should keep them in one .d file? Something like this...?

 

BEGIN NWGWEN

blah

blah

blah

END

 

BEGIN NWGWENB

CHAIN

blah

blah

END

 

etc.?

 

By the way, your sig rocks. Mine would read more like

 

Parse Error. (tweak file)

Parse Error. (fix typo)

Parse Error. (fix typo)

Parse Error. (fix typo)

Parse Error. (tweak file)

Parse Error. (fix typo)

Parse Error. (slam head on desk)

Parse Error. (fix typo)

Parse Error. (mutter under breath about computer's lack of parentage and suspect upbringing. forget to tweak file and rerun it before fixing.)

Parse Error. (tweak file)

Parse Error. (curse violently, tweak file, fix typo)

Parse Error. (scream at computer, startling dogs... tweak file, fix typo)

Parse Error. (stare silently and malevolently at the code in Notepad++, and wonder why I ever started modding. Find 27 assorted typos, two dv's not in quotes, three places where I have put DO DO, two where I have forgotten to build reply states, and one where I have misspelled tongue... again. Reload file in ConTEXT in the vain hope that changing program will magically correct errors.)

Parse Error. (get up, go downstairs, fix scotch, stare at ceiling, wonder if Mount & Blade is easier to mod, go back upstairs, sip scotch, glare at computer, tweak file.)

Parse Error. (play Civ V.)

 

:)

 

LOL, thanx. If you like Civ, try Stronghold Crusader. Dumping boiling oil on a troop of foot-soldiers, burning a few farms and hurdling cows over enemy castles walls is a good pick-me-up after long hours of code-punching >:)

Link to comment
Ok, lets see if I even remotely comprehended any of this...Basically, for Gwen's dialog files, including banters, pre- and post- joined, and interjections...I should keep them in one .d file? Something like this...?

 

BEGIN NWGWEN

blah

blah

blah

END

 

BEGIN NWGWENB

CHAIN

blah

blah

END

Nope... not necessarily. But you could, if you wanted to...

 

Take a look at Dialog Files and How They Are Referenced, pdialog.2da, interdia.2da, and .dlg: templates

 

.d files don't create .dlg files... BEGIN does! Compiling a .d file is like running a set of instructions. Somewhere (usually in the first) .d you compile, you have to "prime the pump", so to speak. You have to tell WeiDU that it needs to create a new thing internally it can reference. So, the suggestion I had above was to do that first. Then, you can reference/add dialog to a file WeiDU has told the game about.

 

BEGIN ~myNewdlg~

 

creates a new link.

 

A sample that may help:

 

mymod.d

BEGIN ~harry~ // creates a dialog file harry.dlg and tells the game it is there

APPEND ~harry~ // adds whatever comes next to harry.dlg

IF ~Global("hello_there","GLOBAL",0)~ THEN BEGIN say_hello_harry
 SAY ~Hi there. I'm Harry, the Disposable Understudy to Biff.~
 IF ~~ THEN DO ~SetGlobal("hello_there","GLOBAL",1)~ EXIT
END

END // stop adding stuff to harry.dlg

CHAIN // start looking for several files we are going to bounce between
IF ~InParty("Harry")
InParty("Anomen")
InParty("NWGwen")
!StateCheck("Harry",CD_STATE_NOTVALID)
!StateCheck("Anomen",CD_STATE_NOTVALID)
!StateCheck("NWGwen",CD_STATE_NOTVALID)
Global("NWAnomenTalksToGwen1","GLOBAL",0)
See("NWGwen")~ THEN BANOMEN NWANOMENTALKSTOGWEN1 // first line goes to banomen, which the game knows about
~(Takes Gwen's elbow in the ribs) Hey!~
DO ~SetGlobal("NWAnomenTalksToGwen1","GLOBAL",1)~
== HARRY ~Heya, I am here~
== NWGWENB doesnotcomputedoesnotcompute...ex-ter-mi-nate-ex-ter-mi-nate--dok-tor-who

 

Harry has been registered by the game, and Anomen has all his stuff already registered or he would never have worked. But Gwen needs each dialog file she uses to be registered/initialized once. Then for the rest of the coding those dialogs can be referenced.

 

How you organize the files themselves after that initialization is entirely up to you. Domi, Berelinde, Jastey, Kulok, Feuille/Miss Sakaki, etc. tend to use smaller .d files compiled independently. Some of us other folks like to stick almost everything in one big file. Either way, the important part is that each dialog you want to have the game recognize has to have it registered (and in the case of joinable NPCs added to pdialog.2da and interact.2da) before anything attempts to add itself to them.

 

(Thanks on the Stronghold Crusader recommendation - I'll take a look!)

Link to comment

OHHHHH. Okay, THAT makes sense. Thank you very much, and I will definitely go back to those tutorials.

 

On a side note, I found Gwen;s string reference to her name, but it's still not showing up in game. I updated her CRE with the strings, so at least I know the problem isn't the CRE.

 

I'll hold off working on her name bug after her dialog files get straightened out.

Thanks again :)

Link to comment

Archived

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

×
×
  • Create New...