Jump to content

Trouble getting friendship talks to start


Crimpson

Recommended Posts

In a .tp2 file when you append your .d files, could someone explain what these lines mean?

 

APPEND ~pdialog.2da~

~Nanya NanyaP NanyaJ NanyaD Nany25P Nany25J Nany25D Nanya25~

UNLESS ~NANYA~

 

I should probably know this by now but i haven't found the answer.

 

IF

InParty(Myself)

See(Player1)

Global("MyBanter","GLOBAL",1)

THEN

RESPONSE #100

Interact(Player1) // calls forth a banter from BMyNPC.d

END

 

where do you tell the game what file to look for? my banter file is JK#NanyJ. should it find it automatically? or where do i put in the directory?

Full treatment:

 

Dialog Files and How They Are Referenced tutorial

 

It leads you through the information step by step.

 

Shortcut:

 

Your banters are not in JK#NanyJ, they will be in JK#NanyB or JK#BNany or something like that - j = joined, b = banter, p = (post) after-joined-and-dropped, no designation = non-joinable.

 

Adding the references to pdialog.2da tells te game where to look automatically.

 

The game can tell which file to look at by the call used in the script; Interact() calls b-file, Dialog() (and all related calls) calls the j-file.

 

But the tutorial steps you through all of this, provides samples, and provides a list of (almost all) existing NPC file names in released mods.

 

I'm sorry, let me be a little clearer.

I've read that the J file is most commonly home to romance and friendship talks.

Global "MyBanter" was just the name i used. It's really a friendship talk/ beginning romance.

So does "Interact(Player1)" only call from the B file? is there a different command i should use to call from my J file? or i think i'm just missing the appropriate command in my tp2.

 

I have my BAF file all set up with the Globals that coincide with the entries in my J file for romance/friend talks. My CRE DV is set to NanyaRomance.baf

Here's my related commands in my TP2

COMPILE ~NANYA/DIALOGUE/JK#NANYA.d~

COMPILE ~NANYA/DIALOGUE/JK#NANYJ.d~

COMPILE ~NANYA/NanyaRomance.baf~

 

I'm missing a command right? am i suppose to tell weidu to make a 2da or dlg file? i don't quite understand how that works. the tutorials i've read haven't been very clear on that. or maybe i just didn't understand what was meant when i read over it. either way, would i be better off moving my friendship talks to the B file?

The baf & J file are set up correctly i'm sure, but the talks aren't firing, so i think i'm missing an obvious command for the weidu install.

Link to comment

The bolded row is appended to pdialog.2da unless it already contains the text "nanya". The column headers in pdialog.2da should be fairly informative of what role each column plays. You can find the contents of the file here if you don't care for looking it up among your own game resources. 25-entries are for ToB.

Link to comment

Thank you. I just started doing this like a week ago, I'm still learning how and where to look things up. For never writing a single line of code in my life I think I'm doing pretty well considering I have no one to help me (except the people here) and that I've successfully put my first npc in the game with dialogue, triggers (well, a trigger) and actions. :blush:

Link to comment

Basically you're telling the game what dialogue files you want it to use for various things.

 

APPEND ~pdialog.2da~
~Nanya NanyaP NanyaJ NanyaD Nany25P Nany25J Nany25D Nanya25~
UNLESS ~NANYA~

 

As Wisp said, the first "Nanja" tells the game what character we're talking about. So anything with the "Nanja" deathvariable will get these dialogue files.

 

