Yovaneth Posted April 28, 2006 Share Posted April 28, 2006 Suggestion for tutorial expansion; when the protagonist is talking to an non-party NPC (e.g. Bernard / Lt. Aegis / Dale Belmark) and an in-party NPC is required to interject into the conversation. This problem's been driving me nuts on and off for the last three or so months... -Y- Link to comment
Grim Squeaker Posted April 28, 2006 Share Posted April 28, 2006 Suggestion for tutorial expansion; when the protagonist is talking to an non-party NPC (such as Bernard in the Copper Coronet) and an in-party NPC is required to interject into the conversation. This problem's been driving me nuts on and off for the last three or so months... -Y- <{POST_SNAPBACK}> Errr... what exactly is the problem? You I_C_T or INTERJECT. Link to comment
Yovaneth Posted April 28, 2006 Author Share Posted April 28, 2006 Errr... what exactly is the problem? You I_C_T or INTERJECT. <{POST_SNAPBACK}> Me, probably. I didn't explain that too well at all. What I meant was in the case of a completely new dialog i.e. a. Protagonist talks to MyNewNPC b. BiowareNPC intejects to a MyNewPC response c. Protagonist carries on dialog with MyNewNPC (a) and ©, no problem, but (b)? There's a very large hole in the wall next to my PC where my head has been making its acquaintance. -Y- Link to comment
Grim Squeaker Posted April 28, 2006 Share Posted April 28, 2006 Thats not hard you just make that dialogue block a CHAIN e.g. CHAIN MYNPC statename ~I'm going to say something worthy of interjection~ == CERNDJ IF ~InParty("Cernd")~ THEN ~You suck.~ == MYNPC ~And now I carry on.~ END ++ ~Some PC response~ EXIT Link to comment
Yovaneth Posted April 28, 2006 Author Share Posted April 28, 2006 Hi Grim That matches with what I thought I knew (fortunately!); what I could never get my head round was getting the Weidu code right. Look at this (please! ) //--------------------------------------------------------- IF ~Global("ys_TowerGuard","GLOBAL",0)~ THEN BEGIN BLK1 SAY ~Well, now, you tell me what I want to know and I'll tell you whether you're coming in - or not, as the case may be.~ IF~!InParty("Nalia")~THEN REPLY ~Open that gate or you will not live to regret it.~ GOTO BLK3 IF~InParty("Nalia")~THEN <Nalia interjects here> ~ GOTO BLK6 END //--------------------------------------------------------- IF ~Global("ys_TowerGuard","GLOBAL",0)~ THEN BEGIN BLK3 SAY ~Ha! How about you just go away and come back when you feel like being more polite?~ IF~~THEN EXIT END //--------------------------------------------------------- IF ~Global("ys_TowerGuard","GLOBAL",0)~ THEN BEGIN BLK6 SAY ~Please stand clear while I lower the drawbridge.~ IF~~THEN EXIT END //Nalia interjection CHAIN IF ~Global("ys_TowerGuard","GLOBAL",0) InParty("Nalia")~THEN yscgtowr BLK6 ~Ha! How about you just go away and come back when you feel like being more polite?~ == NALIAJ IF ~InParty("Nalia") !StateCheck("Nalia",CD_STATE_NOTVALID) See("Nalia")~ THEN ~What? How dare you! Open this gate right now!~ == yscgtowr IF ~InParty("Nalia") !StateCheck("Nalia",CD_STATE_NOTVALID) See("Nalia")~ THEN ~And who are you, you pretty little thing?~ == NALIAJ IF ~InParty("Nalia") !StateCheck("Nalia",CD_STATE_NOTVALID) See("Nalia")~ THEN ~Nalia D'Arnise, you blind fool! Open this gate immediately or I'll have your testicles boiled and dried for sling practice!~ == yscgtowr IF ~InParty("Nalia") !StateCheck("Nalia",CD_STATE_NOTVALID) See("Nalia")~ THEN ~Nalia - ! Oh Hells. At once, my lady.~ END BLK6 is also the endpoint for the 'polite' non-Nalia path. Does that make a little more sense of my problem? -Y- Link to comment
Grim Squeaker Posted April 28, 2006 Share Posted April 28, 2006 Okay, you're on the right lines but you're making some mistakes. If you're having NALIA's interjection entirely seperate from the non-injecting version you don't need to check InParty("Naila") everytime. Also as its not the start of a dialogue, you don't need starting conditions. In fact you're doing that for every block. You only need conditions on blocks that start dialogues: //--------------------------------------------------------- IF ~Global("ys_TowerGuard","GLOBAL",0)~ THEN BEGIN BLK1 SAY ~Well, now, you tell me what I want to know and I'll tell you whether you're coming in - or not, as the case may be.~ IF~!InParty("Nalia")~THEN REPLY ~Open that gate or you will not live to regret it.~ GOTO BLK3 IF~InParty("Nalia")~THEN GOTO BLK6 END //--------------------------------------------------------- IF ~~ THEN BEGIN BLK3 SAY ~Ha! How about you just go away and come back when you feel like being more polite?~ IF~~THEN EXIT END //--------------------------------------------------------- IF ~~ THEN BEGIN BLK6 SAY ~Please stand clear while I lower the drawbridge.~ IF~~THEN EXIT END //Nalia interjection CHAIN yscgtowr BLK6 ~Ha! How about you just go away and come back when you feel like being more polite?~ == NALIAJ ~What? How dare you! Open this gate right now!~ == yscgtowr ~And who are you, you pretty little thing?~ == NALIAJ ~Nalia D'Arnise, you blind fool! Open this gate immediately or I'll have your testicles boiled and dried for sling practice!~ == yscgtowr ~Nalia - ! Oh Hells. At once, my lady.~ EXIT You said that BLK6 was the end of that dialogue, yes? Then you want an EXIT as I've added. Edit: I'm confused by one point however. You have two BLK6s. What's the behaviour you want? My guess is you want the Nalia BKL6 followed by the first one: e.g. //--------------------------------------------------------- IF ~Global("ys_TowerGuard","GLOBAL",0)~ THEN BEGIN BLK1 SAY ~Well, now, you tell me what I want to know and I'll tell you whether you're coming in - or not, as the case may be.~ IF~!InParty("Nalia")~THEN REPLY ~Open that gate or you will not live to regret it.~ GOTO BLK3 IF~InParty("Nalia")~THEN GOTO BLK6 END //--------------------------------------------------------- IF ~~ THEN BEGIN BLK3 SAY ~Ha! How about you just go away and come back when you feel like being more polite?~ IF~~THEN EXIT END //Nalia interjection CHAIN yscgtowr BLK6 ~Ha! How about you just go away and come back when you feel like being more polite?~ == NALIAJ ~What? How dare you! Open this gate right now!~ == yscgtowr ~And who are you, you pretty little thing?~ == NALIAJ ~Nalia D'Arnise, you blind fool! Open this gate immediately or I'll have your testicles boiled and dried for sling practice!~ == yscgtowr ~Nalia - ! Oh Hells. At once, my lady.~ = ~Please stand clear while I lower the drawbridge.~ EXIT Edit#2: However, that can't be right as you then have the bloke responding to himself in the Nalia version, which is bad. This is my best guess at what you wanted: //--------------------------------------------------------- IF ~Global("ys_TowerGuard","GLOBAL",0)~ THEN BEGIN BLK1 SAY ~Well, now, you tell me what I want to know and I'll tell you whether you're coming in - or not, as the case may be.~ IF ~~ THEN REPLY ~Open that gate or you will not live to regret it.~ GOTO BLK3 END //--------------------------------------------------------- IF ~~ THEN BEGIN BLK3 SAY ~Ha! How about you just go away and come back when you feel like being more polite?~ IF ~!InParty("Nalia")~ THEN EXIT IF ~InParty("Nalia")~ THEN EXTERN NALIAJ BJK6 END //Nalia interjection CHAIN NALIAJ BLK6 ~What? How dare you! Open this gate right now!~ == yscgtowr ~And who are you, you pretty little thing?~ == NALIAJ ~Nalia D'Arnise, you blind fool! Open this gate immediately or I'll have your testicles boiled and dried for sling practice!~ == yscgtowr ~Nalia - ! Oh Hells. At once, my lady.~ = ~Please stand clear while I lower the drawbridge.~ EXIT Link to comment
Grim Squeaker Posted April 28, 2006 Share Posted April 28, 2006 Split from tutorial... Link to comment
Yovaneth Posted April 29, 2006 Author Share Posted April 29, 2006 <Quietly fills in the head-shaped hole in the wall>. Many thanks Grim; the problem turned out to be that See("<crename>") was causing a "No Valid Replies Or Links"..... go figure. One last minor question please; if I need to have a DO~ action depending on Nalia's reply, where would it go? I tried this:- CHAIN yscgtowr BLK6 ~Ha! How about you just go away and come back when you feel like being more polite?~ == NALIAJ ~What? How dare you! Open this gate right now!~ == yscgtowr ~And who are you, you pretty little thing?~ == NALIAJ ~Nalia D'Arnise, you blind fool! Open this gate immediately or I'll have your testicles boiled and dried for sling practice!~ == yscgtowr ~Nalia - ! Oh Hells. At once, my lady.~ DO~SetGlobal("ys_TalkedToGuard","GLOBAL",1)~ EXIT -and it compiled okay but the variable did not appear to be set. It triggers a cutscene and works fine down one of the other dialog paths. [EDIT]: It does work; it turned out I'd overwritten the cutscene trigger script with an earlier, non-working version. Bugger. [EDIT 2]: If I wanted to continue the dialogue, would I use a ++ ~Some PC response~ GOTO TheNextBlock~ -Y- Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.