Jump to content

cmorgan

Recommended Posts

The joining dialog is los of fun to create - sets a great mood for the rest of the interactions. We need to accomplish a couple of goals here; tell the game there are some new dialog files, and populate the "I have never been in the party" dialogs.

That should include a "first meet" option, a "hey, we talked before" option, a "join up" option, and a "no thanks" option. It also probably should include a "wait a bit, I'll get back to you" option.

 

So, let's try some stuff out.

 

 

1. Tell the game we have some new dialogs:

 

/* Initialize Dialogues */
BEGIN ~C-ARAN~   // pre-joining SoA
BEGIN ~C-ARANJ~  // joined SoA
BEGIN ~C-ARANB~  // banter SoA
BEGIN ~C-ARANP~  // post-joined SoA

 

 

 

I like separating them out and commenting them right up front. Now that they exist for the game, we get to fill them up. Let's go ahead with the pre-joining dialog, c-aran.

First, add the "first meet" option, capitalizing on "numberoftimestalkedto" which the game keeps count of:

 

/* C-ARAN pre joining dialogue */
APPEND ~C-ARAN~  // begin appenending to c-aran.dlg

 

 

and the talk,

IF ~NumTimesTalkedTo(0)~ THEN BEGIN c-firstmeetaran
 SAY ~Aye then, you showed up at a right good time. Aran Whitehand, Sword n' Pen. Accounts audited, contracts written, foes slain. I heard you might be interested in a sellsword for adventuring.~ [C-ARAN01]
 IF ~~ THEN REPLY ~Perhaps later. Right now, I just want a drink.~ GOTO c-firstmeetarandenied
 IF ~~ THEN REPLY ~I'm afraid we can't afford a mercenary right now. I need to save a good bit of coin to rescue a friend.~ GOTO c-firstmeetarancoin
 IF ~~ THEN REPLY ~Fighter and scribe? Do you do magic as well?~ GOTO c-firstmeetaranmagic
 IF ~~ THEN REPLY ~We might be able to use a good sword, but I am interested in your scribing. Can you make scrolls?~ GOTO c-firstmeetaranscrolls
END

 

Hey. That's boring. Same dialog every time we start the mod. Let's use random numbers to spice it up a little:

 

IF ~NumTimesTalkedTo(0)~ THEN BEGIN c-firstmeetaran
 SAY ~Aye then, you showed up at a right good time. Aran Whitehand, Sword n' Pen. Accounts audited, contracts written, foes slain. I heard you might be interested in a sellsword for adventuring.~ [C-ARAN01]
 IF ~~ THEN REPLY ~Perhaps later. Right now, I just want a drink.~ GOTO c-firstmeetarandenied
 IF ~~ THEN REPLY ~I'm afraid we can't afford a mercenary right now. I need to save a good bit of coin to rescue a friend.~ GOTO c-firstmeetarancoin
 IF ~~ THEN REPLY ~Fighter and scribe? Do you do magic as well?~ GOTO c-firstmeetaranmagic
 IF ~~ THEN REPLY ~We might be able to use a good sword, but I am interested in your scribing. Can you make scrolls?~ GOTO c-firstmeetaranscrolls
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Just not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~I was just checking to see if you were working here.~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Ask me again and I will have you thrown out of here.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~No. But I sure could use a drink. Buy me one?~ GOTO c-aranrefused5
END

 

That's better - one game, PC gets to chose from

 

~Perhaps later. Right now, I just want a drink.~

~I'm afraid we can't afford a mercenary right now. I need to save a good bit of coin to rescue a friend.~

~Fighter and scribe? Do you do magic as well?~

~We might be able to use a good sword, but I am interested in your scribing. Can you make scrolls?~

~Go away, little man.~

 

The next time, perhaps

~Perhaps later. Right now, I just want a drink.~

~I'm afraid we can't afford a mercenary right now. I need to save a good bit of coin to rescue a friend.~

