Crimpson Posted October 23, 2009 Posted October 23, 2009 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.
Wisp Posted October 23, 2009 Posted October 23, 2009 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.
Crimpson Posted October 23, 2009 Author Posted October 23, 2009 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.
Grim Squeaker Posted October 23, 2009 Posted October 23, 2009 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
Crimpson Posted October 23, 2009 Author Posted October 23, 2009 wow, that's a huge help. I understand a lot more now, thank you. And thank you Wisp for the excellent link you provided, that will be a huge help to me.
cmorgan Posted October 29, 2009 Posted October 29, 2009 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 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~
Crimpson Posted October 30, 2009 Author Posted October 30, 2009 *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~
cmorgan Posted October 30, 2009 Posted October 30, 2009 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.
Kaeloree Posted October 30, 2009 Posted October 30, 2009 Check this tutorial for a (perhaps) simple® explanation, if the scripts are what the problem is--but it sounds like that isn't the case. Just thought I'd throw it out there on the off chance, though.
Crimpson Posted October 30, 2009 Author Posted October 30, 2009 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.
cmorgan Posted October 31, 2009 Posted October 31, 2009 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"?
Crimpson Posted October 31, 2009 Author Posted October 31, 2009 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.
Crimpson Posted November 1, 2009 Author Posted November 1, 2009 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?
Kaeloree Posted November 1, 2009 Posted November 1, 2009 Can you just .zip or .rar your mod folder and upload it somewhere? That would make it far easier for someone to debug.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.