Jump to content


Photo

Retired Crossmod Author's Corner: Solaufein

solaufein banters crossmod mod development dialog coding chain aran whitehand troubleshooting aranw_aware

1 reply to this topic

#1 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 20 November 2011 - 03:39 PM

Now, with the Granddaddy of All Mods, Solaufein, there is an added difficulty. We can (and I have) create two fun banters, and install them.

file: aranw_aware\aranaware_solaufein_SoAbanters.d
/* SoA Banters: Aran<>Solaufein : cmorgan */
CHAIN IF ~Global("c-aran1solaufein","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("SOLA") InMyArea("SOLA") !StateCheck("SOLA",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-aran1solaufeintalk
~[ARAN] So I hear you be a "good" Drow.~
DO ~SetGlobal("c-aran1solaufein","GLOBAL",1)~
== SOLA ~[SOLAUFEIN] Yes, it would appear so.~
== C-ARANB ~[ARAN] Didn't know there were any such thing.~
== SOLA ~[SOLAUFEIN] I assure you, I am. I exist, and I am not alone.~
== C-ARANB ~[ARAN] Well, I suppose you might find a rose on a dungheap, but I'd be thinkin' it would be a right easier thing to find a "good" demon servin' tea at Hareshom's o' Waterdeep.~
== SOLA ~[SOLAUFEIN] Perhaps you are correct. But the followers of Eilistraee, Lady Silverhair, must be discreet if we are to guide our brothers and sisters to a lighter path.~
== C-ARANB ~[ARAN] This Ellyartrie...~
== SOLA ~[SOLAUFEIN] Eilistraee.~
== C-ARANB ~[ARAN] Look, do there be many followers o' Her particular brand o' Drowdom?~
== SOLA ~[SOLAUFEIN] Very few, I am afraid.~
== C-ARANB ~[ARAN] Actually, that makes me a mite bit happier. I'd rather not be rethinkin' every single Drow bastard I personally put down. Chances are, none o' them be ones where I should o' hesitated.~
== SOLA ~[SOLAUFEIN] Ah, my friend, for a brief moment I thought that you would see past your prejudice rather that rationalize your past actions. I will sing a prayer to Lady of the Dance.~
EXIT

/* SoA Banters: Solaufein<>Aran : cmorgan */
CHAIN IF ~Global("c-solaufein1aran","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("'c-aran") InMyArea("'c-aran") !StateCheck("'c-aran",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN SOLA c-solaufein1arantalk
~[SOLAUFEIN] Ah, my prejudiced fellow traveller - speech is a mirror of the soul. As a man speaks, so is he. I ask you now: who is Aran?~
DO ~SetGlobal("c-solaufein1aran","GLOBAL",1)~
== C-ARANB ~[ARAN] I don't rightly understand th' question. Wait... mayhap I do. Do you be sayin' th' way a man speaks be a good indication o' his personality, his habits, an' so forth?~
== SOLA ~[SOLAUFEIN] Why, yes. I think that is a fair assessment.~
== C-ARANB ~[ARAN] That be a right interestin' idea. But I don't think it applies to me. You want to know me, you look at how I write, an' ignore th' language.~
== SOLA ~[SOLAUFEIN] I do not think that will be a fair picture. With your scribing, you have time to think, to craft your ideas. In your speech, there is an immediacy that shows a raw truth.~
== C-ARANB ~[ARAN] Mayhap. Or mayhap we have to agree to disagree, eh?~
== SOLA ~[SOLAUFEIN] I can convince you with a simple example, if you would like.~
== C-ARANB ~[ARAN] Aye, then, go ahead an' try.~
== SOLA ~[SOLAUFEIN] Have you ever known a Drow to communicate through poetry and song?~
== C-ARANB ~[ARAN] Point taken. An' I have to admit; mayhap I be wrong about th' only good Drow bein' a dead Drow. Mayhap there be one or two what be reasonable bein's.~
EXIT

Now comes the interesting part. As written above, Aran's initiated banter will play, but on the vast majority of installs, Solaufein's will not. Why? Well...

for one thing, Solaufein does not have a banter file.

Oh, he does - but he doesn't. Because Back In The Day™, in the very first mods, the same file was used for both banter and for joined file, and the NPC script switched things around.

And for a second thing, the RPG Solaufein Flirt pack adds a PID-style flirt to SOLA, so even if we call it, it will never play, as he flirts will superceed it in evaluation order. Actually, they might - the flirts are set on Player1 being the gabber, but if the folks there add the !Gabber(Player1) blocks I use, then they will have a wall - and someone, sometime, is going to build a proper PID for the lad. In a regular install, players will use the "obvious", and install Solaufein, then the RPG Flirt pack.

Two traditional ways to fix this - play around with weighting, moving the banter higher up in the order. Tricky, risks Weimer's work being blocked, and subject to install order problems. Yuck.
(actually, an additional one - start messing about with Solaufein's .bcs. Double-triple-yuck).
Or take the cheap way out - and don't have Solaufein actually start the banter - have it triggered from Aran's file. Since I have control of Aran's stuff, and not Solaufein's, I'm going "cheap, cheap, cheap", to quote Meilcamp!

Changed file entry -

/* SoA Banters: Solaufein<>Aran : cmorgan */
CHAIN IF ~Global("c-solaufein1aran","GLOBAL",0)
InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID)
InParty("SOLA") InMyArea("SOLA") !StateCheck("SOLA",CD_STATE_NOTVALID)
CombatCounter(0) !See([ENEMY])~
THEN C-ARANB c-solaufein1arantalk
== C-ARANB ~[ARAN] Blighted stone. Got one in my boot, I do.~
DO ~SetGlobal("c-solaufein1aran","GLOBAL",1)~
== SOLA ~[SOLAUFEIN] Ah, my prejudiced fellow traveller - speech is a mirror of the soul. As a man speaks, so is he. I ask you now: who is Aran?~
== C-ARANB ~[ARAN] I don't rightly understand th' question. Wait... mayhap I do. Do you be sayin' th' way a man speaks be a good indication o' his personality, his habits, an' so forth?~
== SOLA ~[SOLAUFEIN] Why, yes. I think that is a fair assessment.~
== C-ARANB ~[ARAN] That be a right interestin' idea. But I don't think it applies to me. You want to know me, you look at how I write, an' ignore th' language.~
== SOLA ~[SOLAUFEIN] I do not think that will be a fair picture. With your scribing, you have time to think, to craft your ideas. In your speech, there is an immediacy that shows a raw truth.~
== C-ARANB ~[ARAN] Mayhap. Or mayhap we have to agree to disagree, eh?~
== SOLA ~[SOLAUFEIN] I can convince you with a simple example, if you would like.~
== C-ARANB ~[ARAN] Aye, then, go ahead an' try.~
== SOLA ~[SOLAUFEIN] Have you ever known a Drow to communicate through poetry and song?~
== C-ARANB ~[ARAN] Point taken. An' I have to admit; mayhap I be wrong about th' only good Drow bein' a dead Drow. Mayhap there be one or two what be reasonable bein's.~
EXIT

And that, as they say, is that :)

Edited by cmorgan, 20 November 2011 - 04:02 PM.

I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams

#2 cmorgan

cmorgan

    journeyman investigator

  • Gibberlings
  • 6913 posts
  • Gender:Male
  • Location:Glencoe, IL, USA

Posted 06 July 2012 - 12:19 PM

Cleaned up and test installed; up on github, ready for playtesting.
I love deadlines. I love the whooshing noise they make as they go by. - Douglas Adams



Reply to this topic



  



Also tagged with one or more of these keywords: solaufein, banters, crossmod, mod development, dialog coding, chain, aran whitehand, troubleshooting, aranw_aware

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users