~Fighter and scribe? Do you do magic as well?~

~We might be able to use a good sword, but I am interested in your scribing. Can you make scrolls?~

~I was just checking to see if you were working here.~

 

 

Let's add another set of responses, too, so that if PC is picking up Aran later in the game the whole "find Imoen" thing is resolved nicely:

 

IF ~GlobalLT("Chapter","GLOBAL",3)~ THEN REPLY ~I am not sure that I can use you right now. But perhaps you might be able to help me. I am looking for a mage named Irenicus. Have you heard of him?~ GOTO c-firstmeetaraniren
IF ~GlobalGT("Chapter","GLOBAL",2)~ THEN REPLY ~I sure could have used you awhile ago. Now I am not so sure. What can you do for me?~ GOTO c-firstmeetaranlate

 

Integrated into the talk,

IF ~NumTimesTalkedTo(0)~ THEN BEGIN c-firstmeetaran
 SAY ~Aye then, you showed up at a right good time. Aran Whitehand, Sword n' Pen. Accounts audited, contracts written, foes slain. I heard you might be interested in a sellsword for adventuring.~ [C-ARAN01]
 IF ~~ THEN REPLY ~Perhaps later. Right now, I just want a drink.~ GOTO c-firstmeetarandenied
 IF ~~ THEN REPLY ~I'm afraid we can't afford a mercenary right now. I need to save a good bit of coin to rescue a friend.~ GOTO c-firstmeetarancoin
 IF ~~ THEN REPLY ~Fighter and scribe? Do you do magic as well?~ GOTO c-firstmeetaranmagic
 IF ~~ THEN REPLY ~We might be able to use a good sword, but I am interested in your scribing. Can you make scrolls?~ GOTO c-firstmeetaranscrolls
 IF ~GlobalLT("Chapter","GLOBAL",3)~ THEN REPLY ~I am not sure that I can use you right now. But perhaps you might be able to help me. I am looking for a mage named Irenicus. Have you heard of him?~ GOTO c-firstmeetaraniren
 IF ~GlobalGT("Chapter","GLOBAL",2)~ THEN REPLY ~I sure could have used you awhile ago. Now I am not so sure. What can you do for me?~ GOTO c-firstmeetaranlate
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Just not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~I was just checking to see if you were working here.~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Ask me again and I will have you thrown out of here.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~No. But I sure could use a drink. Buy me one?~ GOTO c-aranrefused5
END

 

We could have more fun with this, but we don't want to get too carried away - too many choices is just as bad as too few. And right now PC has 6 different responses - more than enough.

Link to comment

So on to the "Hey, we met before". We could actually use the first dialog over again, which would be more efficient - set up the following...

 

IF ~NumTimesTalkedTo(0)~ THEN BEGIN c-firstmeetaran
 SAY ~Aye then, you showed up at a right good time. Aran Whitehand, Sword n' Pen. Accounts audited, contracts written, foes slain. I heard you might be interested in a sellsword for adventuring.~ [C-ARAN01]
 IF ~~ THEN GOTO c-araninitial
END

IF ~NumTimesTalkedToGT(0)~ THEN BEGIN c-nextmeetaran
 SAY ~Changed your mind? I can fight, write, an' cook a mean curry.~ [C-ARAN01]
 IF ~~ THEN GOTO c-araninitial
END