Then NANYAP.dlg will be used for leaving/rejoining dialogues. NANYAJ.dlg for any interjections and click-to-talking. NANJAD is actually to assign their "dream script" (which would be NANJAD.bcs) which would trigger any talks on rest. NANY25P, NANJ25J and NANY25D do exactly the same but for Throne of Bhaal. And the final NANYA25 says what their regular Throne of Bhaal script will be (which the game will automatically change to - from the one you're using in Shadows of Amn - when you enter Throne of Bhaal).

 

Hope that helps :blush:

Link to comment
My CRE DV is set to NanyaRomance.baf

?

 

I am not sure i understand what you are asking, so i am going to outline both banters and friendtalks, and reference some reading stuff.

 

Interact() only looks in the b-file, and returns the first true state. The Dialog() stuff only looks at the J or Post files, swapping to the 25 versions for ToB.

 

So based on what you are telling the engine with this:

 

~Nanya NanyaP NanyaJ NanyaD Nany25P Nany25J Nany25D Nanya25~

 

then you have the engine looking for the following:

 

~Nanya = DV (what your .cre file has as a name, and as a DV - if you have something else there, nothing that expects to see "nanya" will fire off)

NanyaP = Post, SoA

NanyaJ = Joined, SoA

NanyaD = DreamScript, SoA

Nany25P = Post, ToB

Nany25J = Joined, ToB

Nany25D = DreamScript, ToB

Nanya25~

 

To add the ability to use the banter file, you have to add it to the interdia.2da,

http://forums.gibberlings3.net/index.php?s...st&p=135174

 

so the game knows it has banter content. For that, your format would be in the .tp2

APPEND ~interdia.2da~ ~NANYA NANYAB NANYA25~ UNLESS ~NANYA~

 

A start to a banter might be

 

CHAIN IF ~CombatCounter(0) !Detect([ENEMY]) Global("mybanter","GLOBAL",0) InParty("nayna") InMyArea("nayna") !StateCheck("nayna",CD_STATE_NOTVALID) InParty(") !StateCheck(Myself,CD_STATE_NOTVALID)~ THEN ~BIMOEN2~ c-imoenaranbanter
~[IMOEN] Heya, Nayna. We are randomly having a trivial conversation. ~
DO ~SetGlobal("mybanter","GLOBAL",1)~
== ~NANYAB~ ~[NAYNA] Hey, you are still stuck in Spellhold. What script page are you reading? Do you have a better agent than I do?~
== ~BIMOEN2~ ~[IMOEN] Oh, err... well, the director and I kind of came to an understanding... ( blushes ) ~
== ~NANYAB~ ~[NAYNA] Good grief. And I spent all those years to get an Equity card.  Figures.~
EXIT

 

You would not see this until both Imoen and Nanya are in the party, in the same area, ok to talk, and the engine asks if they can have a side banter.

 

http://forums.gibberlings3.net/index.php?showtopic=15505

 

Banters are called through Interact(), and generaly pile into a huge number of already existing things. Usually, you avoid putting anything but NPC<>NPC talks in there, because BioWare and early modders put lots of things in there, and you are going to have a ton of hassles with weights and conditions. Plus, for the most part, the internal game scripts periodically do an Interact(Player1,Player3)-type call (not really, but you get the idea - the game picks a pair of folks and tries to initiate a banter between them, and if there is anything available, it gets fired off then).

 

So a basic rule of thumb is only put stuff you don't care when (or if) it fires, and generally only NPC<>NPC fringe discussions on standard Interact() scripting. Instead, use specifically conditioned states to fire off something you want seen in a specific situation, run out of the NPC's script.

 

That means you probably want to get those friendship talks working on the J file, so your DV = "nanya" and your J file = NanyaJ.

 

NOTE: IS IT ~JK#NANYJ~ OR ~NANYAJ~ ? That could be your problem -make sure your .tp2 matches your .d and .baf naming, or things get really messed up :blush:

 

http://forums.gibberlings3.net/index.php?showtopic=17100

 

For the friend talks, set on the J file, there is a script that sets them up and then triggers them, and the engine reads through the j-file and grabs the first one that matches the conditions.

/* FRIEND TALKS */
* OK let's start with the Friend Talks. The idea here is to set the friendtalks up on a BCS <> DLG "bounce", so
* 1. set the talk variable to 1 and set a timer.
* 2. set a block that sees that the timer has expired, and initiates dialog.
* 3. the game looks for the variable (1), and sees the dialog, and fires it.
* 4. The dialog line advances the variable to (2), and sets a new timer.
* 5. The BCS here looks for the timer to expire and the even variable (2), advancing to (3) when the timer expires
* Then when it sees the conditions are right, repeat sequence from 3.
*/


/* Friend Talks Sequence */

/* Friend Talks Setup  */
IF
Global("c-aranfriendbg2","GLOBAL",0)   // Not evaluated true yet
InParty(Myself)						// Aran is here
!StateCheck(Myself,CD_STATE_NOTVALID)  // Aran is ok
!StateCheck(Player1,CD_STATE_NOTVALID) // Player1 is ok
THEN
RESPONSE #100							  // 100% of the time
	SetGlobal("c-aranfriendbg2","GLOBAL",1)		 //  set up SoA_FT_1
	RealSetGlobalTimer("c-aranfriendtimer","GLOBAL",600)  // Minimum Real Time until SoA_FT_1
END

/* Aran's FriendTalks Aim, c-aranfriendbg2, ARAN_FTT */
/* This block takes the even variables set in dialog, and advances them to the odd */
IF
GlobalLT("c-aranfriendbg2","GLOBAL",32)  // shuts down sequence when finished
RealGlobalTimerExpired("c-aranfriendtimer","GLOBAL")  // Timer Expired
!Global("Chapter","GLOBAL",5) // Not in Underdark - specialized talks for that
OR(15)  
  Global("c-aranfriendbg2","GLOBAL",2)  // set up SoA_FT_2
  Global("c-aranfriendbg2","GLOBAL",4)  // set up SoA_FT_3
  Global("c-aranfriendbg2","GLOBAL",6)  // set up SoA_FT_4
  Global("c-aranfriendbg2","GLOBAL",8)  // set up SoA_FT_5
  Global("c-aranfriendbg2","GLOBAL",10) // set up SoA_FT_6
  Global("c-aranfriendbg2","GLOBAL",12) // set up SoA_FT_7
  Global("c-aranfriendbg2","GLOBAL",14) // set up SoA_FT_8
  Global("c-aranfriendbg2","GLOBAL",16) // set up SoA_FT_9
  Global("c-aranfriendbg2","GLOBAL",18) // set up SoA_FT_10
  Global("c-aranfriendbg2","GLOBAL",20) // set up SoA_FT_11
  Global("c-aranfriendbg2","GLOBAL",22) // set up SoA_FT_12
  Global("c-aranfriendbg2","GLOBAL",24) // set up SoA_FT_13
  Global("c-aranfriendbg2","GLOBAL",26) // set up SoA_FT_14
  Global("c-aranfriendbg2","GLOBAL",28) // set up SoA_FT_15
  Global("c-aranfriendbg2","GLOBAL",30) // set up SoA_FT_16
THEN
RESPONSE #100
	IncrementGlobal("c-aranfriendbg2","GLOBAL",1)  // move up from even to odd
END

/* Aran's FriendTalks Fire, c-aranfriendbg2, ARAN_FTT */
/* This block takes the odd variables set by the last block, and tries to fire them off.  */
IF
GlobalLT("c-aranfriendbg2","GLOBAL",32)  // shuts down sequence when finished
RealGlobalTimerExpired("c-aranfriendtimer","GLOBAL")  // Timer Expired
!Global("Chapter","GLOBAL",5) // Not in Underdark - specialized talks for that
InParty(Myself)						// Aran is here
!StateCheck(Myself,CD_STATE_NOTVALID)  // Aran is ok
!StateCheck(Player1,CD_STATE_NOTVALID) // Player1 is ok
CombatCounter(0)  // Not in combat
!See([ENEMY])  // Can't see any enemies
OR(16)  
  Global("c-aranfriendbg2","GLOBAL",1)   // fire SoA_FT_1
  Global("c-aranfriendbg2","GLOBAL",3)   // fire SoA_FT_2
  Global("c-aranfriendbg2","GLOBAL",5)   // fire SoA_FT_3
  Global("c-aranfriendbg2","GLOBAL",7)   // fire SoA_FT_4
  Global("c-aranfriendbg2","GLOBAL",9)   // fire SoA_FT_5
  Global("c-aranfriendbg2","GLOBAL",11)  // fire SoA_FT_6
  Global("c-aranfriendbg2","GLOBAL",13)  // fire SoA_FT_7
  Global("c-aranfriendbg2","GLOBAL",15)  // fire SoA_FT_8
  Global("c-aranfriendbg2","GLOBAL",17)  // fire SoA_FT_9
  Global("c-aranfriendbg2","GLOBAL",19)  // fire SoA_FT_10
  Global("c-aranfriendbg2","GLOBAL",21)  // fire SoA_FT_11
  Global("c-aranfriendbg2","GLOBAL",23)  // fire SoA_FT_12
  Global("c-aranfriendbg2","GLOBAL",25)  // fire SoA_FT_13
  Global("c-aranfriendbg2","GLOBAL",27)  // fire SoA_FT_14
  Global("c-aranfriendbg2","GLOBAL",29)  // fire SoA_FT_15
  Global("c-aranfriendbg2","GLOBAL",31)  // fire SoA_FT_16
THEN
RESPONSE #100
	PlaySong(0)  // play a blank reference, stoping the soundtrack
	PlaySound("C-ARANFT") // play a .wav or .wavc file
	StartDialogueNoSet(Player1)  // Yo, we are talkin', here...
END

 

These look in the J-file, and there we find

http://forums.gibberlings3.net/index.php?showtopic=15692

APPEND ~C-ARANJ~

/* BG2 FriendTalk 10 c-aranfriendbg2 = 19 */
/* "Optimists, Pessimists, and Realists, Oh My...", or, the glass is half full, half empty, who cares - as long as it is a glass of good scotch!  */

IF ~Global("c-aranfriendbg2","GLOBAL",19)~ THEN c-aranfriendtenstart
 SAY ~[ARAN] We keep runnin’ around, battling’ various foes, an’ collectin’ artifacts, treasures, an’ knowledge. Cyric’s Dark Heart, do you think we are ever goin’ to slow down? Or ever just claim victory?~ DO ~SetGlobal("c-aranfriendbg2","GLOBAL",20)~
 IF ~~ THEN REPLY ~I think that we shall prevail. After all, we have made it this far. Things should be getting better any day now.~ GOTO c-aranfriendbg2optimist
END

END

 

Which means that when the script has set Global("c-aranfriendbg2","GLOBAL",19), that talk will fire.

 

For your situation, you would use

in the .tp2

COMPILE ~NANYA/DIALOGUE/JK#NANYJ.d~

 

and your file ~NANYA/DIALOGUE/JK#NANYJ.d~ would start like this:

 

BEGIN ~JK#NANYJ~ // tells the engine there is a new dialog file to create and add states to

APPEND ~JK#NANYJ~ // starts adding stuff to the new file

IF ~Global("mybanter","GLOBAL",1)~ THEN BEGIN myFirstFriendTalk
 SAY ~[NANYA] So, do you come here often?~
 IF ~~ THEN REPLY ~[PC] Yep.~ DO ~SetGlobal("mybanter","GLOBAL",2)~ EXIT
 IF ~~ THEN REPLY ~[PC] Nope.~  DO ~SetGlobal("mybanter","GLOBAL",2)~ EXIT
 IF ~~ THEN REPLY ~[PC] Great line. Does it work for you?~  DO ~SetGlobal("mybanter","GLOBAL",2)~ EXIT
 IF ~~ THEN REPLY ~[PC] Take the kettle off of your head, and move along, there, lady. I do not trust anyone who was not written by David Gaider.~  DO ~SetGlobal("mybanter","GLOBAL",2)~ EXIT
END

END // ends adding new stuff to the new file ~JK#NANYJ~

Link to comment

*sigh* I've been over and over my codes, I cant figure out what I'm missing. WeiDU installs fine but with warnings. Everything's fine, but the Jfile talks will not fire off.

EDIT: WeiDU no longer installs with warnings, but Jtalks still won't fire.

One thing (and I've tried both ways) is some people use, and instruct the use of, odd numbers for between lovetalks and even numbers for the actual talks. Does this matter?

 

Nanya's DV is set to "Nanya" it was set to "Nanya.baf" before then i changed it to "NanyaRomance.baf" not being sure about it, but now it's just "Nanya". Here's my codes. I'm sure someone can tell me where I've screwed up, I would much appreciate it.

 

NanyaRomance.baf

IF
Global("NanyaLoveTalk","GLOBAL",0)
InParty(Myself)
Gender(Player1,MALE)
See(Player1)
//AreaCheck("AR0406") 
THEN
RESPONSE #100
SetGlobal("NanyaLoveTalk","GLOBAL",1)
RealSetGlobalTimer("NanyaRomanceTimer","GLOBAL",20)
//SetGlobal("NanyaRomanceActive","GLOBAL",1)
END

IF
//InParty(Myself)
//See(Player1) // MyNPC is in party and sees Player1
//AreaCheck("AR0406") 
//CombatCounter(0)
//!See([ENEMY])
GlobalLT("NanyaRomance","GLOBAL",7)
RealGlobalTimerExpired("NanyaRomanceTimer","GLOBAL") 
OR (3)
Global("NanyaLoveTalk","GLOBAL",1)
Global("NanyaLoveTalk","GLOBAL",3)
Global("NanyaLoveTalk","GLOBAL",5)
// "1,3,5,7" means - "between lovetalks", "2,4,6,8" means "it is time for a lovetalk"
THEN
RESPONSE #100
IncrementGlobal("NanyaLoveTalk","GLOBAL",1)
END

IF
GlobalLT("NanyaRomance","GLOBAL",7)
InParty(Myself)
See(Player1)
RealGlobalTimerExpired("NanyaRomanceTimer","GLOBAL")
OR(3)
Global("NanyaLoveTalk","GLOBAL",2)
Global("NanyaLoveTalk","GLOBAL",4)
Global("NanyaLoveTalk","GLOBAL",6)
THEN
RESPONSE #100
StartDialogueNoSet(Player1)
END

 

JK#NanyJ.d

BEGIN ~JK#NanyJ~
APPEND ~JK#NanyJ~

IF ~Global("NanyaLoveTalk","GLOBAL",2)~ THEN BEGIN NanyaLoveTalkStart
SAY ~Hey, <CHARNAME>, Thank you for getting me out of this aweful place!~
++ ~yep! lets go.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",3)~ + NanyaLoveTalk2.1
++ ~First we must rest.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",3)~ + NanyaLoveTalk2.2
++ ~I don't care either way.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",3)~ + NanyaLoveTalk2.2
END

IF ~~ NanyaLoveTalk2.1
SAY ~Finally!~
IF ~~ EXIT
END

IF ~~ NanyaLoveTalk2.2
SAY ~Aw, Lets be quick...~
IF ~~ EXIT
END

IF ~Global("NanyaLoveTalk","GLOBAL",4)~ THEN BEGIN NanyaLoveTalkStart
SAY ~Hey, <CHARNAME>, Testing second dialog.~
++ ~yep!~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",5)~ + NanyaLoveTalk4.1
++ ~Eh....~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",5)~ + NanyaLoveTalk4.2
++ ~Wha-? Are you alright?.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",5)~ + NanyaLoveTalk4.2
END

IF ~~ NanyaLoveTalk4.1
SAY ~Lets go!~
IF ~~ EXIT
END

IF ~~ NanyaLoveTalk4.2
SAY ~Aw, you're no fun at all...~
IF ~~ EXIT
END

IF ~Global("NanyaLoveTalk","GLOBAL",6)~ THEN BEGIN NanyaLoveTalkStart
SAY ~Hey, <CHARNAME>, testing dialog three.~
++ ~yay!~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",7)~ + NanyaLoveTalk6.1
++ ~Eh....~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",7)~ + NanyaLoveTalk6.2
++ ~Wha-? Are you alright?.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",7)~ + NanyaLoveTalk6.2
END

IF ~~ NanyaLoveTalk6.1
SAY ~Yay!~
IF ~~ EXIT
END

IF ~~ NanyaLoveTalk6.2
SAY ~Aw, you're no fun at all...~
IF ~~ EXIT
END

END

 

Tp2

BACKUP ~Nanya/backup~
AUTHOR ~jonas~
BEGIN ~Nanya for BG2:SoA~
COPY ~Nanya/NANYA.cre~ ~override/NANYA.cre~

SAY NAME1 ~Nanya~
SAY NAME2 ~Nanya~

COMPILE ~NANYA/DIALOGUE/JK#NANYA.d~
COMPILE ~NANYA/DIALOGUE/JK#NANYJ.d~
COMPILE ~NANYA/NanyaRomance.baf~
EXTEND_TOP ~AR0406.bcs~ ~NANYA/AR0406.baf~
APPEND ~pdialog.2da~
~Nanya JK#NanyP JK#NanyJ JK#NanyD JK#Na25P JK#Na25J JK#Na25D JK#Nan25~
UNLESS ~JK#NANYA~
APPEND ~interdia.2da~
~Nanya NanyaB NanyB25~
UNLESS ~NANYA~

Link to comment

Will check more detailed-ly later, but check some things in the interim -

1. compile nanyaromance.baf needs a target that is also set on the .cre, so that the .cre can run the .bcs created by compiling the .baf.

 

I suggest trying setting Nanya's script on the .cre to NANYA and changing

 

COMPILE ~NANYA/NanyaRomance.baf~

 

to

 

COMPILE ~NANYA/Nanya.baf~

 

which will result in the file NANYA.BCS, which then will be run by the NPC. The .cre only can read 8 letter .bcs files, so mynanyaromance.baf results in mynanyaromance.bcs, which the engine cannot read! It gets tricky - if you use something like

 

EXTEND_BOTTOM ~Nanya.bcs~ ~NANYA/BAF/NanyasRomanceMaterialsIJustWrote.baf~

 

then the contents of the file are added onto the file NANYA.BCS. But if you COMPILE ~NANYA/BAF/NanyasRomanceMaterialsIJustWrote.baf~ , it creates the file with the name given.

 

2. the Joined file will not work until she has joined the party, so either ctr-Q (?) her into the party before testing, or create a simple vanilla joining dialog. It looks like you have that in COMPILE ~NANYA/DIALOGUE/JK#NANYA.d~, but doublecheck that she is actually getting the command JoinParty() in her dialog, so that the J-file stuff can be accessed. Most of all, check that the initial .cre has her dialog file referenced as JK#NANYA, so that it is referenced first.

 

3. top block, you have OR (3) ( which should be OR(3) ) - that could be failing, blocking the initial set. The way to test this quickly is install the mod, put the cursor over your NPC, and set the global manually via CLUAConsole, so that you have a known global set (like SetGlobal("NanyaLoveTalk","GLOBAL",2) ) and try to force-talk her.

 

4. I do not see a command to set her DV to "nanya", only SAY NAME1 || SAY NAME2, which gives her a tooltip name and a name to display for dialog, but not a script name... check her with NI or Shadowkeeper or DLTCEP and make sure the .cre has the DV "nanya" as well as NAME1, NAME2, etc.

Link to comment

I have her DV set in NI .cre viewer, I don't see options in there for "name1 name2", I thought those only need to be in the tp2. I don't know anything about setting the DV in my tp2 if that is needed.

she gets SetGlobal("NanyaJoined","LOCALS",1) and JoinParty() in her .d file.

 

Ok after changing "NanyaRomance" to "Nanya" the timer triggered (finally!) But something's still not right, She's not pulling dialogue from her Jfile, she only says "why do you wish to waist my time with idle banters" and repeating it over and over. that was also what she said when i tried force talking to her before. In the .cre viewer Dialog(JK#NANYA.DLG), DV(Nanya.baf), Override Script(NANYA.BCS) nothing else is set specifically.

Everything else you mentioned is correct. I'm still going over it but I can't find what's wrong.

Link to comment

DV needs to be nanya, not nanya.baf... check that first.

 

probably not the problem, but

 

APPEND ~pdialog.2da~

~Nanya JK#NanyP JK#NanyJ JK#NanyD JK#Na25P JK#Na25J JK#Na25D JK#Nan25~

UNLESS ~JK#NANYA~

 

needs to be edited to UNLESS ~NANYA~

 

Where do you have the line "waste my time with idle banters"?

Link to comment

Yes DV is set to "Nanya" but NI renames it to Nanya.baf after I save.

I don't have that line, I don't know where it's coming from.

after editing UNLESS ~JK#Nanya~ still same problem. dialogue triggers after timer expires but it's not *my* dialogue, and it keeps initiating over and over.

Link to comment

Please, help me get past this so i can actually create something. i've been working on getting this to work for the past week. here's everything i have on it.

 

First, the CRE settings. these are the only settings I've altered when creating the CRE, The only settings I've ever been told need to be altered.

Name/Apparent Name (no Such Index)

Override script (NANYA.BCS)

Cass script, Race script, General script, Default script (None)

DV (Nanya.baf)

Dialog (NANYA.DLG)

That's exactly a it appears in NI.

Using NI, in the DLG folder there's no Nanya.DLG (i'm assuming that's fine)

In the Override folder there's Nanya.bcs, Nanya.cre, NanyaJ.dlg

That's it for NI, as far as i know.

 

Now I've gotten rid of all the "JK#" prefixes and made some adjustments in my scripts, so here they are again.

Tp2

BACKUP ~Nanya/backup~
AUTHOR ~jonas~
BEGIN ~Nanya for BG2:SoA~
COPY ~Nanya/NANYA.cre~ ~override/NANYA.cre~
SAY NAME1 ~Nanya~
SAY NAME2 ~Nanya~
COMPILE ~NANYA/DIALOGUE/Nanya.d~
COMPILE ~NANYA/DIALOGUE/NanyaJ.d~
COMPILE ~NANYA/Nanya.baf~
EXTEND_TOP ~AR0406.bcs~ ~NANYA/AR0406.baf~
APPEND ~pdialog.2da~
~Nanya NanyaP NanyaJ NanyaD Nanya25P Nanya25J Nanya25D Nanya25~
UNLESS ~NANYA~
APPEND ~interdia.2da~
~Nanya NanyaB NanyB25~
UNLESS ~NANYA~

Nanya.baf

IF
Global("NanyaLoveTalk","GLOBAL",0)
Global("NanyaRomanceActive","GLOBAL",0)
InParty(Myself)
Gender(Player1,MALE)
See(Player1)
//AreaCheck("AR0406") 
THEN
RESPONSE #100
RealSetGlobalTimer("NanyaRomanceTimer","GLOBAL",10)
SetGlobal("NanyaLoveTalk","GLOBAL",1)
SetGlobal("NanyaRomanceActive","GLOBAL",1)
END

IF
//InParty(Myself)
//See(Player1)
//AreaCheck("AR0406") 
//CombatCounter(0)
//!See([ENEMY])
/*GlobalLT("NanyaRomance","GLOBAL",7)this is correct right? i just commented it out untill i have this working */
RealGlobalTimerExpired("NanyaRomanceTimer","GLOBAL") 
OR(3)
Global("NanyaLoveTalk","GLOBAL",1)
Global("NanyaLoveTalk","GLOBAL",3)
Global("NanyaLoveTalk","GLOBAL",5)
// "1,3,5,7" means - "between lovetalks", "2,4,6,8" means "it is time for a lovetalk"
THEN
RESPONSE #100
IncrementGlobal("NanyaLoveTalk","GLOBAL",1) 
/*this changes the 1 to a 2 or a 3 to a 4 making the following block true, right?*/
/*Dialogue(Player1) I commented this out because this block doesn't trigger the dialogue right? this is in the next block.*/
END

/*now that the above block changed the odd number to an even, this block is ready and fire off the appropriate talk, right? */
IF
/*GlobalLT("NanyaRomance","GLOBAL",7)I commented this out untill i get this working */
InParty(Myself)
See(Player1)
RealGlobalTimerExpired("NanyaRomanceTimer","GLOBAL")
OR(3)
Global("NanyaLoveTalk","GLOBAL",2) /* fire off this talk now if GLOBAL is 2*/
Global("NanyaLoveTalk","GLOBAL",4) /* fire off this talk now if GLOBAL is 4*/
Global("NanyaLoveTalk","GLOBAL",6)
THEN
RESPONSE #100
/*IncrementGlobal("NanyaLoveTalk","GLOBAL",1) I took this out because the above global gets incremented in the Jfile */
Dialogue(Player1) /* Is NOT calling Dialogue from NanyaJ */
END

I've commented on a lot of stuff to make sure i'm doing this right

 

NanyaJ.d

BEGIN ~NanyaJ~
/*APPEND ~NanyaJ~ this seems to cause problems "no reference in KEY file" besides i don't think i need it in this case */

IF ~Global("NanyaLoveTalk","GLOBAL",2)~ THEN BEGIN NanyaLoveTalk
SAY ~Hey, <CHARNAME>, Thank you for getting me out of this aweful place!~
++ ~yep! lets go.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",3)~ + NanyaLoveTalk2.1
++ ~First we must rest.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",3)~ + NanyaLoveTalk2.2
++ ~I don't care either way.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",3)~ + NanyaLoveTalk2.2
END

IF ~~ NanyaLoveTalk2.1
SAY ~Finally!~
IF ~~ EXIT
END

IF ~~ NanyaLoveTalk2.2
SAY ~Aw, Lets be quick...~
IF ~~ EXIT
END


IF ~Global("NanyaLoveTalk","GLOBAL",4)~ THEN BEGIN NanyaLoveTalk
SAY ~Hey, <CHARNAME>, Testing second dialog.~
++ ~yep!~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",5)~ + NanyaLoveTalk4.1
++ ~Eh....~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",5)~ + NanyaLoveTalk4.2
++ ~Wha-? Are you alright?.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",5)~ + NanyaLoveTalk4.2
END

IF ~~ NanyaLoveTalk4.1
SAY ~Lets go!~
IF ~~ EXIT
END

IF ~~ NanyaLoveTalk4.2
SAY ~Aw, you're no fun at all...~
IF ~~ EXIT
END

IF ~Global("NanyaLoveTalk","GLOBAL",6)~ THEN BEGIN NanyaLoveTalk
SAY ~Hey, <CHARNAME>, testing dialog three.~
++ ~yay!~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",7)~ + NanyaLoveTalk6.1
++ ~Eh....~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",7)~ + NanyaLoveTalk6.2
++ ~Wha-? Are you alright?.~ DO ~SetGlobal("NanyaLoveTalk","GLOBAL",7)~ + NanyaLoveTalk6.2
END

IF ~~ NanyaLoveTalk6.1
SAY ~Yay!~
IF ~~ EXIT
END

IF ~~ NanyaLoveTalk6.2
SAY ~Aw, you're no fun at all...~
IF ~~ EXIT
END

 

I haven't inserted timers or any of the other stuff i want to. I'm just trying to get it to work first.

In her baic D file she does get the command JoinParty() but the command in her BAF file, "Dialogue(player1)" to call on her Jfile, it isn't calling *her* Jfile, some unknown text keeps coming up saying "why do you wish to waist my time with idle banters"

I'm at a complete loss now, I've been reading tutorials over and over and i cant figure out what i'm doing wrong. some of these tutorials conflict with each other, most notably how some say to use even GLOBAL numbers for between talks, and use odd numbers for the dialogue. or vice versa. Generally there seems to be a lot of differances in the way modders like to lay things out. For example http://www.shsforums.net/index.php?showtopic=36780 the block layout in this tutorial is almost completely opposite of the one in this tutorial http://forums.gibberlings3.net/index.php?showtopic=9760

of course one's talking about banters and one's talking about friendship and romance (well they both talk about romance but one uses Interact(Player1) to call from the B file and one uses Dialogue(Player1) to call from the J file) but i understand the structure and I've tried both ways, it seems to make no difference if i use even or odd numbers for dialogue, as long as they match. The way i chose to use makes more sense to me, but is this what's screwing me up?

Link to comment

Archived

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

×
×
  • Create New...