IF ~~ THEN BEGIN c-araninitial
 SAY ~Interested?~ [C-ARAN01]
 IF ~~ THEN REPLY ~Perhaps later. Right now, I just want a drink.~ GOTO c-firstmeetarandenied
 IF ~~ THEN REPLY ~I'm afraid we can't afford a mercenary right now. I need to save a good bit of coin to rescue a friend.~ GOTO c-firstmeetarancoin
 IF ~~ THEN REPLY ~Fighter and scribe? Do you do magic as well?~ GOTO c-firstmeetaranmagic
 IF ~~ THEN REPLY ~We might be able to use a good sword, but I am interested in your scribing. Can you make scrolls?~ GOTO c-firstmeetaranscrolls
 IF ~GlobalLT("Chapter","GLOBAL",3)~ THEN REPLY ~I am not sure that I can use you right now. But perhaps you might be able to help me. I am looking for a mage named Irenicus. Have you heard of him?~ GOTO c-firstmeetaraniren
 IF ~GlobalGT("Chapter","GLOBAL",2)~ THEN REPLY ~I sure could have used you awhile ago. Now I am not so sure. What can you do for me?~ GOTO c-firstmeetaranlate
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Just not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~I was just checking to see if you were working here.~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Ask me again and I will have you thrown out of here.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~No. But I sure could use a drink. Buy me one?~ GOTO c-aranrefused5
END

 

But I want to make the responses different on the second meeting, so similar outcomes but new lines for PC:

 

IF ~NumTimesTalkedToGT(0)~ THEN BEGIN c-nextmeetaran
 SAY ~Changed your mind? I can fight, write, an' cook a mean curry.~ [C-ARAN01]
 IF ~~ THEN REPLY ~Why are you looking for work?~ GOTO c-aranjobproblem
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~Stand aside, citizen. You are between me and the bar. Not a safe place to be.~ EXIT
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~I was just checking to see if you were still here.~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Ask me again and I will have you thrown out of here.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~No. But I sure could use a drink. Buy me one?~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~What is it you can do for me again?~ GOTO c-aranuseful
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined 
 IF ~~ THEN REPLY ~Not right now. I will let you know if we change our mind.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~Hire on with us, then. Follow my instructions, and you will be welcome. Cross me, and things could get unpleasant for you.~ GOTO c-aranjoined 
END

 

Now, we fill in those GOTOs, so the conversations proceed.

 

IF ~~ THEN BEGIN c-firstmeetarandenied
 SAY ~Are you sure? It looks like you could use me. And I am tired of just sittin' around.~ [C-ARAN01]
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~This conversation is over.~ EXIT
 IF ~~ THEN REPLY ~What is it you can do for me again?~ GOTO c-aranuseful
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~What part of 'go away' do you not understand?~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Look, you are cute and all, but really - ask me again and I will simply have to have you thrown out of this establishment.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined 
 IF ~~ THEN REPLY ~Not right now. I will let you know if we change our mind.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~Hire on with me, then. Follow my instructions, and you will be welcome. Cross me, and things could get unpleasant for you.~ GOTO c-aranjoined 
 IF ~~ THEN REPLY ~Why are you looking for work?~ GOTO c-aranjobproblem
END

 

Too many options on this one - players will probably get stunned by the WOT. So we may revisit. Unfortunately, RandNum stacking in the same dialog doesn't work so well. There is a way out of it, breaking them out into blocks, but unless it looks like the final dialog is overpowering, for now let's see where it takes us.

The good news is that instead of always seeing the same "exit" line, the player sees one of 5 random ones, possibly a different one each time.

 

IF ~~ THEN BEGIN c-firstmeetaraniren
 SAY ~No, can't say as I have. I came in last month from the Sword Coast, an' I have been actin' as cook and accountant here ever since. I don't get much chance to catch up on stuff around here.~
 IF ~~ THEN REPLY ~Why are you looking for work, then? It sounds like you have a good job here.~ GOTO c-aranjobproblem
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~I was just checking to see if you were still here.~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Sorry, we don't need you.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~No. But I sure could use a drink. Buy me one?~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~What is it you can do for me?~ GOTO c-aranuseful
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined 
 IF ~~ THEN REPLY ~Not right now. I will let you know if we change our mind.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~Hire on with me, then. Follow my instructions, and you will be welcome. Cross me, and things could get unpleasant for you.~ GOTO c-aranjoined 
END

IF ~~ THEN BEGIN c-aranrefused1
 SAY ~Bugger all, you are a tough one to convince. If you change your mind, I'll be here.~
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN c-aranrefused2
 SAY ~Ilmater's Blood, I had my hopes up. Look, when you need me, I'll be at the bar.~
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN c-aranrefused3
 SAY ~I'd rather be workin' with you than sittin' around here on my arse. Come back when you need a good fighter.~
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN c-aranrefused4
 SAY ~Sune's Bosom. I might have to take that tradeship job to Calimport after all. I'll be here a few more days, if you change your mind.~
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN c-aranrefused5
 SAY ~Elminster's Left Buttock. More sittin' around.~
 IF ~~ THEN REPLY ~You know Elminster?~ GOTO c-aranelminster
END

IF ~~ THEN BEGIN c-aranelminster
 SAY ~Are you kidding me? If I did, I wouldn't be sittin' around here looking for my next contract, now would I.~
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN c-firstmeetarancoin
 SAY ~Then I am your man. I can keep account o' what you have built up. Tell you what - I'll even go in for shares, instead of coin. That way I get whatever the rest of the group gets.~
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~This conversation is over.~ EXIT
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~What part of 'go away' do you not understand?~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Look, you are cute and all, but really - ask me again and I will simply have to have you thrown out of this establishment.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~So you can fight, and you can do accounts. What else can you do for me?~ GOTO c-aranuseful
 IF ~~ THEN REPLY ~The rest of the group shares what I choose to share, and they are glad to get that much. Do you have a problem with that?~ GOTO c-aranalmostjoined
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined 
END

IF ~~ THEN BEGIN c-firstmeetaranmagic
 SAY ~No, can't say as I can do magic. Though I wouldn't mind studyin' it, if that's what you are after. My usual scribing is trade work, not scrolls, but I can help craft some scrolls if I work closely with a mage.~
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~Forget it. I don't need your services..~ EXIT
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~What part of 'go away' do you not understand?~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Look, you are cute and all, but really - ask me again and I will simply have to have you thrown out of this establishment.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~I need a fighter who can write contracts like the Sword Coast needs gibberlings. Get lost.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~What else can you do?.~ GOTO c-aranuseful
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~The rest of the group shares what I choose to share, and they are glad to get that much. Do you have a problem with that?~ 
END

IF ~~ THEN BEGIN c-firstmeetaranscrolls
 SAY ~Aye, can't say as I can do the work alone, but with a mage I can do some minor scroll work. My usual scribing is trade work, not scrolls.~
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~This conversation is over.~ EXIT
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~What part of 'go away' do you not understand?~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Look, you are cute and all, but really - ask me again and I will simply have to have you thrown out of this establishment.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~What else can you do?.~ GOTO c-aranuseful
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~The rest of the group shares what I choose to share, and they are glad to get that much. Do you have a problem with that?~ GOTO c-aranjoined
END

IF ~~ THEN BEGIN c-aranuseful
 SAY ~Like I said, I can fight. Got three campaigns under my belt, an' a ton of more informal fightin'. I have Guild membership in both Trader's Guild an' Scribe's Guild, so I can help with some scroll preparation, do basic contracts, an' keep accounts. I'm always on the lookout for new opportunities, so I can add a trade if you want. An' I love cookin'. Curry, 'specially.~
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~No thanks.~ EXIT
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~What part of 'go away' do you not understand?~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~We really don't need your services right now.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~Perhaps later.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~The rest of the group shares what I choose to share, and they are glad to get that much. Do you have a problem with that?~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined
END

IF ~~ THEN BEGIN c-aranjoined
 SAY ~Fine by me. I'll take up a contract with you. I'll grab my gear.~ DO ~SetGlobal("c-aranjoined","GLOBAL",1) JoinParty()~ EXIT
 IF ~~ THEN EXIT
END

IF ~~ THEN BEGIN c-firstmeetaranlate
 SAY ~Well, I'm here now. I can fight, write, an' cook a mean curry.~ [C-ARAN01]
 IF ~~ THEN REPLY ~Why are you looking for work?~ GOTO c-aranjobproblem
 IF ~~ THEN REPLY ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 IF ~~ THEN REPLY ~Stand aside, citizen. You are between me and the bar. Not a safe place to be.~ EXIT
 IF ~RandomNum(5,1)~ THEN REPLY ~Go away, little man.~ GOTO c-aranrefused1
 IF ~RandomNum(5,2)~ THEN REPLY ~Nope. Still not interested.~ GOTO c-aranrefused2
 IF ~RandomNum(5,3)~ THEN REPLY ~I was just checking to see if you were still here.~ GOTO c-aranrefused3
 IF ~RandomNum(5,4)~ THEN REPLY ~Ask me again and I will have you thrown out of here.~ GOTO c-aranrefused4
 IF ~RandomNum(5,5)~ THEN REPLY ~No. But I sure could use a drink. Buy me one?~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~What is it you can do for me again?~ GOTO c-aranuseful
 IF ~~ THEN REPLY ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined 
 IF ~~ THEN REPLY ~Not right now. I will let you know if we change our mind.~ GOTO c-aranrefused5
 IF ~~ THEN REPLY ~Hire on with us, then. Follow my instructions, and you will be welcome. Cross me, and things could get unpleasant for you.~ GOTO c-aranjoined 
END

END // of APPEND to c-aran

 

There is a conscious choice to have a bunch of player options for each pathway, but still ave it negotiable in just a few clicks. And sometimes, you might be forced to railroad a players response -

 

IF ~~ THEN BEGIN c-aranrefused5
 SAY ~Elminster's Left Buttock. More sittin' around.~
 IF ~~ THEN REPLY ~You know Elminster?~ GOTO c-aranelminster
END

IF ~~ THEN BEGIN c-aranelminster
 SAY ~Are you kidding me? If I did, I wouldn't be sittin' around here looking for my next contract, now would I.~
 IF ~~ THEN EXIT
END

 

takes all player choice out of it. But it will be a tough response to trigger in the first place; another "hidden easteregg" thing, really, not a plot point or anything. Still, a trap for me to avoid if possible - snappy banters are fun on the NPC>NPC front. Not so great on the PC>NPC front, because we don't want to script the player if at all possible,. We want the player to make choices, and be a pat of things, not forced into the chair and force-fed our dialog. No Clockwork Orange, if you please.

 

Now, the original snippet of Aran having a "job problem" was pretty straightforward.

 

IF ~~ c-aranjobproblem
 SAY ~Well, let's just say there's a certain difference of opinion on what is proper behavior with th' cook's daughter. No harm, I can tell you that, an' no foul, but she sweared on Ilmater's Blood that she'd seen sixteen years, an' she wore the flower in the correct ear signallin' interest. But Gerris didn't see it that way, seein' as she's not of age to make her own mind.~
 ++ ~I can see that would be a problem. Can you keep your hands to yourself while adventuring?~ EXTERN ~C-ARAN~ c-aranhandstoself
 + ~RandomNum(5,1)~ + ~Go away, little man.~ + c-aranrefused1
 + ~RandomNum(5,2)~ + ~Nope. Still not interested.~ + c-aranrefused2
 + ~RandomNum(5,3)~ + ~I was just checking to see if you were still here.~ + c-aranrefused3
 + ~RandomNum(5,4)~ + ~Sorry, we don't need you.~ + c-aranrefused4
 + ~RandomNum(5,5)~ + ~No. But I sure could use a drink. Buy me one?~ + c-aranrefused5
 ++ ~What is it you can do for me?~ + c-aranuseful
 ++ ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ + c-aranjoined 
 ++ ~Not right now. I will let you know if we change our mind.~ + c-aranrefused5
 ++ ~Hire on with me, then. Follow my instructions, and you will be welcome. Cross me, and things could get unpleasant for you.~ + c-aranjoined 
END

IF ~~ c-aranhandstoself
 SAY ~Experience is a hard teacher. So's Gerris. He trained with the Old Order. Wish he was a monk who followed the Sun Soul path, as Sune would have had him winkin' one eye at her brazenness, but no, he had to be one o' the orders what frown on that sort o' thing. I can keep to myself an' concentrate on the work.~
 ++ ~Sounds good enough. Join up, then.~ GOTO c-aranjoined
 ++ ~No thanks.~ EXIT
 + ~RandomNum(5,1)~ + ~Go away, little man.~ GOTO c-aranrefused1
 + ~RandomNum(5,2)~ + ~Nope. Still not interested.~ GOTO c-aranrefused2
 + ~RandomNum(5,3)~ + ~What part of 'go away' do you not understand?~ GOTO c-aranrefused3
 + ~RandomNum(5,4)~ + ~We really don't need your services right now.~ GOTO c-aranrefused4
 + ~RandomNum(5,5)~ + ~Perhaps later.~ GOTO c-aranrefused5
 ++ ~The rest of the group shares what I choose to share, and they are glad to get that much. Do you have a problem with that?~ GOTO c-aranjoined
 ++ ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ GOTO c-aranjoined
END

 

 

I switched over to shorthand, with ++ for IF ~~ THEN REPLY and + for GOTO, and + ~condition~ + instead of IF ~condition~ THEN REPLY. But really, this is way too much fror party members to not comment on. Heck, the dude is going to join the party, and there is a perfect opportunity for NPCs to weigh in and see what they might say. So, let's recode these puppies as CHAIN, putting them after the APPEND block above:

I find this usually to be the most efficient way of getting a bunch of folks who *might* be in the party, or *might not* be in the party, to comment - if I code up a

CHAIN ~C-ARAN~ c-aranjobproblem
~Well, let's just say there's a certain difference of opinion on what is proper behavior with th' cook's daughter. No harm, I can tell you that, an' no foul, but she sweared on Ilmater's Blood that she'd seen sixteen years, an' she wore the flower in the correct ear signallin' interest. But Gerris didn't see it that way, seein' as she's not of age to make her own mind.~
== ~CERNDJ~ IF ~InParty("Cernd") InMyArea("Cernd") !StateCheck("Cernd",CD_STATE_NOTVALID)~ THEN ~[CERND] Wearing the flower is but one part of the ritual. You must have seen her age, yet your base nature continued to possess you.~ 
== ~EDWINJ~ IF ~InParty("Edwin") InMyArea("Edwin") !StateCheck("Edwin",CD_STATE_NOTVALID)~ THEN ~[EDWIN] More ridiculous foreign customs. The trollop should be punished, or sold into slavery. <CHARNAME>, dismiss this overgrown ape and let us continue.~
== ~HAERDAJ~ IF ~InParty("HaerDalis") InMyArea("HaerDalis") !StateCheck("HaerDalis",CD_STATE_NOTVALID)~ THEN ~[HAERDALIS] Ah, my eagle, the stories we could swap...~
== ~JAHEIRAJ~ IF ~InParty("Jaheira") InMyArea("Jaheira") !StateCheck("Jaheira",CD_STATE_NOTVALID)~ THEN ~[JAHEIRA] A grown man should know a child from a woman. He should also know that children like to play adult long before they are ready for true partnership.~
== ~JANJ~ IF ~InParty("Jan") InMyArea("Jan") !StateCheck("Jan",CD_STATE_NOTVALID)~ THEN ~[JAN]  Well, now, that is an entirely different matter. My Uncle Matthias always said that females were trouble. They were, too; every time he said it, Aunt Petunia hit him with a frying pan.~
== ~KELDORJ~ IF ~InParty("Keldorn") InMyArea("Keldorn") !StateCheck("Keldorn",CD_STATE_NOTVALID)~ THEN ~[KELDORN] There are reasons for the ritual, but it takes common sense and a willingness to look carefully at the situation before accepting.~
== ~KORGANJ~ IF ~InParty("Korgan") InMyArea("Korgan") !StateCheck("Korgan",CD_STATE_NOTVALID)~ THEN ~[KORGAN] Aye, good on ye. If she wants ter play wi' th' big boys, then it's her own business. Next time, though, you'd be better served takin' the trade, so a few coins saves ye th' trouble.~
== ~YOSHJ~ IF ~InParty("Yoshimo") InMyArea("Yoshimo") !StateCheck("Yoshimo",CD_STATE_NOTVALID)~ THEN ~[YOSHIMO] A custom of flowers behind the ears denoting availability? Interesting.~
== ~AERIEJ~ IF ~InParty("Aerie") InMyArea("Aerie") !StateCheck("Aerie",CD_STATE_NOTVALID)~ THEN ~[AERIE] Oh, that poor girl. Oh, you poor man. I have seen the flowers used and misused in the crowds surrounding the circus. You should have asked her father, first, though.~
== ~ANOMENJ~ IF ~InParty("Anomen") InMyArea("Anomen") !StateCheck("Anomen",CD_STATE_NOTVALID)~ THEN ~[ANOMEN] <CHARNAME>, come away from this baseborn scum. He seems unable to handle his sword after all.~
END
++ ~I can see that would be a problem. Can you keep your hands to yourself while adventuring?~ EXTERN ~C-ARAN~ c-aranhandstoself
++ ~What is it you can do for me?~ EXTERN ~C-ARAN~ c-aranuseful
++ ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ EXTERN ~C-ARAN~ c-aranjoined 
++ ~Not right now. I will let you know if we change our mind.~ EXTERN ~C-ARAN~ c-aranrefused5
++ ~Hire on with me, then. Follow my instructions, and you will be welcome. Cross me, and things could get unpleasant for you.~ EXTERN ~C-ARAN~ c-aranjoined 


CHAIN ~C-ARAN~ c-aranhandstoself
~Experience is a hard teacher. So's Gerris. He trained with the Old Order. Wish he was a monk who followed the Sun Soul path, as Sune would have had him winkin' one eye at her brazenness, but no, he had to be one o' the orders what frown on that sort o' thing. I can keep to myself an' concentrate on the work.~
== ~CERNDJ~ IF ~InParty("Cernd") InMyArea("Cernd") !StateCheck("Cernd",CD_STATE_NOTVALID)~ THEN ~[CERND] Experience teaches us many things. Bruises teach us many more.~ 
== ~EDWINJ~ IF ~InParty("Edwin") InMyArea("Edwin") !StateCheck("Edwin",CD_STATE_NOTVALID)~ THEN ~[EDWIN] So you think to accept a fool who cannot control his animal lusts. Perhaps he will be useful as a decoy. Or an arrow holder.~
== ~HAERDAJ~ IF ~InParty("HaerDalis") InMyArea("HaerDalis") !StateCheck("HaerDalis",CD_STATE_NOTVALID)~ THEN ~[HAERDALIS] No, no, my fine friend, you should embrace the moment! <CHARNAME>, take pity on this poor man, and allow him his nature.~
== ~JAHEIRAJ~ IF ~InParty("Jaheira") InMyArea("Jaheira") !StateCheck("Jaheira",CD_STATE_NOTVALID)~ THEN ~[JAHEIRA] The sword might be useful, as well as the pen. If you join, learn how to handle all of your equipment with equal discretion.~
== ~KORGANJ~ IF ~InParty("Korgan") InMyArea("Korgan") !StateCheck("Korgan",CD_STATE_NOTVALID)~ THEN ~[KORGAN] Another blighted mouth to feed. Ain't my show, <CHARNAME>. You wanna deal wi' him, deal wi' him. I'm goin' off ter get drunk.~
== ~YOSHJ~ IF ~InParty("Yoshimo") InMyArea("Yoshimo") !StateCheck("Yoshimo",CD_STATE_NOTVALID)~ THEN ~[YOSHIMO] We might be able to use a fighter. And I am intrigued to learn more of this scribing. I have seen penmanship as art for most of my life.~
== ~AERIEJ~ IF ~InParty("Aerie") InMyArea("Aerie") !StateCheck("Aerie",CD_STATE_NOTVALID)~ THEN ~[AERIE] I would love to work on some scrolls with him. He is.. he is very interesting, <CHARNAME>.~
== ~ANOMENJ~ IF ~InParty("Anomen") InMyArea("Anomen") !StateCheck("Anomen",CD_STATE_NOTVALID)~ THEN ~[ANOMEN] We do not need this sellsword. Come away, <CHARNAME>.~
END
++ ~Sounds good enough. Join up, then.~ EXTERN ~C-ARAN~ c-aranjoined
++ ~No thanks.~ EXIT
++ ~Not right now. I will let you know if we change our mind.~ EXTERN ~C-ARAN~ c-aranrefused5
++ ~The rest of the group shares what I choose to share, and they are glad to get that much. Do you have a problem with that?~ EXTERN ~C-ARAN~ c-aranjoined
++ ~Yes. I could use your services. But shares only, no hiring fees, and you join us as a partner.~ EXTERN ~C-ARAN~ c-aranjoined

 

What more could we do to spice up the starting dialog? Have to think on that a bit, but we don't want a ton of extraneous stuff interfering with the pre-joining dialog. Either folks want him, or they want him later, or they don't want him at all this run, and we have that covered. We could play with him a bit later, if PC comes back several times, tossing on random lines, but I'd rather save the ideas and energy for joined dialogs or post-joined dialogs than the initial "heya".

Link to comment

Taking ideas for spawn points -

 

as befits a Companion Mod, it could be malleable (chosen on install, it is just a simple area script extension so it can go anywhere).

 

So far, the obvious ones are Promenade (Den of 7 Veils, hitting on Sheri and drinking with Laran, but the place is pretty crowded) or Trademeet (hitting on Tashia, but *that* is a little crowded too).

 

Looking for good pickup/dropoff points from different player's perspectives. I have added Brynlaw to the list, if he were stranded there. Me, I'd pick him up on the Promenade or any of the immediate city districts, but I want him around for the whole game. Most folks seem to do the pickup and dropoff routine nowadays. And since he is a multi-romance-neutral dude with a player starting/stopping LT/Flirt setup, he is pretty amenable to that king of utility usage. Part of his charm, you know.

Link to comment

Delosar's in the Bridge District, avoiding Captain What's-his-name?

 

Laran's in the Mithrest. It's Jolun that's in the Den of the Seven Vales. But Nathaniel goes to the Mithrest if you don't pick him up right away and the general go-to-point for the G3 Anniversary Mod is there. The inns are all getting pretty crowded, really.

 

Or maybe he could be in the docks, looking at the ships, or in the Slums, getting thrown out of the Copper Coronet.

Link to comment
Guest Guest-RadiantFoxx

Crooked crane, or however that is spelt, in the Gate part of Athkatla is fairly empty if my memory of it is correct, which it probably isn't since it's so late here. The adventurer's mart could be another option - could be annoying Ribald for something to do?

Technically I guess having a lot of NPC's in the same inn is good is some ways - means the PC has a choice of who to choose to join the party, but sooner or later those inns are bound to run out of ale, so maybe the less crowded the better :blush:

Link to comment

The Crooked Crane presents spawining challenges because of script assignment complications, but there's no reason Aran couldn't be spawned in the Gates and use his own override script to move him to the Crooked Crane once he's spawned. That's what I had to do with the various NPCs associated with Gavin. Because the Beregost area script is so packed, I didn't want to add more stuff to it, so I spawned everybody with the Temple area script and then moved them.

Link to comment

Archived

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

×
×
  • Create New...