Jump to content

Search the Community

Showing results for tags 'mod development'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General Discussion
    • G3 News and Announcements
    • Infinity Engine Modding News
    • General Mod Discussion
    • Fan Fiction
    • Noobermeet
  • Tools & Resources
    • DLTCEP
    • GemRB
    • The Gibberlings Three Debugging Suite for BG2
    • IESDP Updates and Info
    • Modding How-Tos and Tutorials
    • Modding Q&A
    • Multi-Install Tool
    • Widescreen Mod
  • Released Projects
    • Miscellaneous Released Mods
    • Ajantis
    • Alternatives
    • Amber
    • Angelo
    • Ascension
    • Auren Aseph
    • BG1 NPC Project
    • Baldur's Gate Mini Quests and Encounters
    • The Beaurin Legacy
    • BG2 Fixpack - General Discussion
    • Calin
    • The Calling
    • Cirerrek's AI Scripts
    • Coran's Friendship Mod
    • Crossmod Banter Pack
    • Divine Remix
    • Enhanced Edition Trilogy
    • Evandra
    • Full Plate & Packing Steel
    • Garrick's Infatuation
    • Gavin
    • The Gibberlings Three Anniversary Mod
    • Glam's NPC Pack
    • Icewind Dale Mod Roundup
    • Icewind Dale in Baldur's Gate II
    • Imoen 4 Ever
    • Item Randomiser
    • Item Revisions
    • IWD2 NPC Project
    • IWDification
    • Keeping Yoshimo
    • Kivan and Deheriana Companions for BG2
    • Level One NPCs
    • Mur'Neth
    • NPC Kitpack
    • NPC Strongholds
    • NPC Tweak for BG2
    • Oversight
    • Romantic Encounters (BG)
    • Romantic Encounters (BG2)
    • Sarah
    • Song and Silence
    • Spell Revisions
    • Sword and Fist
    • Sword Coast Stratagems
    • Tweaks Anthology Forum
    • Tyris Flare
    • Wheels of Prophecy
    • Yoshimo's Remorse
  • Unreleased Projects
    • Aklon
    • Baldur's Gate: Shadow Hand TC
    • Aran Whitehand
    • Delainy
    • IWD Tutu
    • Kit Revisions
    • Inactive Projects
  • NWN2 Modding
  • Mod Workrooms

Categories

  • NPCs
  • Quests and Others
  • Tweaks & Fixes
  • Items/Kits/Spells
  • Portrait Packs
  • Mini Mods
  • Tools
  • In Progress

Categories

  • Fixes
  • Items
  • Kits
  • NPCs
  • Quests
  • Spells
  • Tweaks
  • Other
  • Tools

Product Groups

There are no results to display.


Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Discord


Website URL


Skype


AIM


MSN


ICQ


Yahoo


Jabber


Location


Interests


Mods Worked On

Found 58 results

  1. Version v5512

    4,985 downloads

    There are four files available: bg114315.exe - Patch for English players without the Tales of the Sword Coast expansion bgintl114315.exe - Patch for non-English players without the Tales of the Sword Coast expansion BGTalesUS5512.exe - Patch for English players with the Tales of the Sword Coast expansion BGTalesIntl5512.exe - Patch for non-English players with the Tales of the Sword Coast expansion Patches for the Enhanced Editions will be available through the service where you bought it (Beamdog, Steam, GOG).
  2. Version v26498

    3,566 downloads

    Depending on your installation, there are four files available: BaldursGateII-ShadowsofAmnPatchENGLISH.exe - For English players without the Throne of Bhaal expansion BaldursGateII-ShadowsofAmnPatchEUROPE.exe - For non-English players without the Throne of Bhaal expansion BGII-ThroneofBhaal_Patch_26498_ENGLISH.exe - For English players with the Throne of Bhaal expansion BGII-ThroneofBhaal_Patch_26498_EUROPEAN.exe - For non-English players with the Throne of Bhaal expansion Patches for the Enhanced Editions will be available through the service where you bought it (Beamdog, Steam, GOG).
  3. Avenger

    DLTCEP

    Version v7.8.0.2

    12,553 downloads

    The DragonLance Total Conversion Editor Pro (DLTCEP) is an unofficial game file editor/checker/browser for Infinity Engine games. Support forum
  4. The topic title pretty much explains itself, that's the question I'd like to ask, since I saw mention of July in one of these previous posts, and since July has come and gone, I'm just curious...
  5. We have found out in other threads that some "awareness" of things presented in mod-added content can be scripted directly into your mod without any troubles. For example, Aran can reference any existing DV, so !Inparty("mynpc") checks will not fail on install, and the strings referenced will be available if the mod-added NPC shows up in-game later on, regardless of install order. This works with globals, too, so in other threads progress to certain points in other mods allows "side talk" - not directly bantering with an NPC or using an item, but acknowledging their presence, either by use of <PLAYER3> tokens in dialog, or with direct checks for globals and DVs. Any way we cut this, we are still talking about having Aran (or your NPC) having some of his talks and paths refer to outside events created by other mods, and being able to install that content as part of Aran's mod. The presence of the global variable or DV being active in a game then "activates" that content passively - no need for messing about with other folk's files, etc. We have taken this a step further with looking at player responses by mod-added kit, in the thread regarding "what happens when..."; here, we found that when Divine Remix was not installed and we wanted to reference the kits added, we had a problem. Compiling a reference to a non-pre-existing kit left the engine with only one choice, "0". Which caused all sorts of problems if DR was not installed, and even worse had no "repair" effect on installed files - unlike GTIMES.IDS or other "engine lookup by handle" things, KIT.IDS references have to be built *after* the kits have been placed on an install, because of the way the files are created and referenced. We get around that by creating an independent "patch", ARAN_AWARE, which so far just swaps "dummy" variables that will compile at install but never be triggered (a very old idea in terms of shutting down content, the equivalent of adding False() to a trigger so a dialog will never play, except reversing a False() is a PITA, whereas setting a never-reached variable to 1 is a much more compatibility - friendly way of coding it - a SetGlobal, and the original block plays.) with the wanted content using good old fashioned REPLACE_TEXTUALLY operation: /* HEARTWARDER OF SUNE - Sune Firehair, Lady Firehair : Global("c-heartwarder","GLOBAL",1) */ ACTION_IF FILE_EXISTS_IN_GAME nmsune.2da BEGIN ACTION_FOR_EACH ~dialog_file~ IN ~c-aranj.dlg~ ~c-aranp.dlg~ ~c-arn25j.dlg~ ~c-arn25a.dlg~ BEGIN ACTION_IF FILE_EXISTS_IN_GAME ~%dialog_file%~ THEN BEGIN COPY_EXISTING ~%dialog_file%~ ~override~ DECOMPILE_DLG_TO_D REPLACE_TEXTUALLY ~Global("c-heartwarder","GLOBAL",1)~ ~Kit(Player1,NMSUNE) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER)~ REPLACE_TEXTUALLY ~Global("c-aranheartwarder","GLOBAL",1)~ ~Kit("c-aran",NMSUNE) OR(6) Class("c-aran",CLERIC) Class("c-aran",FIGHTER_CLERIC) Class("c-aran",CLERIC_MAGE) Class("c-aran",CLERIC_THIEF) Class("c-aran",FIGHTER_MAGE_CLERIC) Class("c-aran",CLERIC_RANGER)~ COMPILE_D_TO_DLG BUT_ONLY_IF_IT_CHANGES END END END So far so good. We know that using this after Divine Remix is installed means that the correct reference gets swapped into Aran's files. If a player installs the "patch" mod, the new content is activated. If they don't their game still works, and there is no problem. So, what else would need this kind of handling?
  6. 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
  7. We will insert the GitHub link once it is up right <<here>>, but for now, let's take inventory and start setting up for the documentation. Material written and integrated so far (except for the Gavin crossmod stuff that Berelinde and I are still tinkering with): Divine Remix aranw_aware will open pathways that recognize if your PC is using one of the Cleric Kits from Divine Remix. Kits Recognized: Heartwarder of Sune Feywarden of Correlon Strifeleader of Cyric Painbearer of Ilmater Lorekeeper of Oghma Firewalker of Kossuth Silverstar of Selune Holy Strategist of the Red Knight Nightcloak of Shar Battleguard of Tempus Authlim of Iyachtu Xvim NPC Mod Banters aranw_aware will add banters between Aran and the NPC in question if both Aran Whitehand and the other NPC mod are installed before running aranw_aware. NPC Mods Recognized: Laufey's Edwin Romance (one interjection in a conflict between Edwin and Anomen) "unauthorized" Angelo (two banters in SoA, two in ToB) "authorized", by Sister Vigilante and cmorgan; sound clips by Sister Vigilante Kivan (two banters in SoA) - "authorized" and "unauthorized" one by Domi and cmorgan, another by cmorgan (and hopefully she will ok it when she has the chance). Saerileth (three banters and one comment in SoA) "unauthorized", by cmorgan - if they stink, blame me and not Netharin/Sillara Tashia Remix, by Michael "Arian" Lyashenko, Bri, and Lord Ernie (two banters in SoA, two in ToB) "unauthorized", by cmorgan - if they stink, blame me and not Bri, Lord Ernie, or the original author, Michael "Arian" Lyashenko Tsujatha NPC MOD For Baldur’s Gate 2 (TOB Required) by Sillara of the Tamari (two banters in SoA) "unauthorized", by cmorgan - if they stink, blame me and not Sillara Solaufein Romance Mod Pack, by Westley Weimer (two banters in SoA) "unauthorized", by cmorgan - if they stink, blame me and not Westley Weimer Rather than filling the forum up with code, I will link the materials to github, so folks can see the .tp2 materials that way.
  8. So, way back in time, I did a stupid thing. Fun, glorious, but stupid. I introduced a whole bunch of epilogues that reflected player choice. This sounds wonderful for players, but for modders, this is hell. There is a reason most game companies keep small numbers of potential pathways and choices in the game - it becomes a seriously complicated affair keeping track of players and what they are going to do. So let's look at how to build out a set of choice points that allow folks to progress on this storyline and not get all messed up and tangled up with unanticipated outcomes (AKA "bugs"). Right now, for the player epilogues PCs are supposed to be able to access the following things, already in-game and tested: In order of evaluation: //////////////////////////////////////////////////////// /////* PC Accepts Godhood Potential Endings : DLG *///// //////////////////////////////////////////////////////// /* PC Accepted Godhood, Friendship, Good/Neutral */ Global("PlayerChoseEssence","GLOBAL",1) !Global("c-aranrom","GLOBAL",2) !GlobalGT("PPEvilChoices","GLOBAL",2) // PC chose good or neutral /* PC Accepted Godhood, Friendship, Evil */ Global("PlayerChoseEssence","GLOBAL",1) !Global("c-aranrom","GLOBAL",2) GlobalGT("PPEvilChoices","GLOBAL",2) // PC chose evil /* PC Accepted Godhood, Romance, Good/Neutral */ Global("PlayerChoseEssence","GLOBAL",1) Global("c-aranrom","GLOBAL",2) !GlobalGT("PPEvilChoices","GLOBAL",2) // PC chose good or neutral /* PC Accepted Godhood, Romance, Evil */ Global("PlayerChoseEssence","GLOBAL",1) Global("c-aranrom","GLOBAL",2) GlobalGT("PPEvilChoices","GLOBAL",2) // PC chose evil All of these are screened by Global("PlayerChoseEssence","GLOBAL",1) , so if PC chose godhood, only these can play. These work now, with no more effort. Now comes the tricky part. /* EPILOGUE VARS if PC does not accept godhood * Global("c-aranrom","GLOBAL",2) in romance | !Global("c-aranrom","GLOBAL",2) not in romance * IF !Global("c-aranrom","GLOBAL",2) !Alignment(Player1,MASK_EVIL) = good/neutral friend * IF !Global("c-aranrom","GLOBAL",2) Alignment(Player1,MASK_EVIL) = evil friend * Global("c-aranepiloguefriend","GLOBAL",0) * // 0 = alignment check only, 1 = friends but part ways, 2 = Adventurers Forever, 3 = City Forever, 4 = Country Forever * ALL ROM CONDITIONS (must at least set c-aranepiloguerelation and c-aranepiloguelifestyle above 0 or no epilogue will return true...) * Global("c-aranepiloguemarried","GLOBAL",0) // 0 or 1 * Global("c-aranepiloguechildren","GLOBAL",0) // 0 or 1 * Global("c-aranepiloguerelation","GLOBAL",0) // 1 = AranPrince, 2 = PCPrincess, 3 = Equals * Global("c-aranepiloguelifestyle","GLOBAL",0) // 1 = Adventuring, 2 = City, 3 = Country */ And the grid of endings: //////////////////////////////////////////////////////// /////* PC Refuses Godhood Potential Endings : DLG *///// //////////////////////////////////////////////////////// /* PC Refused Godhood, All PCs, Friendship, Good/Neutral : Global("c-aranepiloguefriend","GLOBAL",0) !Alignment(Player1,MASK_EVIL) */ /* PC Refused Godhood, All PCs, Friendship, Evil : Global("c-aranepiloguefriend","GLOBAL",0) Alignment(Player1,MASK_EVIL) */ /* PC Refused Godhood, All PCs, Friendship and Part Ways : Global("c-aranepiloguefriend","GLOBAL",1) */ /* PC Refused Godhood, Romance, Friendship with Benefits and Part Ways : Global("c-aranepiloguefriend","GLOBAL",1) */ /* PC Refused Godhood, Romance, Friendship with Benefits but Never Part Ways: Adventuring Life : Global("c-aranepiloguefriend","GLOBAL",2) */ /* PC Refused Godhood, Romance, Friendship with Benefits but Never Part Ways: City Life : Global("c-aranepiloguefriend","GLOBAL",3) */ /* PC Refused Godhood, Romance, Friendship with Benefits but Never Part Ways: Country Life : Global("c-aranepiloguefriend","GLOBAL",4) */ /* PC Refused Godhood, Romance, Not Married With No Children, Aran as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Not Married With No Children, Aran as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Not Married With No Children, Aran as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Not Married With No Children, PC as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Not Married With No Children, PC as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Not Married With No Children, PC as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Not Married With No Children, PC and Aran as Equals : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Not Married With No Children, PC and Aran as Equals : City Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Not Married With No Children, PC and Aran as Equals : Country Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Not Married With Children, Aran as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Not Married With Children, Aran as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Not Married With Children, Aran as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Not Married With Children, PC as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Not Married With Children, PC as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Not Married With Children, PC as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Not Married With Children, PC and Aran as Equals : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Not Married With Children, PC and Aran as Equals : City Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Not Married With Children, PC and Aran as Equals : Country Life : Global("c-aranepiloguemarried","GLOBAL",0) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Married With No Children, Aran as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Married With No Children, Aran as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Married With No Children, Aran as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Married With No Children, PC as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Married With No Children, PC as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Married With No Children, PC as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Married With No Children, PC and Aran as Equals : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Married With No Children, PC and Aran as Equals : City Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Married With No Children, PC and Aran as Equals : Country Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",0) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Married With Children, Aran as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Married With Children, Aran as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Married With Children, Aran as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",1) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Married With Children, PC as Prince Charming : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Married With Children, PC as Prince Charming : City Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Married With Children, PC as Prince Charming : Country Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",3) */ /* PC Refused Godhood, Romance, Married With Children, PC and Aran as Equals : Adventuring Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",1) */ /* PC Refused Godhood, Romance, Married With Children, PC and Aran as Equals : City Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",2) */ /* PC Refused Godhood, Romance, Married With Children, PC and Aran as Equals : Country Life : Global("c-aranepiloguemarried","GLOBAL",1) Global("c-aranepiloguechildren","GLOBAL",1) Global("c-aranepiloguerelation","GLOBAL",3) Global("c-aranepiloguelifestyle","GLOBAL",3) */ So.... lots of possibilities. And we have the grid set up nicely and checked. We just have to get from Point A to Point B. Of course, point A is on Mars, and point B is in Sandusky, OH, but where there is a will there is a way... So for right now, since no variables are set in dialog, the PC comfortably gets access to the Godhood epilogues and the basic friendship epilogues. What do we have already in the project? Luckily for aus, a simple state, ready for replacement or expansion, and a sketch of older expected variables to set: The Basic Block: Marry Me, CHARNAME First off, it seems simple enough. We want our NPC to "pop the question". The simple, currently in-game setup for Aran in ToB is very straightforward: Since ToB is short, and most folks doing a romance with Aran have presumably brought him along from SoA, the 3rd lovetalk will suffice. 1 reinforces and rechecks the love relationship, 2 is an awkward attempt to start the whole "yu are more specail and important than anything else", and 3 is the first solid attempt to ask the "marry or not": /* ToB Love Talk #3 : ask the big question or not */ IF ~Global("c-arantobrom","GLOBAL",5)~ THEN BEGIN c-arantemporary_question SAY ~[ARAN] Now, we be supposed to have a big talk here about marriage an' such. But for now, do you think you might marry me someday?~ ++ ~[PC] Yes!~ DO ~SetGlobal("c-arantobrom","GLOBAL",6) RealSetGlobalTimer("c-aranromtimer","GLOBAL",%ARAN_LTT%)~ + c-aran_exit_temp ++ ~[PC] No!~ DO ~SetGlobal("c-arantobrom","GLOBAL",6) RealSetGlobalTimer("c-aranromtimer","GLOBAL",%ARAN_LTT%)~ + c-aran_exit_temp ++ ~[PC] Never!!~ DO ~SetGlobal("c-arantobrom","GLOBAL",6) RealSetGlobalTimer("c-aranromtimer","GLOBAL",%ARAN_LTT%)~ + c-aran_exit_temp END IF ~~ c-aran_exit_temp SAY ~[ARAN] Aye then. That be th' way things will be, then. Until I bring it up in th' next talk, that is.~ IF ~~ THEN EXIT END We also have the original "engagement variables" commented in code several places: // SetGlobal("c-aranengagement","GLOBAL",0) = not asked about marriage // SetGlobal("c-aranengagement","GLOBAL",1) = delay interested in marriage // SetGlobal("c-aranengagement","GLOBAL",2) = engaged // SetGlobal("c-aranengagement","GLOBAL",3) = not engaged but perhaps later // SetGlobal("c-aranengagement","GLOBAL",4) = not interested in marriage So obviously the original plan was to have the "Pop the Question" state be able to be delayed, to be accessed via PID, and to influence other talks. But getting these in-game right now means nothing, as no content is filtered through these variables - and we have a ""macro state" to work with, dealing with the epilogues. We may come back to this to help our dialogues and talks later on, but this is straightforward stuff. We need to get a handle on the Big Stuff. This currently has no effect on the epilogues, and since no variables are set, there is no way to hook that content up with discussions or PID. So the good news is that we can work with a blank slate; the current Beta works fine, and we are now looking at two expansions of content - dealing with a potential engagement, and dealing with the epilogue grid of choices. They may interrelate, but they don't have to - the future is not set, so an engaged PC might go on to marry someone else. Our best bet to try to catch player imagination is to use the status of engagement to help inform in-game dialog, but rely on the grid to actually determine whether the "intent" to marry actually matches what the player says about her future. We all have sob stories about college engagements falling apart; most of all, being engaged to one NPC while married to another sounds like another mod. Not one I am particularly interested in creating, either. The Problem To Be Solved First of all, we have let the PC change her mind. She can break up with him, and then try and get back together with him. She can use PID to talk with him and change the entire status of the relationship. And, she can multi-romance without breakage - so in the end, she may have an in-game marriage to Angelo, or Kelsey, or someone else.... and then get an epilogue for Aran that makes little or no sense. And we have set up an expectation of "player free will", so the player expects to be able to take the "I won't answer that" and not have serious repercussions in their game. Luckily, up until now, I have left things in open interpretation. How they envision keeping Aran around on a string long-term while happily married to Ajantis or Gavin, I leave to them. BUT. I don't force the player to clarify the status at all; without PC opening up a PID and breaking up with him, a player can have (Romance Active = 2) at the final entries, and we have a whole grid of possible endings, but it is entirely possible to have defined the relationship as YES_TOGETHER_AND_MARRIED and MARRY_OTHER_NPC, which might work for some folks, but is much more likely to cause Bug Reports than elicit "kewl, I can have a polygamous marriage". No judgement here - just saying I really don't like bug reports. On the story content side, how can PC and Aran talk about future and godhood without reference to choices? Especially when they have never actually voiced them in ToB? Hmmmm.... SO I need to force some decision points on the player. So you need to condition every ending perfectly? Nope. The grid above should take care of most of this - we really need to only get that c-aranepiloguerelation and c-aranepiloguelifestyle above 0 or no epilogue will return true. In second place is the specificity of the toughest track - the "I want to be friends with benefits forever". That is the toughest one to adjudicate without specific variables - and it is the one that needs to UNSET some variables if PC changes her mind. Wait - unset variables? Why? You just created that whole grid to make sure everything was covered... Yep. But in evaluation order, /* PC Refused Godhood, Romance, Friendship with Benefits and Part Ways : Global("c-aranepiloguefriend","GLOBAL",1) */ trumps everything below it. So even if all the grid of 4 variables are set, one random choice of "Hey... I think you and I should be friends forever. With a few benefits, of course" and the PC is locked out of all the rest of the potential epilogues FOREVAR. Now, we could do a bunch of legerdemain with unsetting and setting combinations of variables, but we don't need to, as the grid catches all sorts of combinations. All we need to do is control for the player choice that says "RA=2 But Friends And Perhaps Lovers"- we need to erase the "friends who snog if no one else is available" setting for PCs who have changed their minds and want the RA=2 regular screening to take place. Lots of Talk. No Code. Heh. Story of my life. And I am talking to myself again. Let's try a quick "evaluation" dialog so we can get our coding act together. /* Initial Sketch: CheckState for Epilogue settings */ ++ ~[PC] So, Aran, what do you think our future holds? What will we be doing years from now?~ + epilogue_settings_check // goes into management or talk part of PID { CHAIN ) IF ~~ epilogue_settings_check SAY ~[ARAN] We may have talked on that a time or two, eh? Let me remember...~ /* friendship */ ~!Global("c-aranrom","GLOBAL",2) !Alignment(Player1,MASK_EVIL)~ // good/neutral friend ~!Global("c-aranrom","GLOBAL",2) Alignment(Player1,MASK_EVIL)~ // evil friend /* specifically defined friendship */ // ~Global("c-aranepiloguefriend","GLOBAL",0)~ // 0 = alignment check only ~Global("c-aranrom","GLOBAL",3)~ // we brike up so we just have the memories ~!Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguefriend","GLOBAL",1)~ // 1 = friends but part ways (possible for men and non-romanced) ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguefriend","GLOBAL",1)~ // 1 = friends but part ways (active RA=2) ~Global("c-aranepiloguefriend","GLOBAL",1)~ // 1 = friends but part ways (requires active RA=2 to activate) ~Global("c-aranepiloguefriend","GLOBAL",2)~ // 2 = Adventurers Forever Together (requires active RA=2 to activate) ~Global("c-aranepiloguefriend","GLOBAL",3)~ // 3 = City Forever Together (requires active RA=2 to activate) ~Global("c-aranepiloguefriend","GLOBAL",4)~ // 4 = Country Forever Together (requires active RA=2 to activate) /* romance active and marriage choices */ ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguemarried","GLOBAL",0)~ // not married (default) ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguemarried","GLOBAL",1)~ // married /* romance active and children choices */ ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguechildren","GLOBAL",0)~ // no children (default) ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguechildren","GLOBAL",1)~ // children /* romance active and relation choices */ ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguerelation","GLOBAL",0)~ //not talked about ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguerelation","GLOBAL",1)~ // 1 = AranPrince ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguerelation","GLOBAL",2)~ // 2 = PCPrincess ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguerelation","GLOBAL",3)~ // 3 = Equals /* romance active and lifestyle choices */ ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",0)~ //not talked about ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",1)~ // 1 = Adventuring ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",2)~ // 2 = City ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguelifestyle","GLOBAL",3)~ // 3 = Country EXTERN C-ARN25J epilog_recheck_done// end of chain APPEND ~C-ARN25J~ IF ~~ epilog_recheck_done SAY ~[ARAN] Now, do that match your recollection?~ /* everything as player expects so exit */ ++ ~[PC] That is about right. I just find it comfortable to remember that there will be a future at all after all of this.~ + existing_aye_state /* block of potential changes here */ [[INSERT_HERE]] /* conflicting information */ IF ~Global("c-aranrom","GLOBAL",2) GlobalGT("c-aranepiloguefriend","GLOBAL",0) OR(4) GlobalGT("c-aranepiloguemarried","GLOBAL",0) GlobalGT("c-aranepiloguechildren","GLOBAL",0) GlobalGT("c-aranepiloguerelation","GLOBAL",0) GlobalGT("c-aranepiloguelifestyle","GLOBAL",0)~ THEN GOTO aran_confused_choices END IF ~~ aran_confused_choices SAY ~[ARAN] Now there be a point o' contention, here. I thought we was set on havin' a lastin' friendship after all this, but we done talked about mayhap marriage, or little ones, or mayhap settlin' down somewhere.~ /* 1 = friends but part ways */ ++ ~[PC] I am sure that we would keep our friendship, but we will both move on to other things and other lives, Aran.~ DO ~SetGlobal("c-aranepiloguefriend","GLOBAL",1)~ + existing_aye_state /* 2 = Adventurers Forever Together */ ++ ~[PC] I am sure that we would keep our friendship and adventure together, Aran. I do not see a future without the challenges of the open road.~ DO ~SetGlobal("c-aranepiloguefriend","GLOBAL",2)~ + existing_aye_state /* 3 = City Forever Together */ ++ ~[PC] I am sure that we would keep our friendship, but we will both move on to other things, Aran. Perhaps we will find ourselves in the same city, exploring urban life.~ DO ~SetGlobal("c-aranepiloguefriend","GLOBAL",3)~ + existing_aye_state /* 4 = Country Forever Together */ ++ ~[PC] I am sure that we would keep our friendship, but we will both move on to other things, Aran. Perhaps we will find ourselves in the same small village,. arguing over who was the better adventurer for the amusement of tavern patrons.~ DO ~SetGlobal("c-aranepiloguefriend","GLOBAL",4)~ + existing_aye_state /* all PC states */ ++ ~[PC] You know me. I change my mind all the time. Are you not used to it by now?~ + existing_aye_state // ok, on the PCs head be it. I tried. aranepiloguefriend will trump all other decisions made, so we will leave the conflict in place. ++ ~[PC] Well, we have talked about many things. But I think we might be more than friends after this is all over.~ DO ~SetGlobal("c-aranepiloguefriend","GLOBAL",0)~ + existing_aye_state // 0 = Allow RA possibility grid to be enabled ++ ~[PC] I can clarify things, Aran. The future is very flexible, and almost anything could happen.~ DO ~SetGlobal("c-aranepiloguefriend","GLOBAL",0)~ + existing_aye_state // 0 = Allow RA possibility grid to be enabled END END // of append to C-ARN25J The block aran_confused_choices allows the player to change the expected outcome by resetting the var or if they are now open to romance of a more long-lasting kind, unsetting it completely. So we have the start of a sketch for CHAIN evaluation of materials in ToB, so PC can talk about and potentially change the ending states. And we have identified one "clarification" point, if other vars are set but PC has said "RA=2 But Just Friends". Side Note - "everything as player expects" is not the same as "do what the player wants". The grid of possible endings is huge, but not infinite... we are just making sure that the intended behavior of the array of choices I provided works. So, note to fellow modders - look at all this stuff being messed with for less than 10 seconds of text screen at the conclusion of a mod. And rethink your design decision. Seriously. Don't go this crazy, unless you find the *logic* exercise fun. If you like the *writing* stuff, throw your talent into actual dialogue and quests and stuff. This is a HUGE timesink. Since I am crazy, like the StarCitizen folks, and want to make sure each bolt and rivit in my imaginary spacecraft is actually fully modelled, I find this fun. But most folks would not. So recheck - hmmm - what two variables have to set to make sure everything is fine? IF Global("c-aranrom","GLOBAL",2) AND NOT GlobalGT("c-aranepiloguefriend","GLOBAL",0) THEN ( ( c-aranepiloguerelation < 0 ) AND ( c-aranepiloguelifestyle < 0 ) ) = true ELSE FAIL So we need to add another diverting question to the above. So, a new filter: IF ~Global("c-aranrom","GLOBAL",2) OR(2) Global("c-aranepiloguerelation","GLOBAL",0) Global("c-aranepiloguelifestyle","GLOBAL",0)~ THEN GOTO aran_life_choice_point IF ~~ aran_life_choice_point SAY ~[ARAN] Now I want to say right out that a life backin' you up be what I want. But we all have some dreams, eh?~ = ~[ARAN] When this be all over an' we go on to th' next adventure, what kind o' life do you be seein' us in?~ ++ ~[PC] I see adventuring for a long, long time. Perhaps forever.~ DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",1)~ + next_adventuring_state ++ ~[PC] I always saw myself as drawn to the politics and discussions you can only find in a city. I want to be involved in everything.~ DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",2)~ + next_city_state ++ ~[PC] A quiet life in a country house for me. Something very different from the life I have now.~ DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",3)~ + next_country_state ++ ~[PC] I... I am not sure. What sort of life do you want?~ + next_pc_asks_aran ++ ~[PC] I see next to no life for us. I think that I will never be left alone long enough to really settle down.~ + DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",1)~ + next_adventuring_state // forced choice for PC END IF ~~ next_adventuring_state SAY ~[ARAN] Mahap you be right, on account o' th' number o' changes in Toril can lead directly to you. Life sometimes will have naught in th' way o' lettin' someone drop away from th' center o' things.~ IF ~~ THEN GOTO aran_rel_choice_point END IF ~~ next_city_state SAY ~[ARAN] Waterdeep sounds like a right fine destination. Mayhap even one o' th' Dale cities. Just not Calimport, for Sune's own sake... I love th' baths, but I do not want to retire there.~ IF ~~ THEN GOTO aran_rel_choice_point END IF ~~ next_country_state SAY ~[ARAN] Well, there be thousands o' nice places fo a small cottage, or mayhap a whole country estate. That might be a right fine retirement.~ IF ~~ THEN GOTO aran_rel_choice_point END IF ~~ next_pc_asks_aran SAY ~[ARAN] Now that changes by th' day, it do. But right now, I can see us in Waterdeep, all set up in one o' those townhouses. An' then mayhap a country estate. Or even some travel to that freehold my followers have been buildin' along th' Sword Coast.~ ++ ~[PC] That is a nice dream, but I see adventuring for a long, long time. Perhaps forever.~ DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",1)~ + final_adventuring_state ++ ~[PC] That seems very comfortable. The best of both worlds.~ DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",2)~ + final_city_state ++ ~[PC] I think you would love the townhouse, and I would probably push for us to visit the country estate.~ DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",3)~ + final_country_state ++ ~[PC] The sea tower. Lighthouse. Whatever it is that you are building on the Sword Coast. Being close to Candlekeep in some way... that sounds romantic.~ + final_follower_state ++ ~[PC] I see next to no life for us. I think that I will never be left alone long enough to really settle down.~ + DO ~SetGlobal("c-aranepiloguelifestyle","GLOBAL",1)~ + final_adventuring_state // forced choice for PC END IF ~~ aran_rel_choice_point SAY ~[ARAN] An' mayhap I will be out managin' our estates, an' fendin' off foes, leavin' you to relax an' be happy, eh? A lad could enjoy spendin' th' rest o' his life protection' you.~ ++ ~[PC] That sounds as if you want to be a charming prince, whisking me away from the world. I like that idea.~ DO ~Global("c-aranepiloguerelation","GLOBAL",1)~ + finish_rel_choice_point // 1 = AranPrince ++ ~[PC] Actually, I think you will be too busy cooking and scribing, making sure that my life is free to concentrate on larger challenges.~ DO ~Global("c-aranepiloguerelation","GLOBAL",2)~ + finish_rel_choice_point // 2 = PCPrincess ++ ~[PC] I assume that you and I will be doing all of that together, right? After all, a good relationship is built as a conversation between two equals, working for each other.~ DO ~Global("c-aranepiloguerelation","GLOBAL",3)~ + finish_rel_choice_point // 3 = Equals ++ ~[PC] No estates. No investments, no contracts... just peace, quiet, and rest. I just want to be cared for.~ DO ~Global("c-aranepiloguerelation","GLOBAL",1)~ + finish_rel_choice_point ++ ~[PC] We have so much resting on our shoulders that I suspect we will have to find a way to manage it all together. We may even need extra help.~ DO ~Global("c-aranepiloguerelation","GLOBAL",3)~ + finish_rel_choice_point END finish_rel_choice_point IF ~~ finish_rel_choice_point SAY ~[ARAN] That sounds right fine, it does. It would be right fine if that came to be th' future. But for now, I expect th' best we can do is keep movin' an' dreamin'.~ IF ~~ THEN EXIT END Next entry: Conservation Of Work. We need to reuse these blocks in other settings, and we need to build some choice points that can be used in several areas of dialogue to set up /* romance active and marriage choices */ ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguemarried","GLOBAL",0)~ // not married (default) ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguemarried","GLOBAL",1)~ // married /* romance active and children choices */ ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguechildren","GLOBAL",0)~ // no children (default) ~Global("c-aranrom","GLOBAL",2) Global("c-aranepiloguechildren","GLOBAL",1)~ // children and we probably need a few places where the PC can say "hey - just friends." And perhaps ebven "hey, just friends with benefits". And most especially "Hey. It was nioce, but it is over now. You need to go to RA=3 so I can have my Angelo Wedding make sense." Plus that dialogue needs a little bit of polish. "Nice nice nicety nice nice" does not a good entry make - and the "right fine" is getting tiresome
  9. OK, long faculty meeting, and no access to stuff I am supposed to be working on, or even modding stuff - and most of all, a long pointless argument raging over "No Child Left Behind"'s merits, which really is moot - it isn't as if we can choose to ignore it. So, I already have a bunch of stuff done on soundsets - I'll scribble while Rome burns. The soundset. Straightforward stuff like .cre files, etc., really are not a concern until later. I am working from a "character first" perspective, and BG2 graphics are not Oblivion stuff; we can build that stuff later. So, sounds - recorded lines or not? Argument for: everyone has 'em. They help some people characterize the NPC and fill them out in their brain. Argument against, thousands - including tons of time, energy, and work balancing the sounds, only to have a bunch of folks who had supplied the voice and accent in their heads think "hey - that is not how Aran should sound". In fact, I often rip the soundfiles out of mods before playing them - my inner voice is much more comfortable to me than an outsider's interpretation. I like bg1npc's idea of "soundtracks" for speakers, called by script, but that is a whole other topic, and weeks away. But you know what, it doesn't matter at this point - until Aran is 90% or more done, taking the time to record (or hire someone to record) a soundset and/or lines is silly. Things may will change, and perhaps the entire characterization will shift slightly. So the sound recordings themselves, next to last to do. Let's move on to the text strings, and set them up to handle sound when it is eventually recorded and added. Note: This looks like just a quick couple of days to whip through this, but actually took place over several weeks, and the final draft was vetted by berelinde and Amaurea to make sure I wrote something that fit my idea. Unfortunately, we all write from within our own heads. While I'm not writing Aran for anyone but my personal enjoyment, it is nice to check to see if the communication moves off the page to other folks, or if it ends up being stilted/odd. Some soundreferences with tobbacco use got nixed because the ladies (quite rightly) pointed out that it was a potential turn-off for some readers, while adding nothing really to his character - so I blatantly stole berelinde's rephrase of it into "twig chewing". This stuff is tougher than it looks, because we all want the character to have what comes up in our head during fanfic-like daydreams; unfortunately, if you create a line like La Traviata for dying, it will stink as a soundset: This might be fun to envision in my head, but really, soundset entries are supposed to be very quick, or the lines will trip over others. Wicked short, to the point - that's why they are some of the toughest writing out here. "Characterize your NPC's reactions in less than four words.... GO!" But, we have caught a break with it, because we have a format to work in, and we know the parameters. Short, simple, to the point, in character. And, WeiDU has taken the work out of all the coding completely. A standard setup in the .tp2 will install the right strings in the right places - and the i.e. engine has a simple format for strings that deal with sound. STTREF/OFFSET ~[comment] text string~ [sOUNDREF] Here, STTREF/OFFSET is where in the .cre file the string reference in dialog.tlk is stored. This is why soundsets can get scrambled, and other lines, too - the .cre file carries only a reference number, or index lookup to dialog.tlk. Technically, you could go all fancy hard-core Old Skool here and tell WeiDu the specific offset for the .cre sound, but why when WeiDU does the work for you: SAY MORALE The next, the actual string created in dialog.tlk, ~[comment] text string~ well, that's pretty straightforward - the [comment] will not be seen by the player. In fact, it is where I picked up the idea to try to use this to help translators - when Smoketest, devSin, and Grim Squeaker patiently led me through how sound works in i.e. games, it was there for the BioWare developers. Every soundset in BG carries the referenced sound file in the test string in this format. It is especially useful for usually "no word" things, like "Hurt" and Dying" - the blank sound reference can be labled and searched for by the comment, like this: SAY DAMAGE ~[c-aran13]~ [c-aran13] sounds like "Ah!", but carries no text - and would get skipped in traification if it were traified as this: SAY DAMAGE ~~ [c-aran13] So, last part - [sOUNDREF]. Here, the .wav (or wavc, acm) that we will eventually place in the game override file is referenced. It can only be 8 characters long, and looking at other folk's mods there are lots of ways to label this stuff - BioWare had an odd numbering system that is consistent but does not match .cre ordering - so i am going to arbitrarily label these c-aran## and use the comment as the soundreference. The game won't care if there is no sound matching in the override - it will silently skip it. And then, if I get a soundset recorded and dropped into the override, it will be picked up when that particular string is called by the engine. Here is the blank template that can be applied for all BG2 engine games (not BG, etc - they have the same structure, but the .cre file has less of these enabled.) COPY_EXISTING ~myMod/myFolder/myCre.cre~ ~override/myCre.cre~ SAY NAME1 ~ << Full Name Of Creature >> ~ SAY NAME2 ~ << Short (tooltip hovering) Name Of Creature >> ~ SAY MORALE ~[sOUNDREF] << Morale Failure >> ~ [sOUNDREF] SAY HAPPY ~[sOUNDREF] << When Happy on .2da >> ~ [sOUNDREF] SAY UNHAPPY_ANNOYED ~[sOUNDREF] << When Annoyed on .2da >> ~ [sOUNDREF] SAY UNHAPPY_SERIOUS ~[sOUNDREF] << When Close to leaving on .2da >> ~ [sOUNDREF] SAY UNHAPPY_BREAKING_POINT ~[sOUNDREF] << When leaving on .2da >> ~ [sOUNDREF] SAY LEADER ~[sOUNDREF] << Moved to Leader >> ~ [sOUNDREF] SAY TIRED ~[sOUNDREF] << Tired >> ~ [sOUNDREF] SAY BORED ~[sOUNDREF] << Bored >> ~ [sOUNDREF] SAY BATTLE_CRY1 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY BATTLE_CRY2 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY BATTLE_CRY3 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY BATTLE_CRY4 ~[sOUNDREF] << Attack Commanded >> ~ [sOUNDREF] SAY DAMAGE ~[sOUNDREF] << Hit by other >> ~ [sOUNDREF] SAY DYING ~[sOUNDREF] << Toast >> ~ [sOUNDREF] SAY HURT ~[sOUNDREF] << Low HP >> ~ [sOUNDREF] SAY AREA_FOREST ~[sOUNDREF] << in area flagged with Forest bit >> ~ [sOUNDREF] SAY AREA_CITY ~[sOUNDREF] << in area flagged with City bit >> ~ [sOUNDREF] SAY AREA_DUNGEON ~[sOUNDREF] << in area flagged with Dungeon bit >> ~ [sOUNDREF] SAY AREA_DAY ~[sOUNDREF] << Daytime >> ~ [sOUNDREF] SAY AREA_NIGHT ~[sOUNDREF] << Nighttime >> ~ [sOUNDREF] SAY SELECT_COMMON1 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON2 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON3 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON4 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON5 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_COMMON6 ~[sOUNDREF] << Select the .cre >> ~ [sOUNDREF] SAY SELECT_ACTION1 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION2 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION3 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION4 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION5 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION6 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_ACTION7 ~[sOUNDREF] << Action >> ~ [sOUNDREF] SAY SELECT_RARE1 ~[sOUNDREF] << rare sound >> ~ [sOUNDREF] SAY SELECT_RARE2 ~[sOUNDREF] << rare sound >> ~ [sOUNDREF] SAY CRITICAL_HIT ~[sOUNDREF] << successful critical roll >> ~ [sOUNDREF] SAY CRITICAL_MISS ~[sOUNDREF] << dysmal critical roll >> ~ [sOUNDREF] SAY TARGET_IMMUNE ~[sOUNDREF] << Up the creek without a paddle >> ~ [sOUNDREF] SAY INVENTORY_FULL ~[sOUNDREF] << dropping items >> ~ [sOUNDREF] SAY SPELL_DISRUPTED ~[sOUNDREF] << hit wile casting >> ~ [sOUNDREF] SAY SET_A_TRAP ~[sOUNDREF] << successful trap set >> ~ [sOUNDREF] SAY HIDDEN_IN_SHADOWS ~[sOUNDREF] << successful attempt to hide >> ~ [sOUNDREF] SAY PICKED_POCKET ~[sOUNDREF] << successful pickpocket attempt >> ~ [sOUNDREF] SAY BIO ~[DUMMYREF] << character screen, no sound - text with blank sound reference >> ~ [bLANK] Well, here goes - in file aranw.tp2, right now empty, we toss in the set of references: COPY_EXISTING ~aranw/cre/c-aran.cre~ ~override/c-aran.cre~ SAY NAME1 ~Aran Whitehand~ SAY NAME2 ~Aran~ SAY MORALE ~[c-aran01] Helm's bones - RETREAT!~ [c-aran01] SAY HAPPY ~[c-aran02] Aye, 'tis a fair group. 'Tis better than a clear day on Trade Way.~ [c-aran02] SAY UNHAPPY_ANNOYED ~[c-aran03] By Tymorra's bright coin, you make some strange decisions. I don't rightly agree.~ [c-aran03] SAY UNHAPPY_SERIOUS ~[c-aran04] I gave up some serious opportunities to travel with you. Wasn't expectin' this kind of 'adventure'. Stop this, or I'll dissolve th' contract.~ [c-aran04] SAY UNHAPPY_BREAKING_POINT ~[c-aran05] I'll see you in the hands o' Kelemvor, but not one second before.~ [c-aran05] SAY LEADER ~[c-aran06] I'll lead, but 'tisn't my strong point.~ [c-aran06] SAY TIRED ~[c-aran07] Time to make camp. This gear is startin' to chafe.~ [c-aran07] SAY BORED ~[c-aran08] By Torm's Blood, are we beggin' to be ambushed? Standin' 'round with our swords up our...~ [c-aran08] SAY BATTLE_CRY1 ~[c-aran09] Archers to th' rear!~ [c-aran09] SAY BATTLE_CRY2 ~[c-aran10] Spellcasters die first!~ [c-aran10] SAY BATTLE_CRY3 ~[c-aran11] By Tymorra's Luck!~ [c-aran11] SAY BATTLE_CRY4 ~[c-aran12] By Sune's Bottom!~ [c-aran12] SAY DAMAGE ~[c-aran13]~ [c-aran13] //ah... SAY DYING ~[c-aran14]~ [c-aran14] //aarrgh... SAY HURT ~[c-aran15] Send the rest o' them to hell for me...~ [c-aran15] SAY AREA_FOREST ~[c-aran16] Need less trees, more road. Too many places for enemies to hide.~ [c-aran16] SAY AREA_CITY ~[c-aran17] Trade time! Some trade, then some drinkin', then some sleep... or more drinkin'.~ [c-aran17] SAY AREA_DUNGEON ~[c-aran18] I gave up comfortable inns an' guardin' simple caravans to poke around this dank musty place. I'm a bloody idiot.~ [c-aran18] SAY AREA_DAY ~[c-aran19] Lathander's fat arse is up at last. 'Bout time he shed some light around here.~ [c-aran19] SAY AREA_NIGHT ~[c-aran20] Bloody dark. Good for coverin' enemies an' ambushes. Someone light a torch, eh?~ [c-aran20] SAY SELECT_COMMON1 ~[c-aran21] Yep?~ [c-aran21] SAY SELECT_COMMON2 ~[c-aran22] What's to be done?~ [c-aran22] SAY SELECT_COMMON3 ~[c-aran23] Do I needs lead?~ [c-aran23] SAY SELECT_COMMON4 ~[c-aran24] Aye?~ [c-aran24] SAY SELECT_COMMON5 ~[c-aran25] Yes?~ [c-aran25] SAY SELECT_COMMON6 ~[c-aran26] I'm listenin'.~ [c-aran26] SAY SELECT_ACTION1 ~[c-aran27] Got it.~ [c-aran27] SAY SELECT_ACTION2 ~[c-aran28] Sune's sweet cheeks, I heard.~ [c-aran28] SAY SELECT_ACTION3 ~[c-aran29] On it.~ [c-aran29] SAY SELECT_ACTION4 ~[c-aran30] Understood~ [c-aran30] SAY SELECT_ACTION5 ~[c-aran31] Sune's Bosom, I'm movin', already!.~ [c-aran31] SAY SELECT_ACTION6 ~[c-aran32] Ilmater's Blood. I said I'd do it.~ [c-aran32] SAY SELECT_ACTION7 ~[c-aran33] Less talk, more action.~ [c-aran33] SAY SELECT_RARE1 ~[c-aran34] Watch where you point that thing.~ [c-aran34] SAY SELECT_RARE2 ~[c-aran35] Aye, I'm here.~ [c-aran35] SAY CRITICAL_HIT ~[c-aran36] Good.~ [c-aran36] SAY CRITICAL_MISS ~[c-aran37] Cyric's Black Heart!~ [c-aran37] SAY TARGET_IMMUNE ~[c-aran38] Bounced off. Damn.~ [c-aran38] SAY INVENTORY_FULL ~[c-aran39] I'm already carryin' more than my share.~ [c-aran39] SAY SPELL_DISRUPTED ~[c-aran40] Never did get that one right...~ [c-aran40] SAY SET_A_TRAP ~[c-aran41] Try that, you bugger.~ [c-aran41] SAY HIDDEN_IN_SHADOWS ~[c-aran42] Huntin'...~ [c-aran042] SAY PICKED_POCKET ~[c-aran043] Hey, look what I found.~ [c-aran43] SAY BIO ~[c-aranbio] When you ask him about his past, ARAN WHITEHAND grasps at a nearby twig to chew on. He explains that he grew up in a small independent family-run Coster plying the Trade Way and Coast Way from Waterdeep both north and south. Working as both Pen and Sword (scribe and fighting guard) made him attractive as an independent, since he could balance accounts, keep inventory, and still operate as a sellsword. A few campaigns with mercenary companies, a few battles, and lots of wandering about has brought him to Amn. He hastens to note that he is not the man to send in to negotiate anything, preferring to wield weapons rather than the spoken word - but if you want a trading contract written up, he's the right man for the job.~ [c-aran44] Later on, the sound references will be c-aran01.wav to c-aran43.wav, and weeks/months from now when we get there we can deal with how to set the darned thing up to install on Windows/OS X/Linux and play in-game. Ok, the faculty talk is back to reality-based stuff, like what we are doing with dress-code this year, and how the heck us male teacher-dudes are supposed to inform a 14 year old that her underwear is showing and not get arrested... and worse, how to not insult the mom that sent the girl to school in one of those new thigh-length baby-doll tops designed for use over a pair of shorts, sans shorts. I'd better pay attention again. I'll type this stuff up later, and post it up on an odd moment. Well, technically, if you are reading this, I already did.
  10. As of 10/30/2010 Idea followups Ideas from PM from folks reading the forums, plus stuff I need to remember to recheck on throughout the mod to make sure that they are not single instances of "concept demo code', but actually integrated as part of the content in a way that makes sense and furthers the characterization. This could also be the "hey, make sure to check this list against current content and be organized about settling in and finishing the writing, so that the mod doesn not take another 5 years to actually get into player hands". FRIENDSHIP: Revisit interjection points in both SoA and ToB. Almost all are covered - double-check to see what is purposefully skipped, and log it. FRIENDSHIP: Current SoA 10 talks are fun, but probably need extension of at least 2 more to cover SoA. Canonical Bioware have far less - modern mods have as many as double that amount. No need to pad - but look for a topic/friendship discussion that makes sense to be having that might be fun to play around with. The current timing at 1 hour has 11 hours of playing before the friendtalk sequence is finished, and from then on, it is interjections, PID, quest/area related, and chapter-driven talks. Look for ways of having Aramn realistically engage in a discussion that avoids all the materials other mods have covered well, and in deatail - avoid the following: how did you get here? What are your feelings about being (potentially) a god? What was candlekeep like when you were a kid? why are you doing this? is Aerie sleeping with you now, or just leading you on? So, that Noober guy... does he have a sister, becuse she might be just my cup of tea... Gorion - daddy figure or kind uncle? Hey, those Shadow Thief outfits for the ladies... wow. Cool tattoos, and lots of skin. I wonder how they stay warm in winter... ...looking for fun, interesting, "friends chatting" stuff. May have to relook at StarGate:SG1, Buffy, SportsNight, Firefly, et. al, for inspiration. Need to avoid angsty pathos, as there will be some of hat at the end of the romance. And if I am playing with an NPC dude who is supposed to be watching my back as a friend, and he goes all gushy emo goth dark unhappy, well... I have no complaints about it. But when it comes time for combat, I'm like "hey, get a frackin' life. We have enough troubles - let's show this biatch how we do things downtown, and then we can go get you laid and improve your mood." FRIENDSHIP: Check timers and look for ways of making a bigger opportunity to save after a boattle if a talk has become active. This mod relies ofn replayability, but some folks play and experiment from saves. It won't help them if they can't save before a dialog, so they can try the different options. ALL AREAS; CODING SUGGESTION: Look for ways of accomplishing independent replies that are more writer-efficient. Sample schematics for inspiration: 1 interested 2 not interested 3 vamping, or teasing 4 aggressive 5 cruel/shutdown (may need one additional, of STFU) 1 interested/aggressive 2 teasing/seductive with or without any intention of following through 3 tender/shy 4 not interested 5 cruel Berelinde's "Benett Rubric" PC reply 1 (Lydia/Kitty): narcissistic, attempt to turn the conversation toward the PC PC reply 2 (Jane): all compassion PC reply 3 (Elisabeth): practical, full of advice PC reply 4 (Mary): inappropriate, sometimes wildly so PC reply 5: exit the dialogue FREINDSHIP AND ROMANCE: Recheck of action dialog sequences. Multiple sources, but Jastey put it best - ..(watch out for)...the amount of "tell PC what she is doing / feeling", as it is at the side of too much for my taste. ...not too fond of description texts that descripbe the whole action to the end without the PC having the chance to interact again. Check for places where I am not describing the setting/surroundings/physicality, but am trying to script a player's response to that description (unfortunately most of these are in adult land). Ideas from Berelinde to curb this on rewrites: limit Aran's lines to Aran's words or actions. If it has [ARAN] in front of it, you can only say what Aran is saying or doing. ...second way is to include a sense of delay... Preference is for the first, but in some instances I am going to have to follow the principle of "pc response is actually Aran acting, but player chooses his response. I need to go back and reread what went into Renal Bloodscalp and Sheri in RE to regain thsi - getting too much like a short story, and this is an interactive computer game. FRIENDSHIP AND ROMANCE: recheck for purple prose that turmns out to be more of a dirty yellow or green. KathStoneDog has the best examples to watch for similar "logic disjuncts" - IF ~~ a1111 I do not think I can do this. In fact, I know I can't. I should leave.~ + unfulfilledexitstate Again, it's her room! IF ~~ a1113 (Roll quickly on top of him, your hips questing to bring you both as close together as the cloth barrier allows.) OK! I'll admit ignorance. How do hips quest? Before this hits playtesting, center in on states and make sure that things like "eyes grab", "legs swallow", "nose searches". It is going to be hard enough for translators to deal with colloquialism (both FR and english) - no need to make them fight through purply oxymoronic descriptors that confuse and mix metaphor, too! FRIENDSHIP: Check for consitent application of the opportunities templated in dealing with events. Samples to follow up on - story pool IF ~~ a1671 SAY ~[ARAN] I can do that. Just remember, my bardic days be relatively new, so I don't have them all embellished an' prettified, wi' proper pronunciation an' projection. Sorry about that spittle, there. Somethin' about 'p' words, eh?~ = ~[ARAN] Let me see...~ IF ~Global("c-arancarbonara","LOCALS",0)~ GOTO a1433 IF ~Global("c-arancalimport","LOCALS",0)~ GOTO a1432 IF ~Global("c-arangerris","LOCALS",0)~ GOTO a1674 IF ~Global("c-arandadtrade","LOCALS",0)~ GOTO a1675 IF ~Global("c-aranfistfight","LOCALS",0)~ GOTO a1676 IF ~Global("c-aranmoonfight","LOCALS",0)~ GOTO a1678 IF ~Global("c-arankravitchstory","LOCALS",0)~ GOTO a1677 IF ~Global("c-arankravitchstory","LOCALS",1) Global("c-arancarbonara","LOCALS",1) Global("c-arancalimport","LOCALS",1) Global("c-arangerris","LOCALS",1) Global("c-arandadtrade","LOCALS",1) Global("c-aranfistfight","LOCALS",1) Global("c-aranmoonfight","LOCALS",3)~ GOTO a1685 END + ~Gender(Player2,MALE) !Name("c-aran",Player2)~ + ~[PC] A joker, eh? Two can play that game. I have always wanted <PLAYER2> instead, but you will have to do...~ + a1844 + ~Gender(Player3,MALE) !Name("c-aran",Player2)~ + ~[PC] A joker, eh? Two can play that game. I have always wanted <PLAYER3> instead, but you will have to do...~ + a1844 + ~Gender(Player4,MALE) !Name("c-aran",Player2)~ + ~[PC] A joker, eh? Two can play that game. I have always wanted <PLAYER4> instead, but you will have to do...~ + a1844 + ~Gender(Player5,MALE) !Name("c-aran",Player2)~ + ~[PC] A joker, eh? Two can play that game. I have always wanted <PLAYER5> instead, but you will have to do...~ + a1844 + ~Gender(Player6,MALE) !Name("c-aran",Player2)~ + ~[PC] A joker, eh? Two can play that game. I have always wanted <PLAYER6> instead, but you will have to do...~ + a1844 Global("c-arangift","GLOBAL",1) -> 5 followup /* LEAT21 // Human Flesh +5 evil armor equipped complaints */ IF ~HasItemEquiped("LEAT21",Player1) Global("c-arskinarm","LOCALS",0)~ THEN GOTO a1799 IF ~HasItemEquiped("LEAT21",Player1) Global("c-arskinarm","LOCALS",1) GlobalTimerExpired("c-aranskin","GLOBAL")~ THEN GOTO a1798 IF ~HasItemEquiped("LEAT21",Player1) Global("c-arskinarm","LOCALS",2) GlobalTimerExpired("c-aranskin","GLOBAL")~ THEN GOTO a1797 Global("c-pcstalker","LOCALS",0) -> 5 SetGlobal("c-aranREinn","GLOBAL",1), moon, stars, etc. /* big not-followed-through thing: */ ++ ~[PC] I am not beautiful.~ DO ~IncrementGlobal("c-aranpc_nsc","LOCALS",1)~ + a289 OTHER MODS: Several sources, several suggestions made about holding off on adding more of the 'awareness of other mods" and materials, from a time and energy standoint - the suggestion I need to hold myself to is creation of as many of the vanilla NPC materials as i can manage with a single pass, with the understanding that I will be able to go back and add more to those CHAINs and such later. Sidecheck - RE responses. Most written and integrated; make sure all are appropriate to both non-romance and romance folks, and perhaps add one or two that are romance-specific (if teh romance or the pghysical side of hthings has progressed far enough). c.f. commentary built into "Stone heads and Stone Hearts" materials for folks who get the Fighter Stronghold, and side commentary to Chanelles materials if RE variables for her are set. ROMANCE: ...an attempt to play a character who was raised in a cloister and kept from the world who is now out-and-about within it, with all the terrors and overwhelming busyness, who has had no romance whatsoever in the vanilla BG to then have it suddenly, err, thrust upon her and to not have that acknowledged, seems a bit rough of a transition. Revisit and recheck "innocent" options. Some given, but not consistently - need to make sure Berelinde's Bennet Rubric gets a workout. I have found a bunch of states which *look* like they give tons of options, but they favor bold brassy and not shy introverted. Some people play Emma, some people play Buffy, some people play Guenevire, and some people play the ingenue (the lyric soprano part; cosette, etc.). I may be leaving out options to play the latter. ROMANCE: That thought leads me into my next suggestion of making it clear to the player where Aran's and the PC's relationship stands... ...I don't know if you are planning on Aran and the PC having one of the many "the talk" talks, but as a player it might be a useful dialogue to have. And considering the relationship may be more 'open' for the first while, another "the talk" about "we seem to be getting more serious" may be necessary for the player to know for certain what is going on. Recheck the progress of "check-in" talks, and make sure that I have not relied solely on PID and romance conflict talks to bring this up. Some of this is covered in regular talks and recations, but mame sure that while players can be as waffly and chaotic as they want, if they want to committ they can actually have that discussion, and set up the issue. Right now, the way I read it, the player who wants an on-again off-again romance can have it, but someone who wants him to settle down only has physical options. There is a lack of "the big C talk". That is a mistake that needs to be corrected. I suspect it was left on the cutting room floor early on, and no replacement was craeted - this is a serious loophole. FRIENDSHIP AND ROMANCE: recheck timing and stretching psychological imntimacy to cover most of the game - choice of crisis to be in SoA or ToB needs finalization and writing. Crosschek with other materials for coverage of BWP long, slow, completionist play vs. Speedrun play. Crosscheck for glaring inconsitencies between Friendtalk progression and lovetalk progression. FRIENDSHIP AND ROMANCE: timing and allowing more "silly/gentle/supportive" options. The checkpoint here is that players have plenty of options to tease, chide, or be mean to Aran. Need to check to amke sure that I don't consitently "gentle teasing" as a "good' option, therefore not allowing players who want to be supportive/loving to have options. ROMANCE: little people vs big people, and differing racial options for roleplaying, in a non-specific way. [ADULT REFERENT] ROMANCE: Adult Materials - roleplay options that allow/account for choice of chastity - roleplay options that reflect in other dialogs rather than ignoring them - concept of "action progression" that reflects in other materials, so that there is not a fierce disconnect. Idea to play with: c-aranfirstsex = 1 : self-identified no experience (no need to look for whether or not RE content, etc. is in play - leaves the option for play as a manipulative PC "Oh, I have never done this before" is something that could be said many many ways, including being the truth) c-aransex = 0 : no intimacy c-aransex = 1 : kissing c-aransex = 2 : touching c-aransex = 3 : heavy innuendo touching ("petting") c-aransex = 4 : full physical intimacy ToDo list for standard materials: revisit/rewrite ToB Banters. Write ToB friendtalks and lovetalks. determine crisis point for "big C" and place those final lovetalks (4 I think) in either SoA or ToB content. Tackle and finish/simplify adult materials in romance, and clone similar states into ToB. Finish Teldra's first and second quest materials and retest vs. current mini-quests. Look at how gender checks and wild surges interact, and determine feasibility of adding comedic/pathos with friend or romantic partner suddenly switching teams. investigate idea of the "single playthrough encounter", where a different encounter might be available based on .bcs evaluation of party composition, class, etc. So a bard PC might get something related to FR lore about bards, a cleric might get an 'opposte alignment' encounter... remembering the biggs comments on this, because creating one-off encounters like this may be prohibitively costly in terms of development and testing time versus the amout of time players get to see the content. Search all files for "capped off" states, where an idea that was more efficiently tied in to other content being developed in other files got forgotten/sidelined. Example: c-fidpcbath; c-arantalkstomuch, etc. Repair these states (hopefully) with links to existing content, or (if no option) into relevant templated states, so that players get more of the content on a single playthrough (and it doesn't take another year of tinkering closing off states like ~[PC] Hey! You never said you had visited Windspeare Hills before!~ + c-where_the_hell_was_i_going_with_this_idea). Build valid "tinker, tailor, spy" variants of the .cre file, and decide if the distribution will be one blank .cre copied and patched to match install cjoice, or four .cres valid for the chosen stat distribution. Decision already made on the "build your own at install" option - I am leaving full rebuilds to Level1 NPCs. 4 base stats configurations are fine - and the player already gets the choice left up to them as to when to dual-class. He will start with 7 levels of fighter, and then folks can dual-class him into whatever they like. The references to Class('c-aran",PALADIN_ALL) should cover the Level1 NPC-ing him into strange and wonderful new lifestyles... check with SHS big-world folks on the area insertion (currently replacing an info-trigger with an area travel trigger on the Promenade) for any possible conflicts. Journal entries. Journal entries. Damn it, Journal entries. Recheck and add. So far, there are very few. Recheck Petals&Thorns suggestions on romance to see how current materials measure up to their suggestions. Ad as necessary. Recheck 'bromance' materials for dudes who want a good friend, paying attention to potential opportunities like the Swordfight routine. Same encounter, but the boyz shoot hoops, while the girlz can move from shooting hoops to flirting a bit (or more). Integrate and recheck MoveToArea(), LeaveAreaLua(), and Wait at An Inn materials; finalize whether or not there will be any place besides Aran's custom inn where he can spawn.... or if I have to actually follow up on the thread about where to put him and allow him to spawn in a few different areas, as player choice.
  11. Learning from Players Still working on the release of Beta 1, but some intrepid souls are using GitHub to create their own Beta based on the materials posted there (and I am very grateful for it, because it means I have focused cleanup. I like that!!) So, a late-afternoon-when-I-get-home-fix-this-first list; Real World Glitches, from PM (adult stuff temporarily removed, but paid attention to!!) piperb's list Pending After the talk about fallin' in love. The PID kept coming up every few seconds. I had to cut off the game, so that's as far as I got. TO INVESTIGATE FURTHER: Heh. Yup. The not-but-should-be-enabled ones. Bleh. IF ~Global("c-aranfriendbg2","GLOBAL",23)~ THEN BEGIN a396 SAY ~[ARAN] Hey, I been thinkin'.~ [c-aws096] DO ~SetGlobal("c-aranfriendbg2","GLOBAL",24) RealSetGlobalTimer("c-aranfriendtimer","GLOBAL",ARAN_FTT)~ + a1918 IF ~Global("c-aranfriendbg2","GLOBAL",25)~ THEN BEGIN a426 Var is closing - not sure why it would be looping instead of playing. Need to recheck. Chances are the trigger to fire is not set up correctly because I commented out too many lines in the .tp2 Still looking. It could be that flirt weighting issue. REPEATED AFTER UPDATE -After the talk about fallin in love. The PID kept coming up every few seconds - same as before. TO DO: Hmmm. Not sure. Time for the Secret Weapon, Berelinde's use of The Bigg's stutter check mod. I'll attach the Aran version here, but first I want to try it in my game and see if we can get a comparison going. -If Aran is so opposed to slavery, shouldn't he have some comments during the Slaver Quest? If he does, then they didn't appear in game. And maybe the pleasure slave in the circus tent as well. TO DO: Revisit Slaver Quest, pleasure slave - check all slaver interjections are firing. Installed the 15 min timers, same PC as before and the party was Minsc, Yoshimo, Aran and Anomen. Banters didn't show up in this game either. But, interjections did. TO DO: Need to test under Ctr-I to see if it is bad luck, or if something odd is happening. Rechecking triggers again - perhaps CombatCounter(0) is failing, and I need !ActuallyinCombat(), though that is not standard at all? - the files appear to be correct in syntax, and CLUA'ing in party members on my install seems to work. This one needs some careful re-inspection to see what I have set up that might be blocking them from firing. Recheck banter triggers; Aran only talked with PC. Taken off the shelf beacuse it is repeated behavior: banter triggers on a clean install seem to be working on my copy. Recheck project files, and look for bug reports in other mod's forums for ideas on what might be happening. -Aran: I am goin' to ask H. C. for assistance, an' hope She influences you a mite, eh? (I abbreviated, but I don't think the S in she should be capitalized.) TO DO: Choose and stick to a single interpretation of god's names - Sune's a goddess. I think She || Sune's a goddess. I think she || Sune's a Goddess. I think She -Aran: I have no problems wi' tellin' you. I be scribin'... (If you don't want an out here in the PC responses, maybe go to the main point of the talk. As it stands, you have the player answering his question more than once and the talk seems a bit repetitious.) Example later in the same talk - Aran: Well, you might not know this, but all that scroll prep...So, about that purchase. (Choosing the afirmative PC response when this talk first starts and a few clicks later, you're still answering his question.) TO DO: Recheck, rewrite - possibly two talks here slammed into one, and thus clickfest. -The talk about cooking dinner sounds like it should show up outdoors. Again, odd when it appears in the sewers or somewhere like that. TO DO: Recheck - probably time to break my unwritten rule of "straight talk sequence, no fancy stuf, and make the ones with special conditions not pat of the sequence". Or, simply remove this talk and make it a fire-under-special-circumstances one. A couple of his battle cries has a scratching sound at the start of them. TO DO: Recheck sound files and readjust fade-in with Audacity. Recheck song files for audio volume. Aran's line: I know there be some disadvantages to bein' the offspring o' a dead god... How did he know this if the PC has not told him. Did he hear it from others or what? TO DO: 15 min. timer means some of the talks are going to fire before regular game pace - need to add chapter check, modify, or rework in sequence. partially addressed -Flirt where PC can go thru Aran's belongings. Does writing no secrets on the parchment ever lead to anything or change the flirt in any way? If not, would you consider adding to this flirt? TO DO: Recheck, follow-up Done: There is a PID line that is supposed to run, and later on a talk that triggers from this action where Aran confronts PC about it. I need to check to make sure that it made it in to the Beta, and that it triggers... Also adding a response like; "Sure, why do you ask?" Or response without the insulting meat-shield comment for good PCs would be nice. TO DO: Begin list of blocks where there are no real "neutral" responses, or where percieved neutral responses end up sending PC on pathways that are unintended. Add pathways. done: Repaired this instance with CODE ++ ~[PC] You might be right.~ + a70 PID adult content is available from the get go - doesn't match talk progression. Example: Aran's line: Riddle me this, you ever think about sparkin? Courtin? Seems odd if they were already getting VERY touchy-feely thru the PID and no response acknowledges that in the talks. TO DO: Institute c-aransex and c-aranintimate dependency on lines like this, so + ~GlobalLT("c-aransex","GLOBAL",2)~ + ~Riddle me this, you ever think about sparkin? Courtin?~ + ~GlobalGT("c-aransex","GLOBAL",1)~ + ~Riddle me this. We been sparkin' a mite bit already. But you ever think o' doin' some more serious courtin'?~ or perhaps use the flirt counter in several sections. [done: partial fix. PID Adult content is temporarily restricted to c-aranrom=2, while replacement pathways are written for the players who want to try for a one-night stand right out of the gate.] [done: partial fix for this particular talk, all instances of entry to the two relevant states, sample code here: + ~GlobalLT("c-aranflirt","GLOBAL",12)~ + ~[PC] A quiet, warm, calm place, a good book, and something nice to drink.~ DO ~SetGlobal("c-aranbg2rom","GLOBAL",8) RealSetGlobalTimer("c-aranromtimer","GLOBAL",ARAN_LTT)~ + a579 + ~GlobalGT("c-aranflirt","GLOBAL",11)~ + ~[PC] A quiet, warm, calm place, a good book, and something nice to drink.~ DO ~SetGlobal("c-aranbg2rom","GLOBAL",8) RealSetGlobalTimer("c-aranromtimer","GLOBAL",ARAN_LTT)~ + a579_flirt + ~GlobalLT("c-aranflirt","GLOBAL",12)~ + ~[PC] Oh, you know, the usual. Wine, song, feasts, a little more wine...~ DO ~SetGlobal("c-aranbg2rom","GLOBAL",8) RealSetGlobalTimer("c-aranromtimer","GLOBAL",ARAN_LTT)~ + a580 + ~GlobalGT("c-aranflirt","GLOBAL",11)~ + ~[PC] Oh, you know, the usual. Wine, song, feasts, a little more wine...~ DO ~SetGlobal("c-aranbg2rom","GLOBAL",8) RealSetGlobalTimer("c-aranromtimer","GLOBAL",ARAN_LTT)~ + a580_flirt addressed Talk about hiring more swords with the PC response questioning if he wants the competition seemed odd at this point. If you leave the 15min timer option in and no flirting or anything close to it occurs. Why would that be an issue? done: built a more standard response and var'd the original to show up only if PC and Aran have gotten to holding hands (c-aransex=1) Talk: So what was it like growin up in a place where books ruled all? This talk showed up for a second time, right after it completed the first time. Done: two pathways were not given closure. Added! In the PID, the option is available to stop the flirts, which will be a good thing for some players. But, it has the PC asking him to stop flirting with her when no flirts have appeared yet. Done:added GlobalGT("c-aranpcflirtstart","GLOBAL",0) as an enabling trigger, so that option to stop things does not appear beforehand (c.f. Anomen Conflict, etc.) Aran's line: I be man enough. Just not sure where the rules an' regulations...you bein' you an' all... What's the you bein' you stuff supposed to mean anyway? PC response: But you are treading dangerous ground here. (...treading on dangerous ground... might sound better) Done: Agreed both counts - "you bein' you an' all" is too ambiguous, and unneeded. Treading on dangerous ground. Erika, Orrin, etc. dlgs have been appearing continuously in the text window on every map since I left that area. Done: Add to scripts in C-AR01.BCS so that the dialog doesn't magically follow the PC across all of Toril. Tested in-game with "Duplicate Floating Text=1" enabled in baldur.ini Also, once Anomen is added, the option appears in the PID telling Aran to stop fighting with Anomen. They haven't spoken to one another and Ano's first LT hasn't fired yet. Maybe reword this until their conflict actually starts or variable this option out until it starts. Done: block response until there is an active Anomen conflict CODE /* PID Anomen Romance Conflict Toggle */ + ~InParty("Anomen") OR(10) GlobalGT("c-aanocon120","GLOBAL",0) GlobalGT("c-aanocon121","GLOBAL",0) GlobalGT("c-aanocon158","GLOBAL",0) GlobalGT("c-aanocon194","GLOBAL",0) GlobalGT("c-aanocon212","GLOBAL",0) GlobalGT("c-aanocon224","GLOBAL",0) GlobalGT("c-aanocon232","GLOBAL",0) GlobalGT("c-aanocon287","GLOBAL",0) GlobalGT("c-anomenaran","GLOBAL",0) GlobalGT("c-arananomen","GLOBAL",0) Global("c-aanoconflict","GLOBAL",0)~ + ~[PC] I like Anomen well enough, Aran. But you keep fighting with him. I want you to stop doing that.~ + a3029 /* c-aranvsanom1s */ -Aran: Were kisses enough for you?... PC: I don't...look, I think this lots of fun... (Seems to be a word missing, maybe "think this is lots of fun." or "think this was lots of fun.") Done: Agreed - Repaired 16 instances to "I think this is lots of fun" -Aran: You haven't thought there might be somethin' to havin' someone take care o' you? (You might want to look at the PC responses here. Some of them elude to *Ahem* happening already. But what if that has not happened between them yet?) Done: Repaired and extended pathways; CODE IF ~~ a667 SAY ~[ARAN] You haven't thought there might be somethin' to havin' someone take care o' you?~ ++ ~[PC] I take what I want from whom I want, when I want, Aran. Why would I need one special person dedicated to what everyone can provide?~ + a677 + ~GlobalGT("c-aransex","GLOBAL",2)~ + ~[PC] I like you, Aran. And your friendship comes with certain... benefits. But I am in love with another person. Does that mean you will stop being my special friend?~ + a677 + ~OR(2) Global("c-aransex","GLOBAL",2) Global("c-aransex","GLOBAL",1)~ + ~[PC] I like you, Aran. And your friendship is special to me. I know you want more than a few kisses and flirtations, but I am in love with another person. Does that mean you will stop being my special friend?~ + a677 + ~Global("c-aransex","GLOBAL",0)~ + ~[PC] I like you, Aran. And your friendship is special to me. I know you want more than... I know you want a physical relationship that I am not ready to provide. Does that mean you will stop pursuing me?~ + a677 ++ ~[PC] I like you, Aran. But I am confused. I am not sure I know what I really want. Perhaps we should not be having this discussion.~ + a677 ++ ~[PC] I... I think about it. But I am not really worth all that attention.~ DO ~IncrementGlobal("c-arpclowimage","LOCALS",1)~ + a672 ++ ~[PC] I can usually look out for myself. Besides, there is something to be said for being able to look out for someone else, you know. Perhaps I want to protect and defend a certain person, instead of them protecting me.~ DO ~SetGlobal("c-aranrom","GLOBAL",2)~ + a668 ++ ~[PC] I can take care of myself. I just allow you to make yourself feel useful. Did you have anything else you wanted to discuss?~ + a668 ++ ~[PC] Of course I think about it.~ + a668 END -Aran: (flushes burgundy) Aye, then. Didn't mean to... (Shouldn't the F in flushes be capitalized here?) Done: Capitalize, capitolize, corporealize, etc -Aran: (There are no words, no gestures...old dance. Hopefully that is enough so you know which line I am referring to. It's missing a parenthesis at the end. If not, I'll send this to you with the other M stuff by PM later. Done: closure of Closure in mature content. Apparently, I like that line, because I found 6 different variants of the same phraseology. Perhaps I need a more active imagination! -Orrin: I do have a lad... (A PC response like "Yes, thank you." or something along those lines to cover NG or LG.) Done: Repaired and expanded two instances (only one reachable right now as Teldra is not activated yet): sample code CODE IF ~~ a2480 SAY ~[C-AW01TK] I do have a lad who needs some work, if you are hiring. He is a bit rough around the edges, but he means well. Here, take one of his advertisements.~ ++ ~[PC] Thank you.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2482 ++ ~[PC] I'll take a look at it later. Why are you helping him out?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2482 ++ ~[PC] Actually, I am not interested right now. I wish to see your selection of services.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2472 + ~OR(2) PartyGoldGT(3000) Global("c-awtavkquest","C-AR01",2)~ + ~[PC] Sure, sure... but I am more interested in what you can do for me. Rumor has it that a wealthy, well connected person might peruse some of the more... interesting wares?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2473 + ~GlobalLT("c-awtavkquest","C-AR01",2) PartyGoldLT(3001)~ + ~[PC] Sure, sure... but I am more interested in what you can do for me. Rumor has it that a wealthy, well connected person might peruse some of the more... interesting wares?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2443 + ~Global("c-pctavern","C-AR01",0)~ + ~[PC] You seem a little stiff. Do you say the same thing to every customer?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2456 + ~Global("c-pctavern","C-AR01",1)~ + ~[PC] You seem to have a wide variety of people here. Is that man over there really a Mindulgulph?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2457 + ~Global("c-pctavern","C-AR01",2)~ + ~[PC] Perhaps you can lighten up a little, and give out a few complimentary drinks.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2458 + ~Global("c-pctavern","C-AR01",3)~ + ~[PC] So, what is the deal with you and Teldra? Are you two... you know?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2459 + ~Global("c-pctavern","C-AR01",4)~ + ~[PC] I have heard a rumor that you used to be an adventurer yourself.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2460 + ~Global("c-pctavern","C-AR01",5)~ + ~[PC] Is Erika attached? She seems to be unreceptive to flirting.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2461 + ~Global("c-pctavern","C-AR01",6)~ + ~[PC] How are things going around here?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2462 + ~GlobalGT("c-pctavern","C-AR01",6)~ + ~[PC] How is life?~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2463 + ~RandomNum(5,1)~ + ~[PC] I think I am done here.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2474 + ~RandomNum(5,2)~ + ~[PC] I think I am done here.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2475 + ~RandomNum(5,3)~ + ~[PC] I think I am done here.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2476 + ~RandomNum(5,4)~ + ~[PC] I think I am done here.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2477 + ~RandomNum(5,5)~ + ~[PC] I think I am done here.~ DO ~GiveItemCreate("c-alttr1",Player1,0,0,0) SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2478 ++ ~[PC] No need for the broadside. I do not want the thing weighing down my pack. But you could tell me where to find him.~ DO ~SetGlobal("c-orrinbroadside","C-AR01",1)~ + a2483 END -Aran: Aye, well, I do like th' game...lady in question prefers ladies. (For those who fall under this preference, they might like having the option of telling him so here.) Done: additional lines mapped in, with downstream states expanded to accomodate a more timid, shy, or unsure PC. I think there will be more of these... -One of the talks starts out with Aran looking "along the horizon". A bit odd when it pops up in the sewers, as it did in this game. Done: a665, line rewrite: SAY ~[ARAN] (Aran looks carefully at his hands, then glances at you.)~ Typos: This is not exactly an ordinary company, is it. , > ? repaired to ~[ARAN] Now, this don't rightly be an ordinary Company, eh?~ Sune's Rambunctious Rump,, I... (Only needs one comma) CODE F:\TEST1\aranw\dialog\c-arandialog.d (3 hits) Line 9247: SAY ~[ARAN] Sune's Rambunctious Rump, <PRO_BOYGIRL>, I wish I did. I should have been studyin' strategy instead o' tactics. Next time we see a LoreKeeper, I think I will have a mite o' a word on what tomes to study. Tactics you can learn piecemeal, but strategy, that be a tougher game.~ Search ",," (0 hits in 0 files) Malformed token. Should be <PRO_GIRLBOY>. 24 occurrences across project repaired! Adult content specific suggestions withheld but logged; some additions, an abrupt cutoff. More global commentary to keep in mind: "even a lady that is a little rough around the edges likes a bit of tenderness from time to time from her would-be significant other." (And thank you to the bug-reporter - I'll post usernames if you don't mind, but you have to tell me it is ok to! )
  12. Set up here with inlined just for reporting here - the related .baf is an independent file. CODE ACTION_IF FILE_EXISTS_IN_GAME ~ar6111.are~ THEN BEGIN // ToB dialog file COMPILE ~aranw/dialog/c-arantobdialog.d~ // USING ~aranw/dialog/%s/setup.tra~ /* ToB Scripts */ COMPILE ~aranw/baf/c-aranx.baf~ COMPILE ~aranw/baf/c-arn25.baf~ // USING ~aranw/dialog/%s/setup.tra~ /* Epilogues : Script */ <<<<<ar6200_epilog_ext.baf /* Epilogue: PC Refused Godhood, Low Rep, regardless of friendship or romance status */ IF Global("StartEndBios","AR6200",1) InPartyAllowDead("c-aran") !Global("PlayerChoseEssence","GLOBAL",1) ReputationLT(Player1,10) Global("c-aranbio","GLOBAL",0) THEN RESPONSE #100 SetGlobal("c-aranbio","GLOBAL",1) TextScreen("C-ARANE0") SmallWait(1) Continue() END /* PC Refused Godhood, Friendship */ IF Global("StartEndBios","AR6200",1) InPartyAllowDead("c-aran") ReputationGT(Player1,9) !Global("PlayerChoseEssence","GLOBAL",1) !Global("c-aranrom","GLOBAL",2) Global("c-aranbio","GLOBAL",0) THEN RESPONSE #100 SetGlobal("c-aranbio","GLOBAL",1) TextScreen("C-ARANE2") SmallWait(1) Continue() END /* PC Refused Godhood, Romance */ IF Global("StartEndBios","AR6200",1) InPartyAllowDead("c-aran") ReputationGT(Player1,9) !Global("PlayerChoseEssence","GLOBAL",1) Global("c-aranrom","GLOBAL",2) Global("c-aranbio","GLOBAL",0) THEN RESPONSE #100 SetGlobal("c-aranbio","GLOBAL",1) TextScreen("C-ARANE3") SmallWait(1) Continue() END /* PC Became God, Friendship */ IF Global("StartEndBios","AR6200",1) InPartyAllowDead("c-aran") ReputationGT(Player1,9) Global("PlayerChoseEssence","GLOBAL",1) !Global("c-aranrom","GLOBAL",2) Global("c-aranbio","GLOBAL",0) THEN RESPONSE #100 SetGlobal("c-aranbio","GLOBAL",1) TextScreen("C-ARANE2") SmallWait(1) Continue() END /* PC Accepted Godhood, Romance, Good or Neutral */ IF Global("StartEndBios","AR6200",1) InPartyAllowDead("c-aran") Global("PlayerChoseEssence","GLOBAL",1) !GlobalGT("PPEvilChoices","GLOBAL",2) Global("c-aranrom","GLOBAL",2) Global("c-aranbio","GLOBAL",0) THEN RESPONSE #100 SetGlobal("c-aranbio","GLOBAL",1) TextScreen("C-ARANE4") SmallWait(1) Continue() END /* PC Accepted Godhood, Romance, Evil */ IF Global("StartEndBios","AR6200",1) InPartyAllowDead("c-aran") Global("PlayerChoseEssence","GLOBAL",1) GlobalGT("PPEvilChoices","GLOBAL",2) Global("c-aranrom","GLOBAL",2) Global("c-aranbio","GLOBAL",0) THEN RESPONSE #100 SetGlobal("c-aranbio","GLOBAL",1) TextScreen("C-ARANE5") SmallWait(1) Continue() END >>>>> EXTEND_TOP ~AR6200.bcs~ ~aranw/baf/ar6200_epilog_ext.baf~ /* Epilogue 1: Low Rep, regardless of friendship or romance status */ COPY ~aranw/media/blankepilogue.2da~ ~override/C-ARANE0.2da~ REPLACE_TEXTUALLY ~PORTRAIT~ ~C-ARANWL~ REPLACE 99999 ~The years of following in <CHARNAME>'s shadow took their toll on Aran, though not a single instance of him complaining is recorded. After a time, he withdrew from <PRO_HISHER> side, claiming injury, and set out for the wild coast of Maztican. Rejoining the Flaming Fist there gave him one last brush with glory - his name still graces the List of Brotherhood in the Flaming Fist training facilities there. Discovering new love with a Cleric of Sune Firehair, his sons and daughters grew up listening to bard's tales of the adventures of <CHARNAME> and <PRO_HISHER> followers, but their persistence in trying to get Aran to speak of those days went unanswered. Of <CHARNAME> <PRO_HIMHER>self, Aran refused to speak.~ /* PC Refused Godhood, Friendship */ COPY ~aranw/media/blankepilogue.2da~ ~override/C-ARANE1.2da~ REPLACE_TEXTUALLY ~PORTRAIT~ ~C-ARANWL~ REPLACE 99999 ~There are few places in history for followers and companions, and Aran was no exception. He traveled the breadth and depth of Toril in service to <CHARNAME>, often dispatched to assist other companions and causes dear to <CHARNAME>'s heart. Discovering new love with a Cleric of Sune Firehair, his sons and daughters grew up listening to bard's tales of the adventures of <CHARNAME> and <PRO_HISHER> followers. As Aran tells it, the greatest moment in Aran's life came when his eldest daughter took up the way of the sword and pledged herself to <CHARNAME>'s protection. The second best moment was when his new wife finally managed to teach him to speak with correct pronunciation (though she never did erase his swearing completely).~ /* PC Became God, Friendship */ COPY ~aranw/media/blankepilogue.2da~ ~override/C-ARANE2.2da~ REPLACE_TEXTUALLY ~PORTRAIT~ ~C-ARANWL~ REPLACE 99999 ~There are few places in history for followers and companions, and Aran was no exception. He traveled the breadth and depth of Toril in service to <CHARNAME>, often dispatched to assist other companions and causes dear to <CHARNAME>'s heart. Discovering new love with a Cleric of Sune Firehair, his sons and daughters grew up listening to bard's tales of the adventures of <CHARNAME> and <PRO_HISHER> followers. Though he never claimed worship of <CHARNAME>, his children relate that the new oaths and blasphemies used when they did something particularly right or particularly wrong seemed to indicate he was profoundly aware of <CHARNAME>'s godhood.~ /* PC Refused Godhood, Romance */ COPY ~aranw/media/blankepilogue.2da~ ~override/C-ARANE3.2da~ REPLACE_TEXTUALLY ~PORTRAIT~ ~C-ARANWL~ REPLACE 99999 ~Aran's depth of devotion to <CHARNAME> continued to grow, serving for the following years without question or complaint. Though the histories never indicate precisely the nature of their romance, there is no question of his loyalty. His final act of devotion came giving up his life in order to protect her. There are no reliable sources, but bard's tales say that his last words were "Blighted hells, <CHARNAME>... did we have to come Planewalkin' here?"~ /* PC Accepted Godhood, Romance, Good or Neutral */ COPY ~aranw/media/blankepilogue.2da~ ~override/C-ARANE4.2da~ REPLACE_TEXTUALLY ~PORTRAIT~ ~C-ARANWL~ REPLACE 99999 ~Aran's depth of devotion to <CHARNAME> continued to grow, serving as Her right hand on Faerun. His constant work furthering her causes helped develop a respectable following, and his willingness to travel anywhere in Her name led others to regard him as some sort of high priest... a notion that often was dispelled in a barrage of blasphemy and cursing. As the histories recount, his last days on this mortal plane were spent comfortably on Evermeet, attempting to arrange a joint project between the followers of <CHARNAME> and Hanali Celanil's Order of the Ruby Rose to commemorate what would have been <CHARNAME>'s eightieth mortal birth-day celebration.~ /* PC Accepted Godhood, Romance, Evil */ COPY ~aranw/media/blankepilogue.2da~ ~override/C-ARANE5.2da~ REPLACE_TEXTUALLY ~PORTRAIT~ ~C-ARANWL~ REPLACE 99999 ~Aran's depth of devotion to <CHARNAME> continued to grow, serving for the following years without question or complaint. His constant work furthering her causes eventually corrupted him completely, though later writings indicate growing fear and desolation as his mortality left him increasingly unable to serve <CHARNAME> in the manner she wished. It is a mark of their love that when a Paladin of Helm finally ended Aran's life, <CHARNAME> herself personally blasted the woman into nothingness, causing a minor skirmish in the wars of the gods.~ END /* of ToB installation */
  13. "Go on, wi' ye, then. I can write fine, but my speakin' is not so good, unless I really try. Here - let me give her a shot. Hrmmpf. 'Fair Ladies and Gentlemen, I bid you good morning. Please pay no attention to the minor inconveniences of last evening's disturbance. Our uninvited guests of yester-eve have passed on to other occupations, many of them involving plant fertilization. Our chef has prepared a special meal for your enjoyment; due to the small matter of our cookwagon being set ablaze last night while defending the camp, we have prevailed upon him to create a special morning repast of Frison Rodentia and Flatbread Carbona. This way, if you please, for your morning repast.' " *cough* "See, I can put it on, but it takes a mite o' effort, at that." Aran Whitehand is a human fighter and scribe for BG2, dual classable into either cleric or mage. Basically, a human utility player taken along for the friendship/cuddling. "Specials" include creation of minor scrolls through dialog and timer when in a party with another canon mage. Primarily a male friend who can grow into an extended courtship/romance, romanceable by female PCs, Aran has his own sense of humor and specializes in bringing others into the conversation. Functionally, Aran is a Companion mod. He has a minor optional quest with a new area, but comes with no special weapons or upgradeable items - his specialty is in interacting with the members of the party and adapting to situations. For him, the job is paramount, and his job is supporting the player. He is no stranger to having to carry out orders which bend morality, though he hates doing so. It should be noted that this mod is designed by adults for adults, and should not be installed unless you are comfortable with Faerunian swearing, occasional adult themes, and NC - 17 to R rated content in the Romance portion. Statistics immaterial these days, as folks can patch them how they want, but to start him off with some basics, a reorder based on Gavin. Berelinde did a bunch of soul searching and came up with a good 'common adventurer' set of stats, and why mess with success... power players can adjust him to build a Kensai/Mage dual class quickly enough "Warrior" configuration [player options on install, fighter] Strength 17 Dexterity 16 Constitution 15 Intelligence 12 Wisdom 13 Charisma 12 "Poet" configuration [player options on install, for Cleric dual class] Strength 16 Dexterity 13 Constitution 15 Intelligence 12 Wisdom 17 Charisma 12 "Thinker" configuration [player options on install, for Mage dual class] Strength 16 Dexterity 13 Constitution 15 Intelligence 17 Wisdom 12 Charisma 12 "Survivor" configuration [player options on install, for Thief dual class] Strength 16 Dexterity 17 Constitution 15 Intelligence 13 Wisdom 12 Charisma 12 Alignment Neutral Good. He thinks. "Bugger off, you sorry old jackass - I never said naught 'bout my alignment. Tymora's Bright Coin, you take liberties, you do. Tymora suits me fine. She even don't mind my speakin' so free, swearin' on th' gods, most times. At least, not yet." Friendship Aran will befriend any protagonist of any race or alignment,though how he reacts to situations will definitely let the player know how he feels. A rough - around - the - edges man, accustomed to mercenary service and caravan work both in front of and protecting the books, Aran hires on as a scribe or accountant as well as protection. He has learned to work with practically anyone not Drow, and chase any female within arms reach. His language is rough, his approach unrefined. And if you don't like it, he will gladly tell you exactly what your opinion is worth. Folks he would like and respect: Keldorn - Minsc - "Mad Minsc. That's not quite right, though. Make it Magnificent. I'd take him 'side me on a shield wall any day o' the week, 'giant space hampster' an' all." Ajantis - "Ajantis, laddie. There's fightin' fair, an' then there's winnin'. See, if you shine your armor like that, they knows you are an officer, an' the archers take you out first. Aint' no honor in dying before you can swing yer sword." Yoshimo - "Aye, then, deal th' cards again,. I'm down four tradebars an' three iron cresents, an' I want a chance to even the score, eh? While you are at it, tell me anouther tale o' Kara-Turan womenfolk, an' I'll buy th' next round." Angelo (Aran wasn't in BG, so he knows Angelo only by Flaming Fist contacts - "Hey, old man, lend some expertise here, eh? I'm havin' troubles wi' this parryin' position. Show me again, eh? A mug o' ale if you teach me..." Azure - "Now, she's a right fine lady, she is. Sharo's got one eye on me most o' th' time, though, so I'm not rightly sweettalkin' her any time soon." Alora - "Tymora's Smile, that halflin' lass is th' sprightliest an' happiest bein' I know! If <CHARNAME> ever drops me for good, me an' her, we should think o' teamin' up an' goin' on some adventures. She's right fun, she is!" Ninafer - "Pity she looks right through me, as if I'm not there. Bad taste in men, she has. But she's a right stalwort companion." Keto - "That lass is a right fine storyteller. She can drink me under th' table, sing like an angel, an' she's as smart as a whip. What's not to love? If <CHARNAME>'s not available or interested, now there be a lady what I would love to spark wi'. A real equal. I wonder what kind o' thinkg she might like as a courtin' gift?" Folks he would like and understand a little: Aerie - "Hey there. Come over here, girl. I have some drills you can do what's to strengthen your lips. Called 'kissin', I believe, among th' fair folk." Imoen - "You doin' all right, Imoen? You got someone troublin' you, let me know. Never met an argument I couldn't solve, thogh I do admit some were by fist an' sword instead o' words. Aww, who am I kiddin'. Who needs swattin'?" Nalia - "I don't quite understand you, Nalia. But you are a fine lookin' young women. You like dancin'?" Jaheira - "Awww, quit motherin' me, Jaheira. Here, I got these for you. They'll do fine in that stew you like to cook. Here, let me cut 'em up for you." Gavin - "Hey, watch it.... damn. Lathander's Golden Poop, Gavin, you gotta stop that backswing. Here, let's go work on it. I'll teach you to not knock me silly when I'm on the battle line with ye, and you argue wi' me about my immortal soul. Fair trade?" Sarah - "I don't blame ye for likin' the womenfolk, lassie; I sure as hells do! Say, next inn, let's go bar hoppin', an' I'll watch your back, you watch mine. If they swing your way, I steer 'em to ye, and vice versa. Sarah? Sarah? Mask's Left Hand, where'd that lassie disappear to..." Ainshai - "Sune's Slender Wrists, that one will drive a man to drink, she will. I suppose I should be keepin' my eyes on' th' business an' not on her, but the lass is right pretty. An' she can whup my arse on hand-to-hand. What's not to like?" Haldamir - "Helkaer Haldamir. Means 'icy one' in lammen Tel Quessir, that does. Good fighter, keeps to himself. I suppose you get that way if most o' th' folks you are fightin' alongside are younger than pre-apprentice age, an' will die out afore you blink your eyes a couple o' times. Never did understand why elves bothered wi' us mayflies." Alassa - Now why do some o' th' finest females come in evil, self-servin' packages? At least she's got spine an' gumption. But somehow, I don't rightly think she'd back me unless there was somethin' in it for her." Branwen - "That Tempus-lovin' girl is a sight for sore eyes, she is. I'd make a pass right quick, if every time I wandered by she didn't start all that serious discussion about dyin' an' goin' to fight alongside her god. I'm a mite more comfortable on this here plane o' existence, thank you very much. That whole dyin' thing, well, I tend to try to avoid it." Dynaheir - "Now there be a true lady. If we had more nobility like that, well, there'd be a sight more happy people in th' world. A little formal an' stuck on th' law, but what do you expect for a leader-type." Fade - "She be th' kind what sees what she wants, an' gets it. As long as I can keep th' goals coincidin' wi' hers, I get a great advantage. If our goals ever differ, I'd best watch my back. Wouldn't want to see nothin' sharp stickin' out o' it." Andrei - "A smart lad, just a raw recruit. A bit sheltered. But he listens to my stroies, an' takes pointers, an' all. I like him fine." Ghareth - "He tells some nice stories, he does. Good lad. Not much more to say, eh?" Hubelpot - "Corelon's Blade, he knows his food, he does. It's a right fine pleasure to watch him cook! Th' fightin, well... he's gettin' th' hang o' it. We are on a barter system, see. His recepies, my swordskills." Kelsey - "He knows merchant, he knows some fightin' ways - an' I do think he's a right fine party member. Th' boy's got some serious magic, he does. I just wish he weren't lookin' to spark wi' all th' available females. Puts us at odds, sometimes, on account o' that bein' *my* job!" Auren - "You look her direction, an' your eyes get stopped in their tracks, they do. In a good way, o' course. But she seems to like Nalia right propr, an' wears th' flower in th' other ear, so there's no use barkin' up that tree." Folks he would like alot and have absolutely no respect for at all: Bruce - "Barroom Bruce, named such on account o' I keep havin' to drag his sorry arse past, around, or out o' every single one we venture on. Good drinklin' companion until he gets drunk, an' not so much a fighter as an arrow-holder. I keep tellin' him that gettin' nekkid an' runnin' screamin' at kobolds weildin' short bows is not a valid battle tactic. O' course, he just tells me to sod off an' get us somethin' to drink." Kari - "Nice enough furrball, an' she's developin' some skills. Still scared o' her own shadow, though. She blushes about as much as I do, an' somehow I think th' gods have a nasty sense o' humor. Now where is she goin' to find someone to love her, eh? That just stinks. I spent way too long fendin' off kobold raids, an seein' them as scavenging animals. Not sure I can ever take her serious, as a party member an' all." Folks he would be neutral/unsure towards: Touchstone - "Not sure what to think, there. Nice enough on th' shield wall, an' strong. But I think either he's done taken one to many hits to th' head, or else he needs a decent tutor in common. Talks funny, he does. Hey, what are you laughin' at?" Callisto - "Nice enough to look at, good at her job. Wouldn't want to go carousin' wi' her, though. You don't rightly want to be around when she gets enraged, eh? There's no tellin' where her weapons get pointed." Nikitalleria - "Lathander's Light, what that girl can do wi' her fingers... But I am not sure she sees me th' same way. Somehow, I don't rightly think she likes me." Biddlekorak - "Not so bad for a shortaxe what's heard th' call. I get right tired o' all th' evangelical stories, but ghe don;t rightly get to talkative, so he's fine by me." Coran - "The boy's got charm, an' he's sharp, he is. But not much else goin' on, I think. I wouldn't trust him to hold my purse, or anythin' else, for that matter. Don't see what the ladies see in him." Iylos - "I suppose that insolent bastard knows his job. But th' backtalk, well, he could be a mite more respectful. <CHARNAME>'s been a force for a long time, an' here comes th' big bad investigator. If he plays fair an' backs <CHARNAME>, I might readjust my opinion. But if not, we will have to see if he really can stop a blade wi' his hand an live to tell the tale." Folks he would not like, but would respect and back up: Korgan - "Alright, ye black hearted Son o' Cyric, pass over those dice. You are cheatin' again." Valygar - "You are fine with a blade, friend, but magic is a powerful weapon. Why do you hate it when it'll save your arse nine times out o' ten?" Cernd - "Look, Cernd. Stop with all the talk, an' let's get down to brass tacks. What do we have to kill, an' how do we do it?" Saerileth - "Are you kiddin' me? A fifteen year old? I wouldn't kick her out o'... well, she's fine, I guess. But she don't know squat about livin', let alone fightin' proper. Tyr's Blasted Buttocks, don't send a child to do adult's work" Xan - "Doom an' gloom, all talk and no action. Shut up, ye pansy arsed jackass. Grab that Moonblade an' use it right proper, now - we got business to attend to. Don' understand quite a bit 'bout you, but you can kick arse when you've half a mind, for sure." Tashia - "Look, you are an eyeful, an armfull, an' just about the best sorceress I ever met. But when are you gonna get settled down an' take things serious? We aren't on a picnic, an' you already cost us pretty dear draggin' all that baggage onto th' party. Get with the program, lassie." Sarevok - "You made your play, an' lost. You backin' <CHARNAME> now? Fair enough. Just make sure you're on th' right side o' th' shield wall. I don't take kindly to triple crosses." Sebastian - "He be a slippery devil, that one. I 'm not rightly sure I have gotten a straight answer out o' him. Nine times out o' ten, I think he knows more than he lets on, eh?" Keen Kachiko. Keen mind, keen sword, keen tongue. Best to keep out o' all three's way." Folks he would dislike and not trust: Jan - "You talk too much, boyo. An' you keep blatherin' 'bout all those inventions. Ain't never seen a turnip soup worth eatin', neither. Keep out from underfoot, shorty." Amber - "You can take th' girl out o' the hells, but you can't take the hells out o' the girl. Only thing I can say for her is she aint' a drowess." Chloe - "I'm not sayin' nothin'. Anyone wi' divine blood's a damned sight scarier than findin' yourself penilless in Calimport. Well, exceptin' <CHARNAME>, o' course." Cassius - "Mask's Left Hand, the skald never shuts up, eh? Hey, don't be lookin' at me like that, Haer'Dalis! I shut up. Occasionally. When th' wind is right." Gozaloth - "That floatin' eyeball never did say what all that goo was. And I'm not rightly sure I want to know, anyways. Ten iron crescents says th' bastard gets skewered before th' second fight is over. An' whio do you think is gonna have to haul his goey stinkin' oozy bady back to a temple for to be healed? Well, it's not rightly likely to be <CHARNAME>, to be sure." Horace - "I still get th' shakes just lookin' at him reachin' for a weapon, straight through his own bony ribcage. I think I'm not likely to sleep at night wi' a skeleton for a companion. After all, what do you buy a skeleton to drink? Can't rightly buy him a round. That's just not right." Sheena - "Yeah, right. I know, you think I'm a racist son o' a bitch, but there be two bein's where you'd be right 100% o' th' time. I don't trust no dragon larger than a pseudodragon. An' wi' that... lady...well, th' language is all pretty an' correct, but I keep expectin' to wake up as th' main course for her when she goes all firedrake random-like." Folks he would hate: Tsjuatha - "Stay away from me, necromancer. Y'ain't natural. I respect the Tel'Quessirim, but anyone be dabblin' in the dark arts is not to be trusted." Viconia - "Move one step closer, Drowess, an' you are a dead woman. Sorry, a dead spider. Didn't mean no offence to women by associatin' you with 'em." Edwin - "Come on, Edwin, it ain't that bad. At least in that dress, your legs look good. In fact, that's about the only thing redeemin' about not kickin' you out in front o' the dragon, an' having you scout forrard." Anomen - "The worst of the officer class. Give me a crossbow, an' turn the other direction - I think there's gonna be an accidental 'friendly fire' incident." Faldorn - "Hey, wolf-girl. Get your smelly arse out where I can see you. An' keep your hands away from that spellpouch. Wouldn't want to have to disturb *your* balance, by loppin' off one o' your legs or arms, or such." Miriam - "Bane-blighted bloodsucker. I need to get me a new holy symbol an' some more garlic. An' a stake." SilverStar - "Keep that psychotic creature away from me, eh? Dangerous." Irenicus - "Bloody mad, an' evil. But I guess <CHARNAME> can handle him. As for me, well... when a dog goes mad, they try to cure him, an' if that don't rightly work, they put him down. This whole 'resurrect you opponent an' try an' redeem him' thing, that sounds way too complicated to me. Kill th' Bane-buggerin' bastard, disintegrate his head, toss his bones to th' wolves, then blow up th' wolves. An' blot his name out o' th' history books, just to make sure." Kindrek - "Bloody evil Cyric Buggerin' Bastard. Gotta keep both eyes open while I sleep, wi' him around, I do." Romance Aran will romance any female protagonist of any race save Drow, or any alignment. Again, how he reacts will definitely let the player understand his position. Good men fall for bad women as quickly as for good ones, and sometimes opposites really do attract. But romance on the trail is awkward, with a group of adventurers around, and the road to romance is both rocky and complicated. Exactly how does a strong man feel when his significant other turns out to be infinitely stronger than he, on so many levels? Can the two of you negotiate the attraction into something of an equal relationship, or is this destined to fail? When Aran Whitehand meets the party, he is looking for work having dropped from the rolls of a mercenary regiment.
  14. ADVERTISEMENT: ADVERTISEMENT: History: Managing a small family Trading Coster is an awkward business on the Sword Coast. Whitehand Trading was no exception. Born (literally, in a wagon trailing into Waterdeep) into the family business, Aran grew up alternating between the open road of Trade Way and the harbor of Baldur's Gate. While his father managed clients and gladhanded trade deals, and his mother organized accounts receivable and drafted contracts, Aran learned the family business from his first word, "bandits". When his younger sister was born, the family rejoiced at the prospect of a new generation of Whitehands building the family business into a worthy competitor for the major trading companies. The varied life suited Aran well, shadowing both his mother and father. The short but fierce oar pulling to load and unload ships, standing watch and training with the hired swords, hard riding, running off bandits and gibberlings, and nightly contract copying and accounting by candlelight fed both body and mind well. If things were not always profitable, Aran was not likely to complain. As he grew, Aran built a strong supportive presence in the family business. Unfortunately, life's dreams and expectations do not always match the measure of a man. Aran was dedicated, strong, and followed his family well. But while his father could charm mithril from a dwarven smith for an elven artist's use, Aran stayed in the backround, acting notary. While his mother could master the intricacies of contract law and work with ombudsmen and creative contracts, Aran copied documents and watched from the sidelines. The hired swords were not the best of teachers, and from them he learned odd lessons, like how to stay silent when you should speak, when to brag when you should be silent, and most of all that laws could be twisted and not always to benefit the greater good. When his younger sister was born, she was the light of his life, but as she grew it became painfully obvious that in comparison Aran was just not smart enough to truly master the diplomacy, leadership, and smooth talking necessary to make a family Coster competitive. Hard work could just not compensate for a lack of innate ability. Aran would have been content with the secondary support role, riding out with caravans and handling the bookkeeping, and letting his sister become the beauty and brains for the business. He idolized his younger sister. Fate plays her tricks on everyone, though. Elena was more gifted than any in the family, and showed precocious magical talent. On a standard trade run, her beauty and intellect caught the eye of a courtier mage to the Lady of Waterdeep. With Elena offered a chance to apprentice with the young woman mage at court, the family faced some harsh economic choices. Establishing Elena in court would take more, and steadier, resources than the family could provide. Reading the future, the family decided to sell the business to a larger Baldurs Gate Trading Coster and abandon their independence. The 14 year old Elena would apprentice, and the family would retain employment with the larger firm in the central offices. 20 year old Aran would finish the last year of his "apprenticeship" in a real apprenticeship with a major trading family. "Either he will learn to work the system", the senior Whitehand said, "or it will work him." Aran lasted two weeks at the larger firm before an unfortunate remark sent a Coster hireling through a window and Aran out on his own. His restraint at not following through on the beating saved the man's life and Aran from prison, but it was obvious that the Company Life was not a good fit. Disliking the harsh dicipline (and wary of being turned into a procurement officer or staff scribe), he avoided the standard Mercenary outfits, and struck out south to build his own trading company. Rowing crew with trade galleys, hiring on with small trade caravans, and selling his services as a copyist, he gradually drifted south seeking an opportunity to begin again. Several years as a hired sword and pen have provided some harsh lessons for Aran, but he arrived finally in Calimport with some experience under his belt. Business plans have been built and abandoned, temporary travel companions come and gone, and Aran now faced a rather uncertain future. He has learned to keep silent, to hit the door with shield and shoulder hard, and to not always look carefully at what he is copying. He has also learned that there are things that he is not willing to do in the name of profit, and that generally people who write things down do not actually mean everything they write. Most of all, he has learned that going it alone is lonely, food is best shared with others, and getting too drunk is not worth the trouble. He is definitely ready for a change and a chance to forge a new direction. Psychology/Interest In the past, mostly humans as adversaries and as companions. Mostly riding travel with some sea rowing in Trade galleys. Slight awe of Elves and Dwarves, sight distrust of Dwarves and Gnomes, solid distrust of halflings. Never seen any other demi-humans. No magical ability at all; not afraid, just convinced he is not smart enough. Prefers to fight cooperativelty with companions and to write alone. Would rather fight than talk, would rather write than speak publically, and would prefer to cooperative ventures to having (or being) a leader. His one (hidden) interest is puzzling out older documents. Not the contents, which he is pretty sure he wouldn't understand anyways, but the form and structure, rebuilding documents and figuring out what should go with what. His one constancy is his letters home to Elena, which he scribes in small script to save paper and keeps (two copies; you never can be too careful, you know) in a parchament case in his belongings, searching for times to send them via post or messenger when opportunity arises. DM Notes: Scrivener rather than Sage, Copyist rather than Writer. Unlikely to tolerate heavily evil actions, but definition of "evil" is slippery, as is definition of law. Letters home are the most telling of inner workings - will be provided as he wries them (Aran is smart enough to keep to himself, but may not be smart enough to avoid snooping eyes, so material will be provided for DM subterfuge in case it is warranted). Outdoor combat oriented; longsword, shield, composite longbow. Favors shield tactics and defensive fighting but is learning other ways. Rather cautious.
  15. Is it possible? Back In The Day®, before the FlirtPack, Fade To Black™ handled most things. Even with Aerie getting pregnant, the before and after talks were very un-explicit. From BAERIE, CODE IF ~~ THEN BEGIN 356 // from: 351.1 SAY ~Please, <CHARNAME>...the time is right and I must speak to you of this.~ /* #31623 */ IF ~~ THEN REPLY ~(sigh) Fine. What is it you wish?~ /* #31624 */ GOTO 352 IF ~~ THEN REPLY ~It will have to wait, Aerie. Good night.~ /* #31625 */ GOTO 357 END IF ~~ THEN BEGIN 357 // from: 356.1 SAY ~I...I see my wishes have no bearing on your moods. As...as you wish. I will sleep by myself tonight and from here on. Good night, <CHARNAME>.~ /* #31627 */ IF ~~ THEN DO ~SetGlobal("AerieRomanceActive","GLOBAL",3) RestParty()~ EXIT END IF ~~ THEN BEGIN 358 // from: 355.0 SAY ~C-come close to me, then, <CHARNAME>. Let me feel your hands on my skin...let us lay together so I may experience your love and become a woman at last...~ /* #31632 */ IF ~~ THEN DO ~RestParty()~ EXIT END IF ~~ THEN BEGIN 359 // from: 355.1 SAY ~I...don't know what love is, <CHARNAME>. But...maybe it would be better to wait until all of this is over. The thought of laying with a man frightens me a little, I must admit...~ /* #31633 */ IF ~~ THEN GOTO 360 END IF ~~ THEN BEGIN 360 // from: 359.0 SAY ~Stay with me for the night, then, <CHARNAME>, and hold me to you. I...don't want to be alone, and I so desperately need to be near you...~ /* #31634 */ IF ~~ THEN REPLY ~As you wish...that I am more than willing to do.~ /* #31636 */ DO ~SetGlobal("SleptAerie","GLOBAL",0)~ GOTO 363 IF ~~ THEN REPLY ~Forget it, Aerie...I'm not interested in someone who is so needy.~ /* #31637 */ GOTO 361 END IF ~~ THEN BEGIN 361 // from: 360.1 355.3 355.2 SAY ~So you send me away with...with your cruel words. I...I thought I loved you...and yet you cut me open without hesitation. I...should have known better, I suppose.~ /* #31679 */ IF ~~ THEN GOTO 362 END IF ~~ THEN BEGIN 362 // from: 361.0 SAY ~Very well, <CHARNAME>...I shall go and sleep by myself and console myself that it is better that I never allowed one such as you to touch me. I...shall not trouble you further.~ /* #31680 */ IF ~~ THEN DO ~SetGlobal("AerieRomanceActive","GLOBAL",3) RestParty()~ EXIT END IF ~~ THEN BEGIN 363 // from: 360.0 SAY ~You are sweet to be so patient with me, <CHARNAME>. Let us sleep, then.~ /* #31684 */ IF ~~ THEN DO ~SetGlobal("SleptAerie","GLOBAL",0) RestParty()~ EXIT END IF WEIGHT #23 ~Global("LoveTalk","LOCALS",48) Global("SleptAerie","GLOBAL",0) !StateCheck(Player1,STATE_SLEEPING)~ THEN BEGIN 364 // from: SAY ~So...you are awake at last? I have been...watching you sleep for some time, now. It calms me, watching you...and it gave me time to think.~ [AERIEB1] /* #31685 */ IF ~~ THEN GOTO 365 END IF ~~ THEN BEGIN 365 // from: 364.0 SAY ~I've been...thinking about last night. You were right, of course...it isn't the right time to experience love when we are always in danger of perishing.~ /* #31686 */ IF ~~ THEN GOTO 366 END IF ~~ THEN BEGIN 366 // from: 365.0 SAY ~I was so eager to experience everything new that I...did not think. Thank you for respecting me. I...I love you...and I want our first time together to be something special.~ /* #31687 */ IF ~~ THEN REPLY ~I love you, too, Aerie...and I agree.~ /* #31688 */ GOTO 367 IF ~~ THEN REPLY ~Yes, well...let's just continue our travels, shall we?~ /* #31689 */ GOTO 368 IF ~~ THEN REPLY ~You're out of your mind, Aerie.~ /* #31690 */ GOTO 370 END IF ~~ THEN BEGIN 367 // from: 366.0 SAY ~Let us go, then and find this Irenicus. Once this is over, I want to experience everything with you. I...I never thought I would find something... better than flying. Thank you.~ /* #31691 */ IF ~~ THEN DO ~SetGlobal("AerieRomanceActive","GLOBAL",2)~ EXIT END IF ~~ THEN BEGIN 368 // from: 366.1 SAY ~Of course, <CHARNAME>. Let's...finish your quest, and then we can see where we stand. And where we can go from there, yes?~ /* #31692 */ IF ~~ THEN GOTO 369 END IF ~~ THEN BEGIN 369 // from: 368.0 SAY ~In...in case I die...or in case we part ways...I just wanted to tell you, <CHARNAME>, that I never thought I would find something better than flying. But I have...and thank you.~ /* #31693 */ IF ~~ THEN DO ~SetGlobal("AerieRomanceActive","GLOBAL",2)~ EXIT END IF ~~ THEN BEGIN 370 // from: 366.2 SAY ~I am? I had thought you had cared for me. But...perhaps you kept me away because...because you did not care enough for me. I had not thought of that.~ /* #31694 */ IF ~~ THEN GOTO 371 END IF ~~ THEN BEGIN 371 // from: 370.0 SAY ~I am too quick to assume, <CHARNAME>...and I have much to learn. I wish you would have been gentler with me, but you have taught me much, and I thank you.~ /* #31695 */ IF ~~ THEN GOTO 372 END IF ~~ THEN BEGIN 372 // from: 371.0 SAY ~Let us just...continue on your quest. I shall trouble you no further...and will look to further my experience elsewhere.~ /* #31696 */ IF ~~ THEN DO ~SetGlobal("AerieRomanceActive","GLOBAL",3)~ EXIT END IF WEIGHT #24 ~Global("LoveTalk","LOCALS",48) Global("SleptAerie","GLOBAL",1) !StateCheck(Player1,STATE_SLEEPING)~ THEN BEGIN 373 // from: SAY ~So...you are awake at last? I have been...watching you sleep for some time, now. It calms me, watching you...and it gave me time to think.~ /* #31697 */ IF ~~ THEN GOTO 374 END IF ~~ THEN BEGIN 374 // from: 373.0 SAY ~You...have made a woman out of me, <CHARNAME>. I love you more deeply than I can say and can only thank you for what you have done for me.~ /* #31698 */ IF ~~ THEN GOTO 375 END IF ~~ THEN BEGIN 375 // from: 374.0 SAY ~But...at the same time...I cannot help but think that things need to be slowed. I am so full of emotion...I want to experience too much and am doing it all too quickly.~ /* #31699 */ IF ~~ THEN GOTO 376 END IF ~~ THEN BEGIN 376 // from: 375.0 SAY ~I feel overbalanced, <CHARNAME>. Quayle would never approve of this, I think.~ /* #31700 */ IF ~~ THEN GOTO 377 END IF ~~ THEN BEGIN 377 // from: 376.0 SAY ~My heart clenches at the thought, but we must stop ourselves from going down this path. I need to...to find out more about myself...before I can attach myself to another. I...hope you understand.~ /* #31701 */ IF ~~ THEN REPLY ~I do...but maybe you need to find your own way, Aerie.~ /* #31703 */ GOTO 378 IF ~~ THEN REPLY ~If that's what you want, there is nothing I can do.~ /* #31704 */ GOTO 379 IF ~~ THEN REPLY ~No, Aerie! I love you!~ /* #31705 */ GOTO 381 IF ~~ THEN REPLY ~No, I don't understand! Why are you doing this?!~ /* #31707 */ GOTO 383 END IF ~~ THEN BEGIN 378 // from: 385.0 377.0 SAY ~If...if that is what you think I should do...then perhaps I must. I...I shall miss you, <CHARNAME>. I shall always hold you dear in my heart.~ /* #31712 */ IF ~~ THEN GOTO 382 END IF ~~ THEN BEGIN 379 // from: 377.1 SAY ~Oh, please don't be sad, <CHARNAME>. I shall remain with you and fight by your side... this quest of yours is too important for me not to help you with it.~ /* #31717 */ IF ~~ THEN GOTO 413 END IF ~~ THEN BEGIN 380 // from: 413.0 SAY ~But, come...a new day awaits us, <CHARNAME>. Let us...let us see what it holds.~ /* #31720 */ IF ~~ THEN DO ~SetGlobal("AerieRomanceActive","GLOBAL",2)~ EXIT END With some variations, not much else happens in any of the other Canonical BioWare™ crew. We find more explicit depictions of activity in the chaste writings in those Vampire stories currently popular among the youth - or Panshin's coming of age story, or actually network TV in the US. Then, modding happened, and even early romances had more direct PG13 content, or more. The list and variations are huge now in the community, with decidedly mature content available (by mature, we are defining it the US way: you can kill thousands of critters in horrible ways, steal, beat people up, spy, break laws, even show body parts in various states of dismemberment and corruption - but no showing of naked body parts of any kind other than men's bare chests and women's bare backs from the waist to the neck, and no description of what happens when the aforesaid body parts start doing what comes naturally in any way, shape, or form. Now, the debate on this is fun, and has been done to death. I would ask that we drop the whole "discuss whether or not this is ok to death" part, and focus on the player experience. For this topic, we are looking at being as player-friendly as possible. We want the folks who are happier with the level of the posts in the flirting and Moonlit Swordfight threads (though I have some question in my mind if that gets a bit too graphic in places), pushing the boundaries of the original game without wandering into Viconia Bathing Flirts or Romantic Encounters. What we are looking at is a way of not breaking in-game immersion, but at the same time letting folks who want Romantic Encounters-level romance to be a part of their gaming experience. We have some choices, the most obvious being "don't write stuff that goes farther than QUOTE ~[PC] My love, spend the night with me. Be mine, and I will be yours.~ ~[ARAN] Aye, I would gladly be wi' you, now, an' any time you want. I done fallen for you, an' I am yours.~ RestParty() ~[ARAN] Now, sleepyhead, wake up. That were a wonderful, beautiful night.~ ~[PC] Yes, it was. ~[PC] No, it wasn't. ~[PC] Perhaps. With some training, you will become a wonderful lover. ~[PC] You have made a woman out of me. ~[PC] I love you. ~[PC] I wonder what all the fuiss is about. It was ok, but awkward. " OK, possible, well done in several mods, and it avoids the question of appropriate player choice by giving no options on the level of intensity or graphic nature of the game, but allowing some responses on the PC's part that will be pretty obvious to those with experience. And as it is a mature game and Aran is a mature mod, we can figure that it matches NCIS or regular afternoon TV, as long as the watcher is not watching DeGrassi Junior High or other fare that explores pretty heavy stuff - or watches a soap opera - basically, we can say "Hey. This is ok for most players of the game to watch". Of course, that would be too easy. While writing stuff for RE was embarrasing at times, and definitely way beyond my comfort level, it was fun. And exciting. And probably the toughest challenge I have ever had writing. To be blunt, without help from really, really good friends, it would have never, ever happened. But that fun factor comes back in - we know from modern mature games and mods that blend over into more explicit content, folks are interested. So, I want to give it a shot with Aran, too. But how do I support moving to the next level without making folks who are not interested in having more risque materials suddenly find themselves in a territory that they don't like? Well, option 2 is to make a separate component that adds more mature stuff. That way, at install, a player can choose to play a more vanilla-ice-cream game, push the envelope with more risky-sounding responses, and not worry. A player who would much prefer to play about figuring which part of Aran should be painted with aforesaid vanilla-ice-cream, well, they add in that content. This is the Romantic Encounters solution - if it is not to your taste, don't install it, and you never have to be worried. This, by the way, is the best one from a general coding perspective. You can always set a talk to supercede another, or change a variable that can be evaluated, and add it on in another layer - a quick example, kept PG13 for decorum and modesty, CODE IF ~Global("MyLoveTalk","GLOBAL",14)~ THEN BEGIN lessexplicitstate SAY ~[ARAN] (His lips are warm and alive, caressing yours gently.)~ ++ ~[PC] Oh Aran... hold me closer. I want to be with you tonight, warm in your arms.~ DO ~SetGlobal("MyLoveTalk","GLOBAL",15)~ EXIT END Global("geivememoredescription","GLOBAL",0) Then, in your "allow more adult interaction/depiction" component addition, either set a cutscene to run or add options using EXTEND_BOTTOM on your states (tricky, but possible with STATE_WHICH_SAYS), or simply add a greater weight to the more explicit talk - CODE IF WEIGHT #-1 ~Global("MyLoveTalk","GLOBAL",14)~ THEN BEGIN moreexplicitstate SAY ~[ARAN] (His lips are warm and alive, caressing yours gently.)~ ++ ~[PC] Oh Aran... I happen to have some vanilla ice cream... shall we see how it melts?~ DO ~SetGlobal("MyLoveTalk","GLOBAL",15)~ EXIT END Since the state added afterwards advances the variable too, and it will now run at the top of the stack, you should be able to basically depreciate your old state with the new state. But that means a separate component, and no chance for a player to change their mind mid-stream. Given that folks do mega-installs these days, that can be a serious pain. So, how else can we do it? Well, berelinde came up with a really great suggestion - QUOTE (berelinde) You script a "flirt" to fire before any of these become available where Aran says something bordering on, but not quite, NC17. Give the PC two reply options, and only two reply options "I don't appreciate that kind of language." and "I like a man who speaks his mind... especially if it's naughty." Variable set and no immersion broken in the process. You use that variable as a trigger for the mature content. Side note - get a modding partner with whom to bounce ideas. It is a great, great experience. Now, I am having trouble with getting the message across strictly in-game, but playing with this idea (which means I can write things more naturally, then basically shut down reply options or specific floating talks or even entire branches of dialog, or even better, the player can choose at any point in time to enable or re-enable or shut down stuff that is not to their taste) - like the Anomen Romance conflict runs : For PID enabling/disabling, CODE + ~Gender(Player1,FEMALE) OR(2) Global("c-aranrom","GLOBAL",1) Global("c-aranrom","GLOBAL",2) Global("c-aranmature","GLOBAL",0)~ + ~[PC] I like it when you flirt with me, especially when it is naughty. You should be more explicit.~ + DO ~SetGlobal("c-aranmature","GLOBAL",1)~ + c-aranmature_content // replaced with # when integrated + ~Gender(Player1,FEMALE) OR(2) Global("c-aranrom","GLOBAL",1) Global("c-aranrom","GLOBAL",2) Global("c-aranmature","GLOBAL",1)~ + ~[PC] I like it when you leave much of our flirting discreet.~ + DO ~SetGlobal("c-aranmature","GLOBAL",0)~ + c-aranregular_content // replaced with # when integrated IF ~~ c-aranmature_content SAY ~[ARAN] I think I understand, eh? I may take some liberties or not, but either way you won't mind some o' my language bein' a bit graphic.~ IF ~~ THEN EXIT END IF ~~ c-aranregular_content SAY ~[ARAN] I think I understand, eh? I may take some liberties or not, but either way you want to leave more to your imagination, rather than me spell it out for you.~ IF ~~ THEN EXIT END No flirt starts before FriendTalk 3, so after FriendTalk2, some conversation to set this up first. This is where it gets tricky - and where suggestions are welcome. Warning - if they are posted here, they are likely to be shamelessly integrated The challenge is to find a way of making it clear to the player in a flirt that: 1. by choosing reply 1, the FadeToBlack™ is there, and there will be as close to BioWare™ as possible. That means some of the Moonlight Swrdfight and some of the already in-place flirts will be screened out. 2. by choosing reply 2, the FadeToBlack™ is there, because I would stink at writing pron, but materials at the level of the more adult encounters in RE (Chanelle, Renal, Sheri, etc.) would become available along romance pathways. [by the way, if you are interested in assisting with both feedback and spell/grammar/proofing, I am on target to have the first full Bath At An Inn scene ready tomorrow evening. I am a chicken, and do not feel comfortable with posting things in this open forum that go as far as this particular bath interaction does, so please PM me if you are interested in assisting. Brutal, honest feedback is welcome, but don't ask if you have found RE makes you uncomfortable. By the time the mod is in alpha, we will have a way of making sure you don't have to read it if you don't want to, but in its current state I can't shield stuff.]
  16. Nix has created Aran's first portrait set, for which I am very grateful! Option #1: aransportraits.rar
  17. This is a placeholder, but for my own investigation, a searchable/sortable list of current vars. Needs to be rebuilt after recheck, but already there are some mistakes in matching scope of variables and scope of timers cross-project. Creating docs like this is a serious PITA, but it can save you hours of troubleshooting when you are piecing things together in bits an pieces - very few people can afford to take the time to run large projects out without resorting to 5 minutes here, 20 minutes there, and testing (or searching for places where you think you are looking for other folk's variables but have misspelled them) requires good documentation. www.gibberlings3.net/aranw/docs/aranw_var_4_2_2011.htm
  18. Well, he pretty much works - there are several things still to do, but he appears pretty much playable. Every once in awhile, he says "PLACEHOLDER", which is jarring, but hey, the boy was literally born yesterday. (OK, so he is a few years old, but *you* try being a fictional character added to a fantasy game.) Successful integration of most adult materials into general files. So, if you poke, expect to run across some stuff that you might find offensive. Think bad fanfic sex with a decidedly "purple prose" approach. That turned out to be over a year of work just figuring it out - I highly recommend thinking several times before doing much besides "fade to black". Trying to implement player choice without dictating in something as subjective as that? Murder. One sacrificial pre-alpha tester reported problems with weighting in inns, still backtracking. Still to integrate and rework before beta test release: "Send him on to another place" materials need coordinates and coding to actually move him. bath in an inn romance materials (currently marked PLACEHOLDER) several swimming pathways, both male and female, are chopped off short. Quest materials and dialog for Teldra the Recruiter Revamp and integration of adult materials (the "booty call" PID stuff) into ToB ToB friend talks (still on the drawing board - may be very short (3) for the initial beta release.) Definitely not yet under control = marking all pathways with appropriate c-aranintimate registration - right now, there are plenty of places where you can kiss the lad (or do a heckuvu lot more) and it doesn't register to influence other talks. Stuff to ask Beta testers to do when the beta is available: Pathway Check - as a male PC, is there any place where a gender check has been missed, and suddenly a male PC has Aran's hand exploring his pert breasts? As a female PC, is there any place in the friendship talks where there should be options for the female PC to swing the conversation into a flirtation/lovetalk? When does the Girdle of gender-Bender not get checked for and his reaction modified? Female PCs - is there any place where he goes from 0 to 60mph in less than two lines, unasked? [PC] "Heya. How are things" > [ARAN] (His rough cheek presses close to yours.) This is a real concern with ESL, too. Subtlety and language play does not always translate well. Pre-tester reported a good "negative" - some of the wordy back-and-forth banters are too much where they are leading into action with an NPC. Many of them could be controlled for player enjoyment by adding PC responses to the initial Aran statement, so when he gets rolling with several NPCs PC could just say "TO BATTLE!" and the rest of the sequence would be dropped. That would match the "silencer" action of PID. In Adult-Land, the creation of having many different encounters and trying to make them unique used randomness extensively. Are there pathways that have ended up missing the opportunity to just hold hands? just kiss? Say "no"? Vamp him? Jump his bones? Tell him to f*** off? In Friendship-Land, does he react well enough to conditions to maintain interest for PC? Some ideas that will need to wait until after beta release; Traification will help cut codebloat/size dramatically, especially as I will be using the same master ,tra file for SoA and ToB. And help with spellchecking. But I am still tinkering, and don't want to mess with .tra yet. ToB Romance Pathway. I scrapped the whole run, and am starting over. It was all angst, no fun. Life is too short to be constantly depressed. So much detail, yet so many things that could be extended... the problem with being a hack amateur writer is there is no real edit/revision in the proper sense. Less is often more, but here, more is more and more and more.... luckily, I only have myself to please All those ideas about using the new inn as adventure initiation need to be set aside for a bit. resolution talks for romance in SoA (right now there are the standard Tree of life, but I haven't tackled the big "R Y T 1" finale. has to happen before beta, but will definitely need to be revised after feedback. Currently, when you ask him about the relationship, the player can create "revisionist history", changing the variables. This probably will stay in for the beta, so that when a playtester finds something that loops or doesn't like the way things are going, they have an additional way of changing stuff to new settings without using the console. So, backup of current dialog files, decompiled via DLTCEP/WeiDU for troubleshooting/recheck, as of 08.28.2011 deprecated - please follow on www.github.com Notes to file under "never do this" - or at least recheck 1. WeiDU "unterminated comment" is the most frustrating thing ever to recheck - and it is not WeiDU's fault. It is entirely PEBCAK. I have started using both JEdit and NotePad++ auto-completion to make sure ( has ), [ has ], and most of all, there is no /* /* */ */ One useful regexp I found was \/\*.+\/\* very useful for finding where block commenting as taken a turn for the bizzare. I have given up on single line // commenting, finding it too easy for my non-programmer brain to forget that a newline in there is a PITA. 2. I like the use of a simple standard numbering of added states, a.k.a. a1 to a3799, but when working with multiple files make sure you have a master list that you keep up to date. That way you don't end up with a mess when you go back and mass-replace HAVE_A_NEW_BRANCH with a3500, only to find out the master number is already at a3770. With my memory challenges, the conversion serves as a re-check for pathway, making sure that a3770 is actually matching conversational flow, but that only works when you are very careful with your record-keeping. Of course, most NPCs don't require this level of OCD, as weidu accepts MY_YOU_LOOK_GOOD as a state label. In Aran, though, I'd be very likely to write that as a state label multiple times in multiple places. 3. I am now a big fan of the "compile early and often". It has been hard with Aran, as there are so many places where dialog is crosslinked. But I seriously am happy with WeiDU and DLTCEP compilation after every blasted added talk, if necessary, even if it is probably not needed. + +, missing tildes, ~~~, etc. all can be searched and fixed in a good programmer's editor, but something always seems to make it through that process. Nothing more frustrating than having a file that compiles, another file that compiles, merging them into a master file, and then having "unterminated comment" be the bane of your existence for a 4 hour modding session...
  19. No time to type much; will fill in more details later. Short course: Timers are set for FTs, LTs, NPC-Initiated flirts. Staggering content so they don't bunch up is relatively simple... until you give players choices on how long the timers work. Unsolvable problem in the long run, as starting/stopping flirts, starting/stopping romances, and talks that require specific conditions to fire will all throw them off, and the engine itelf seems to like to randomly wait much longer than the actual established timer (observation only, not proven). But, a partial solution, coded and installed in Aran's latest pre-Beta stuff: set everything up using OUTER_SET depending on the player choice. in c-aran.baf CODE /* ROMANCE TALKS */ /* * Romance Match and Initiation (He is not picky...) * One new thing here - Aran is ok if a friend switches genders - * but not so much on the romance side. So, we add a blocking variable * to make sure nothing progresses while that silly Girdle is in place. * He can have some special lines to play during the FT sequence on that. */ IF Global("c-aranmatch","GLOBAL",0) // Not evaluated Gender(Player1,FEMALE) // Player1 is female InParty(Myself) // Aran is here !StateCheck(Myself,CD_STATE_NOTVALID) // Aran is ok !StateCheck(Player1,CD_STATE_NOTVALID) // Player1 is ok !HasItemEquiped("belt05",Player1) // Girdle of sex change not on Player1 THEN RESPONSE #100 // 100% of the time SetGlobal("c-aranmatch","GLOBAL",1) // Matched SetGlobal("c-aranrom","GLOBAL",1) // Aran is interested END /* Berelinde: Please consider staggering your flirts and your dialogues. Flirts are nice when they break up long stretches between LTs. * cmorgan: OK, great idea - let's make it really complicated, and base the first timer on the player's choice of overall speed of progress... */ IF Global("c-aranmatch","GLOBAL",1) // Matched Global("c-aransetupromtimers","GLOBAL",0) // Not evaluated GlobalGT("c-aranfriendbg2","GLOBAL",5) // FT 3 has played Gender(Player1,FEMALE) // Player1 is female InParty(Myself) // Aran is here !StateCheck(Myself,CD_STATE_NOTVALID) // Aran is ok !StateCheck(Player1,CD_STATE_NOTVALID) // Player1 is ok !HasItemEquiped("belt05",Player1) // Girdle of sex change not on Player1 THEN RESPONSE #100 SetGlobal("c-aransetupromtimers","GLOBAL",1) RealSetGlobalTimer("c-aranromtimer","GLOBAL",%choseninitialrom%) // Minimum Real Time until first LT RealSetGlobalTimer("c-aranflirttimer","GLOBAL",%choseninitialflirt%) // Tee up flirt timer END in setup-aranw.tp2 CODE OUTER_FOR( aran_timer_choice = 0; ~%aran_timer_choice%~ STRING_COMPARE_REGEXP ~^[12]$~; )BEGIN PRINT ~Set Talk and Flirt Timers [1] Install Default Timers [2] Customize Timers Please type 1 or 2 and press enter.~ ACTION_READLN aran_timer_choice END // of O_F ACTION_IF ("aran_timer_choice" = 1) THEN BEGIN /* .ids patching with player choice: set talk timers */ APPEND ~gtimes.ids~ ~3600 ARAN_FTT~ APPEND ~gtimes.ids~ ~3600 ARAN_LTT~ APPEND ~gtimes.ids~ ~3600 ARAN_FLIRT~ PRINT ~Speed: minimum 1 hour real time between dialogues (Default, recommended)~ OUTER_SET choseninitialrom = 2400 PRINT ~Initial Lovetalk offset by 40 minutes~ OUTER_SET choseninitialflirt = 1200 PRINT ~Initial NPC-Initiated Flirt offset by 20 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start hourly FT, NPC Flirt 20 minutes later, and RT 20 minutes after that, then 20 minutes later the next FT fires. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits.~ END ACTION_IF ("aran_timer_choice" = 2) THEN BEGIN PRINT ~Select Aran's Talk timers:~ PRINT ~Please choose one of the following: [1] approximately 1 hour real time minimum between friendship dialogues (recommended, default) [2] approximately 15 minutes real time minimum between friendship dialogues [3] approximately 30 minutes real time minimum between friendship dialogues [4] approximately 45 minutes real time minimum between friendship dialogues [5] approximately 1 hour 30 minutes real time minimum friendship between dialogues [6] approximately 2 hours real time minimum between friendshipdialogues~ OUTER_SPRINT ~friendshiptimer~ ~placeholder_value~ OUTER_WHILE (!(IS_AN_INT ~friendshiptimer~) OR (~friendshiptimer~ > 0x6) OR (~friendshiptimer~ < 0x1)) BEGIN PRINT ~Please type 1, 2, 3, 4, 5 or 6 and press enter.~ ACTION_READLN ~friendshiptimer~ END ACTION_IF ("friendshiptimer" = 1) THEN BEGIN APPEND ~gtimes.ids~ ~3600 ARAN_FTT~ APPEND ~gtimes.ids~ ~3600 ARAN_LTT~ APPEND ~gtimes.ids~ ~3600 ARAN_FLIRT~ PRINT ~Speed: minimum 1 hour real time between dialogues (Default, recommended)~ OUTER_SET choseninitialrom = 2400 PRINT ~Initial Lovetalk offset by 40 minutes~ OUTER_SET choseninitialflirt = 1200 PRINT ~Initial NPC-Initiated Flirt offset by 20 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start hourly FT, NPC Flirt 20 minutes later, and RT 20 minutes after that, then 20 minutes later the next FT fires. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits.~ END ACTION_IF ("friendshiptimer" = 2) THEN BEGIN APPEND ~gtimes.ids~ ~900 ARAN_FTT~ APPEND ~gtimes.ids~ ~900 ARAN_LTT~ APPEND ~gtimes.ids~ ~900 ARAN_FLIRT~ PRINT ~Speed: minimum 15 minutes real time between dialogues~ OUTER_SET choseninitialrom = 600 PRINT ~Initial Lovetalk offset by 10 minutes~ OUTER_SET choseninitialflirt = 300 PRINT ~Initial NPC-Initiated Flirt offset by 5 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start 15 minute FT, NPC-initiated Flirt 5 minutes later, and RT 5 minutes after that, then 5 minutes later the next FT. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits... especially when you run out of timered content!~ END ACTION_IF ("friendshiptimer" = 3) THEN BEGIN APPEND ~gtimes.ids~ ~1800 ARAN_FTT~ APPEND ~gtimes.ids~ ~1800 ARAN_LTT~ APPEND ~gtimes.ids~ ~1800 ARAN_FLIRT~ PRINT ~Speed: minimum 30 minutes real time between dialogues~ OUTER_SET choseninitialrom = 1200 PRINT ~Initial Lovetalk offset by 20 minutes~ OUTER_SET choseninitialflirt = 600 PRINT ~Initial NPC-Initiated Flirt offset by 10 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start 30 minute FT, NPC-initiated Flirt 10 minutes later, and RT 10 minutes after that, then 10 minutes later the next FT. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits... especially when you run out of timered content!~ END ACTION_IF ("friendshiptimer" = 4) THEN BEGIN APPEND ~gtimes.ids~ ~2700 ARAN_FTT~ APPEND ~gtimes.ids~ ~2700 ARAN_LTT~ APPEND ~gtimes.ids~ ~2700 ARAN_FLIRT~ PRINT ~Speed: minimum 45 minutes real time between dialogues~ OUTER_SET choseninitialrom = 1800 PRINT ~Initial Lovetalk offset by 30 minutes~ OUTER_SET choseninitialflirt = 900 PRINT ~Initial NPC-Initiated Flirt offset by 15 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start 45 minute FT, NPC-initiated Flirt 15 minutes later, and RT 15 minutes after that, then 15 minutes later the next FT. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits... especially when you run out of timered content!~ END ACTION_IF ("friendshiptimer" = 5) THEN BEGIN APPEND ~gtimes.ids~ ~5400 ARAN_FTT~ APPEND ~gtimes.ids~ ~5400 ARAN_LTT~ APPEND ~gtimes.ids~ ~5400 ARAN_FLIRT~ PRINT ~Speed: minimum 1 hour 30 minutes real time between dialogues~ OUTER_SET choseninitialrom = 3600 PRINT ~Initial Lovetalk offset by 60 minutes~ OUTER_SET choseninitialflirt = 1800 PRINT ~Initial NPC-Initiated Flirt offset by 30 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start 90 minute FT, NPC-initiated Flirt 30 minutes later, and RT 30 minutes after that, then 30 minutes later the next FT. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits... especially when you run out of timered content!~ END ACTION_IF ("friendshiptimer" = 6) THEN BEGIN APPEND ~gtimes.ids~ ~7200 ARAN_FTT~ APPEND ~gtimes.ids~ ~7200 ARAN_LTT~ APPEND ~gtimes.ids~ ~7200 ARAN_FLIRT~ PRINT ~Speed: minimum 2 hours real time between dialogues~ OUTER_SET choseninitialrom = 4800 PRINT ~Initial Lovetalk offset by 80 minutes~ OUTER_SET choseninitialflirt = 2400 PRINT ~Initial NPC-Initiated Flirt offset by 40 minutes~ PRINT ~So if you are in a romance with him and never stop the romance, after the lovetalks start (after friendship talk 3), the timer sequence will start 120 minute FT, NPC-initiated Flirt 40 minutes later, and RT 40 minutes after that, then 40 minutes later the next FT. Please note that the timers are not exact, and variations within the game may mean bursts of activity followed by long waits... especially when you run out of timered content!~ END END and when compiling the two scripts that have blocks like this in the .tp2, farther down, use CODE COMPILE EVALUATE_BUFFER ~aranw/baf/c-aran.baf~ // override script ACTION_IF FILE_EXISTS_IN_GAME ~ar6111.are~ THEN BEGIN // ToB dialog file PRINT ~Installing ToB scripts...~ COMPILE EVALUATE_BUFFER ~aranw/baf/c-arn25.baf~ // joined ToB script The result of timer choices are hidden in the PRINT stuff, detailed out for anyone who looks at the .DEBUG file.
  20. Troubleshooting a Stutter or Constant PID (Player-Initiated-Dialog, or "Force Click") (If you are a player who just wants the troubleshooter and how to use it, skip to post #2!) The problem It happens. Your NPC looks nice, and installs fine. But suddenly, out of nowhere, he starts constantly coming up to the PC and trying to initiate conversation. Or he keeps bugging another NPC, over and over again, without actually saying anything, bogging down your game. Or he stops every few seconds, fidgets as if about to say something, and then moves on. Games slow down. Bleh. This is usually caused by a script block being triggered, but not being able to close. The ultimate "get the annoying stutter" would be to have a block that looks like this in your mod: IF InParty(Myself) THEN RESPONSE #100 StartDialogNoSet(Player1) END This block always fires if the dude running the script is in the party. And with no conditions, it runs every script cycle. So you get the ultimate Noober/Neeber character, and lots of hate mail. Your NPC starts initiating conversations with PC non-stop, for as long as his script is active, everywhere... the ultimate kid sister following you around, tugging on your sleeve every second or so. Common reasons that this might happen in your mod: Typos in timer or var. The block might be triggering on "my_variable" but then closing on "my_vraiable" Differences in variable scope. The block might be triggering on "myvar","LOCALS" and trying to close on "myvar","GLOBAL" Another mod interfering. Mod B may have come along and put something that changes either script or dialog or DV or something that results in your code not working as tested. Which can lead us to... Weighting. The block may be evaluating true, but can't resolve because the dialog or action that it is trying to launch is being blocked by another. A simple example in a dialog file, setting up for a script stutter: IF ~InParty("cmorgan")~ THEN BEGIN heya SAY ~[CMORGAN] I am conditioned broadly, so I will always evaluate true when the script tries to look for what it wants. I take priority each and every time, no matter how hard you try to clear me. Nothing that weights below me will ever be called by the script - I run instead.~ IF ~~ THEN EXIT END IF ~Global("myvar","GLOBAL",1)~ THEN BEGIN what_the_script_is_looking_for SAY ~[CMORGAN] I am conditioned narrowly, so I will only evaluate true when a very specific global is set. The script looking for me starts at the top of the dialog and works downwards until it finds me... unless it finds something else that is true, and fires it instead.~ IF ~~ THEN DO ~SetGlobal("myvar","GLOBAL",2)~ EXIT END In this configuration, if you wanted to turn the narrowly-conditioned block into a showstopper, just leave off the DO, and voila - that line, even though narrowly conditioned, just became an "always true" when the variable is set to 1. And anything downstream of it will never play. reminder - - scripts evaluate top to bottom, stopping when something evaluates true, and jumping back to the top again (unless you add Continue() ) - dialog files are called by scripts or the "hidden" scripts inside the engine, and evaluate top down... except when you set up WEIGHT that changes the evaluation order, making a talk rise to the top of the evaluation order (or lowering it, whichever you set - you can manipulate the thing to top or bottom of the stack of everything that has been installed before it. After that, other mods can do the same, but the newcomer can change things; you can't). - dialog TRANSITIONS are evaluated BOTTOM UP. So, while the state is evaluated from the top of the file down, once a state is called, the transitions are checked from the bottom card in the deck to the top one, and the first one is taken - or in the case of REPLY, every statement that returns true is displayed. The Challenge On your own install, this is a PITA to troubleshoot, but it is eminently do-able. You have full access to your own unique install, you have NI, DLTCEP, WeiDU, text editors, ways of searching all of your project at once for matching variables, and the knowledge of your own code. But. When it hits the field, all of this changes. Because every modded install is slightly different, you can't just grab a .bcs or .dlg file from a player experiencing a problem and decompile it yourself on your own install and have it help. You can do some of the investigation with tools like Vlasák's Variable Checker from The Black Wyrm's Lair, which features savegame compares, or manual comparisons with WeiDu and NI and DLTCEP - in this case, tools like CamDawg's Debugger is not as useful because we are not dealing with possible file corruption or problem areas/assignments, we are dealing strictly with script evaluation. In this day and age of BWP and BiG World installs, troubleshooting stutters and weighting issues and such becomes an impossible task, because it is 99% likely that even if you replicated the install as closely as possible, it would never get troubleshot, for a very simple reason - limited modding time, and huge amounts of time installing and uninstalling to replicate. Even more importantly, all of these tools have the disadvantage of working from a snapshot instead of real-time, on the actual install having the problem. So, either have a player .zip up between 2 and 5 GB of their entire game folder so you have their entire install and pay for the upload/download, troubleshooting on their actual game, or ... The Solution The Bigg came up with a reasonable way of checking to see what script block is firing but failing to resolve itself mod to find the problem. Berelinde adapted it and used it to troubleshoot Gavin. And now I have shamelessly copied and pasted and modified it to work with Aran. Basically, all it does is take whatever in-game .bcs files you point it to, and look for the RESPONSE section, number each one, and set up a DisplayStringHead() on PC. in the old days, we did this manulaly, which was horrible. It was even more horrible when it was just manually. Nothing like numbering and identifying each and every block and dialog, then having to go back and remove all that before giving it out... Now, through WeiDU-foo, you can have a user experiencing the problem go back to an earlier save, install a mod, run through to the problem, and report the number. Eventually, someone will whip up a good way of decompiling the resulting file and sending you the info in text, but for now, the safest thing to do is have the player read off which block of which .bcs is firing in the dialog window, and have them decompile and send you the problem file. Then have them uninstall the mod. Good news - it can go on the very end of the install with no problems! Here is the base code: BACKUP ~aran_troubleshoot/backup~ AUTHOR ~berelinde~ BEGIN ~Troubleshooting Aran's stutter with Shamelessly Re-Appropriated Code from Gavin~ COPY_EXISTING ~c-aran.bcs~ ~override~ // be sure to change the file names to point to the relevant ones ~c-arand.bcs~ ~override~ ~c-ar01.bcs~ ~override~ ~baldur.bcs~ ~override~ // use either baldur.bcs or baldur25.bcs whether you're in SoA or in ToB. ~player1d.bcs~ ~override~ ~c-arn25.bcs~ ~override~ ~c-arn25d.bcs~ ~override~ SET x = 0 - 1 DECOMPILE_BCS_TO_BAF REPLACE_EVALUATE ~\(RESPONSE #[0-9]+\)~ BEGIN x += 1 END "\1 ActionOverride(Player1,DisplayString(Myself,~Running block %x% of %SOURCE_RES%.BCS~))" COMPILE_BAF_TO_BCS So, to copy it and use it yourself, you just need to identify what scripts you touch and swap them in the .tp2.
  21. So, what is this "beta" thing? Officially, a "beta" is a version that has most of the good stuff already in place. According to wikipedia, "Open betas serve the dual purpose of demonstrating a product to potential consumers, and testing among an extremely wide user base likely to bring to light obscure errors that a much smaller testing team may not find." In this case, with the exception of the adult materials in the female romance portion, most of the content prior to tweaking/installation is already on the forums. There are some surprises, too, as installation and pre-alpha and alpha testing sometimes showed places where some tweaking needed to happen. BUT - I am releasing this as a check-up on how successful the code on the forums translates to actual play. The best dreams sometimes don't translate well into reality, and that is what we are going to find out here. What is missing? The major SoA quest is still under construction, and is not implemented. ToB has content, but very few LTs or FT's, and no banters (They stank - I'm redoing them). The LT sequence gets you up close to the Big Question, then drops you cold - there are several ways to make this a successful arc, and I am seeking feedback from the beta test before adding (writing) the final talks. Some of the swimming and bathing responses, both male and female, are currently marked with PLACEHOLDER while I track down better ways of entertaining more by saying less. So, what is in? Rough creature voicing and music for talks. Most of the SoA FT series. Most of the SoA LT series. Flirts, both PC and NPC initiated. (Hundreds. Literally hundreds. Randomized and stratified by your romance level.) Interjections. Lots of them. And the ability to tell him to shut up if he gets too mouthy. SoA Banters with all BioWare Canonical NPCs. Scroll creation. Moonlit Swordfights, male or female. Seduction, and a huge interactive tree of potential nookie in various forms (hopefully only found in female PCs without the girdle of gender-bender). Easter Eggs. The "click on me multiple times and something new probably happens at least twice, and often up to 5 or more times for the same worded reply" kind, not the one that hangs out with chocolate bunnies (Nythrun, i miss you!). Multiple replies to the same question both over time and dependent on area, time, friendship progression and/or lovetalk progression, or just plain asking him for advice in each and every area of SoA and ToB. Sometimes multiple times. Really, a huge amount of the content is PID-driven. A new inn with several interacting characters, and a minor quest if you keep on going back and talking to the bartender. Stories of war, love, and otherwise. Colorful and inventive swearing at inopportune moments. Flexible customization of Aran's stats/role, equipment, etc. ToB includes summoning, unsummoning, and sending him to an inn. You can even send him to Hell. Well, your little pocket corner of it, unless you are killing the dude. I think you can even send him "home" to Amn, though he'd sy home is wherever you are. ToB includes the "important" canonical talks; SoA the same (Tree of Life, Wraith Talk, Etc., Etc.) SoA includes sending him along to somewhere else, or having him stay put where you leave him - without breaking the romance, if you are so inclined. Watcher's Keep materials on both SoA and ToB. Awareness of several mod-added NPCs, whether in dialog or when they try to initiate PID with him instead of PC doing the initiating. Even some awareness and use of kit materials if you add the AranAware sub-mod at the end of your installation. Drunk talks. Multiple. Get him drunk once or twice, perhaps even three times. That is, if you can stand the belching. An occasional odd talk out of the blue, or green, or dark, whatever your current sky looks like. What if I really don't want to read bad purple-prose amateur crappy fanfic 'erotic' depictions? Don't play as a female. Or, play as a female, and shut him down when he tries to flirt - don't romance him. While every step of the romancing talks has exits and "just friends" and such, one of the goals of the beta is to discover places where you expect Aran to hold hands like a good little boy, and instead he starts taking his clothes of (or worse, starts trying to take yours off). That, and letting cmorgan know when the depiction just plain sounds as fun as watching paint dry. The standard lovetalks and flirts are not going to get you into heavy territory unless you have asked to go there through your replies, at least supposedly. The PID is the biggest access point, so if you flirt with him a lot or if you ask him to step around the corner with you, expect that he will have busy hands and a lecherous intent. Of course, you can always say no... sometimes he might get mad and go off in a snit for a day or so, and then you get to have a little spat. Or apologize to him. Or make him apologize to you. But it is darned hard to get through his thick skin enough that he drops the whole thing. Why should I try this out and risk a bug messing up my game? It is darned unlikely that there is a game-breaking bug. That was for the pre-alpha and alpha testing. The most likely scenario is some kind of weighting in an install with other mods, and a worst case scenario might be just kicking him out of the party; the good news with Aran in Beta-Land is that he comes with a PID that allows you to literally change history and reset globals by just talking to him. Running into an annoying stutter in a lovetalk? Break up with him. In a friend talk? Kick him out. Plus, I have a troubleshooting mod ready to go that the bigg came up with and berelinde pioneered, which proved extremely successful at tracking stuff in Gavin. But why try him out now? Well, primarily, feedback. If you see stuff that is just no fun, you get to suggest changes and watch me implement them if I can. Worst-case scenario, you tell him to shut up, and you have a relatively quiet configurable Dual-Classable that can create scrolls. Why would I not want to install this, but wait for the full release? Oh, thousands of reasons. Mod development can break games accidentally, though this one is unlikely to. And installing this on a BWP, well, it has never been done, so... who knows what will really happen? You could not be thrilled with the writing you see on the forums, or decide he isn't worth the hassle of seeing an occasional line where he just says "PLACEHOLDER" or "Blighted hells. Got naught to say. Must be a writer's strike." That can spoil the immersion for some folks - Shed's mods used this idea, and I like it, but not everyone does. You could be happier playing a finished product, and have the patience to wait at least 6 months (probably more realistically 9, or even a full year at next G3 Anniversary) for other people to wade through oddities like "Hey, I said I wanted Aran to kiss me, and he jumped into the sack and had his way with me, and then in the next dialog said he would love to explore more than just a kiss someday... yuch!" and for me to fix them. You could be a happy lurker who is not really into giving feedback, and not want to waste your gaming time when you could be running an All Elven Retrospective Party, with Haldimir, Kivan, Xan, Coran, PC, and Jaheira. (This is a legitimate excuse. For me, it is the ever-wished-for-but-never-attempted Aerie-Imoen-Jaheira-Saerileth-Tashia-PCPaladin runthrough, with multi-romance edits and reverse-engineering of the shutdowns. I am going to try that someday, just so I can write a girl's-gone-wild conflict banter and the ultimate juvenile male fantasy sequence.) You could be so hooked on the upcoming Mass Effect 3 and Skyrim that you just have to read the pre-release info every day instead of trying out a beta f a mod (f course, just remember that when ME3 hits the shelves, this boy right here is going to be definitely unavailable for a few days...) Where can I see if you are actually doing any work, instead of sitting back and watching me mess about? The forums, and actual integration of changes into the master copy at https://github.com/cmorganbg/Aran-Whitehand . Hey - I'm serious. If I just want to know what FriendTalks and Lovetalks are in, why won't you just list them? Here you go: SoA Talkity-talk Talks /* BG2 FriendTalk 1 c-aranfriendbg2 = 1 : Not Just Another Quasi-Invincible Band Of Protagonists */ /* BG2 FriendTalk 2 c-aranfriendbg2 = 3 : "My Pal the Shield Wall", or, merits of Heavy Metal (Whitesnake) vs Alternative (Feist) */ /* BG2 FriendTalk 3 c-aranfriendbg2 = 5 : "The Price of Fame", or, Whoa - *that* <CHARNAME>? Sux to be you, pal. */ /* BG2 FriendTalk 4 c-aranfriendbg2 = 7 : Mongo But Pawn In Great Chess Game of Life? */ /* BG2 FriendTalk 5 c-aranfriendbg2 = 9 : "Irresistible Forces and Immovable Objects", or, is the pen really mightier than the sword, or does he just have a better PR firm? */ /* BG2 FriendTalk 6 c-aranfriendbg2 = 11 : "Creative Culinary Conundrums", or, Whaddaya like to eat, 'cause I make this mean curry... */ /* BG2 FriendTalk 7 c-aranfriendbg2 = 13 : "Alternate Paths to Sun Tsu", or, tactics are fun, but sometimes you just gotta whack 'em. */ /* BG2 FriendTalk 8 c-aranfriendbg2 = 15 : "Warning - Objects Are Closer Than They Appear", or, why you want to check carefully behind your target area before firing that arrow. */ /* BG2 FriendTalk 9 c-aranfriendbg2 = 17 : "Bhallspawn, Shmallspawn. Meh.", or, Gods and Monsters. */ /* BG2 FriendTalk 10 c-aranfriendbg2 = 19 : "Weapons Practice for Fun and Profit", or, never bet with a Sicilian when death is on the line. */ /* BG2 FriendTalk 11 c-aranfriendbg2 = 21 : "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! */ /* BG2 FriendTalk 12 c-aranfriendbg2 = 23 : "What's under all that Armor, Anyways?", or, take it all off, baby - take it all off. Emotionally, dude[ette] - jeeze, get a life. */ /* BG2 FriendTalk 13 c-aranfriendbg2 = 25 : "So once there were three men, sitting around a fire. And one of them got up and said..." TrailTalk, FR style */ /* BG2 FriendTalk 14 c-aranfriendbg2 = 27 : Bonus Round - Simple Word States, Maximum Effect: The Teacher's Workroom. */ FT 10 sets up a "shoot hoops FR-style" for Male PCs (no way of turning it into a romance) and a "moonlit sparring" encounter for female PC's (can end up having a flig with him even if not in a romance, or simply fight him for fun). This is added "scenery' content, and does not reset the FT timer. Perhaps is should? Separate UnderDark Talks: /* SoA UnderDark FriendTalk 1 : Nightmares on Elm Street */ /* SoA UnderDark FriendTalk 2 : Moving Bowels */ /* SoA UnderDark FriendTalk 3 : Don't Look Now, but your Isaiah 2:19 is showing... */ /* SoA UnderDark FriendTalk 4 : Weather forecast for tonight... dark. (George Carlin) */ /* SoA UnderDark FriendTalk 5 : "I believe that forgiving them is God's function. Our job is to arrange the meeting." ("Stormin'" Norman Schwarzkopf)*/ at the 30 minute timer, talks cover 7 hours of SoA outside of underdark and 2 hours 30 minutes in underdark. at the 60 (default), of course, 14 hours outside and 5 hours drow-ing. For the female PC, these play out as well if the PC doesn't shut down the romance: /* BG2 Love Talk 1 : Mary Chapin Carpenter - I Take My Chances : c-aranbg2rom = 1 > 2 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 2 : Dixie Chicks, Ready To Run : c-aranbg2rom = 3 > 4 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 3 : Queen - Somebody To Love, A No-Talk Lovetalk - or an extended Aran-Initiated Flirting Opportunity : c-aranbg2rom = 5 > 6 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 4 : ABBA - Name of the Game : c-aranbg2rom = 7 > 8 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 5 : Billy Joel - You may be Right/We Didn't Start The Fire mixology : c-aranrombg2 = 9 > 10 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 6 : ABBA - Take A Chance On Me : c-aranrombg2 = 11 > 12 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 7 : I want you - do you want me? : c-aranrombg2 = 13 > 14 c-aranromtimer,ARAN_LTT */ /* BG2 Love Talk 8 : Police - Every Little Thing She Does Is Magic : c-aranrombg2 = 15 > 16 c-aranromtimer,ARAN_LTT */ Need to finish romance arc for SoA; with the huge, way-over the top flirting possibilities, the occasional non-sequential scenery talks, the interjections, and the banters, it is a darned good thing much of that can be shut off via PID. The adult materials (including extensions to the streams, baths, garden, Inn, the "booty call through PID in a romance" and "the Romantic Encounters sparked from PC response in FT or LT") are almost finished, though it has been draft after draft and I'm less than thrilled - but hey, I wanted a challenge.
  22. in F:\TEST1\aranw\baf\c-arn25d.baf CODE /* NightTalk: Stars, Constancy Thereof */ IF Global("c-tobnightone","GLOBAL",0) OR(2) Global("c-arangoaded","GLOBAL",0) Global("c-arangoaded","GLOBAL",6) !Global("c-arannightvisit","GLOBAL",1) TimeofDay(NIGHT) AreaType(OUTDOOR) InParty(Myself) !StateCheck(Player1,CD_STATE_NOTVALID) !StateCheck(Myself,CD_STATE_NOTVALID) THEN RESPONSE #100 SetGlobal("c-tobnightone","GLOBAL",1) StartDialogueNoSet(Player1) END in F:\TEST1\aranw\dialog\c-arantobdialog.d CODE /* NightTalk: Stars, Constancy Thereof */ IF ~Global("c-tobnightone","GLOBAL",1)~ THEN BEGIN a4249 SAY ~[ARAN] Now that be a sight. Those stars seem to cover th' whole sky, or what we can see o' it.~ ++ ~[PC] I prefer to keep my eyes focused nearer to reality. The only good use for starlight is exposing your enemies when they are stupid enough to move across open terrain without cover.~ + a4250 ++ ~[PC] They do have a way of reminding us that some things never change. All we do, all we attain, all we suffer.... they just keep shining, completely untouched.~ + a4251 ++ ~[PC] They are very cold. Almost eyes, watching us, judging us, evaluating us.~ + a4251 ++ ~[PC] I think they are like small campfires, a host of ones like ours, warm in the night.~ + a4251 + ~Gender(Player1,MALE)~ + ~[PC] I think they seem like they are mocking me. Kind of like women, all shiny and sparkley, yet cold and distant.~ + a4251 + ~GlobalGT("c-aranrom","GLOBAL",0) GlobalLT("c-aranrom","GLOBAL",3) Gender(Player1,FEMALE) !HasItemEquiped("belt05",Player1)~ + ~[PC] They seem... romantic, somehow. Always there, no matter what.~ + a4251 + ~RandomNum(5,5)~ + ~[PC] They certainly have one thing going for them. They don't stand around gawking, wasting time, and blathering.~ + a3188 /* c-aranshutup55 */ + ~RandomNum(5,4)~ + ~[PC] They certainly have one thing going for them. They don't stand around gawking, wasting time, and blathering.~ + a3189 /* c-aranshutup56 */ + ~RandomNum(5,3)~ + ~[PC] They certainly have one thing going for them. They don't stand around gawking, wasting time, and blathering.~ + a3190 /* c-aranshutup57 */ + ~RandomNum(5,2)~ + ~[PC] They certainly have one thing going for them. They don't stand around gawking, wasting time, and blathering.~ + a3191 /* c-aranshutup58 */ + ~RandomNum(5,1)~ + ~[PC] They certainly have one thing going for them. They don't stand around gawking, wasting time, and blathering.~ + a3192 /* c-aranshutup59 */ END IF ~~ a4250 SAY ~[ARAN] Aye. Spoken like a true warrior. Although all killin' an' no imagination probably leaves things a mite bit dull, don't you think?~ ++ ~[PC] I don't know. There are so many fascinating and different ways to kill. Why, just think of all the possibilities acid has for creative application.~ + a4252 ++ ~[PC] True enough. I suppose a little time to see the sights is not a bad way to relax.~ + a4251 + ~OR(3) Global("c-aranrom","GLOBAL",0) Global("c-aranrom","GLOBAL",3) HasItemEquiped("belt05",Player1)~ + ~[PC] I have plenty of other thoughts to occupy my mind right now. Some of them are rather unpleasant, but so far we have come out on top. I will sleep as well as can be expected.~ + a4254 + ~GlobalGT("c-aranrom","GLOBAL",0) GlobalLT("c-aranrom","GLOBAL",3) Gender(Player1,FEMALE) !HasItemEquiped("belt05",Player1)~ + ~[PC] I have plenty of other thoughts to occupy my mind right now. Some of them are rather unpleasant, but so far we have come out on top. I will sleep as well as can be expected.~ + a4253 + ~GlobalGT("c-aranrom","GLOBAL",0) GlobalLT("c-aranrom","GLOBAL",3) Gender(Player1,FEMALE) !HasItemEquiped("belt05",Player1)~ + ~[PC] You might be right. Sometimes it is nice just to sit and think.~ + a4253 + ~RandomNum(5,5)~ + ~[PC] Given the choice between watching the stars, listening to you, and committing ritual suicide, I am pretty sure ritual suicide comes out a winner.~ + a3188 /* c-aranshutup55 */ + ~RandomNum(5,4)~ + ~[PC] Given the choice between watching the stars, listening to you, and committing ritual suicide, I am pretty sure ritual suicide comes out a winner.~ + a3189 /* c-aranshutup56 */ + ~RandomNum(5,3)~ + ~[PC] Given the choice between watching the stars, listening to you, and committing ritual suicide, I am pretty sure ritual suicide comes out a winner.~ + a3190 /* c-aranshutup57 */ + ~RandomNum(5,2)~ + ~[PC] Given the choice between watching the stars, listening to you, and committing ritual suicide, I am pretty sure ritual suicide comes out a winner.~ + a3191 /* c-aranshutup58 */ + ~RandomNum(5,1)~ + ~[PC] Given the choice between watching the stars, listening to you, and committing ritual suicide, I am pretty sure ritual suicide comes out a winner.~ + a3192 /* c-aranshutup59 */ END IF ~~ a4251 SAY ~[ARAN] They sure be beautiful. So powerful, shinin' down like that. An' so far out o' reach.~ IF ~OR(4) Global("c-aranrom","GLOBAL",0) Global("c-aranrom","GLOBAL",3) HasItemEquiped("belt05",Player1) Gender(Player1,MALE)~ THEN GOTO a4254 IF ~GlobalGT("c-aranrom","GLOBAL",0) GlobalLT("c-aranrom","GLOBAL",3) Gender(Player1,FEMALE) !HasItemEquiped("belt05",Player1)~ THEN GOTO a4253 END IF ~~ a4253 SAY ~[ARAN] You know, you look right fine lit by stars an' th' moon. I can guess why there be so many worshipers o' Selune.~ ++ ~[PC] I think I want to kiss you.~ + a3915 /* FEMALE_MOON_LEADS */ ++ ~[PC] (Impulsively clasp both hands around one of his, pulling it towards you.)~ + a3916 /* ARAN_MOON_LEADS */ ++ ~[PC] I... I am tired. Have a good night, Aran.~ + a4254 ++ ~[PC] I am not Selune. But you could worship me if you like.~ + a3918 /* ARAN_MOON_MIND */ ++ ~[PC] Hey, easy on the compliments. Friends, remember? You are starting to sound all romantic and weepy.~ + a3919 /* MOON_JUST_FRIENDS */ ++ ~[PC] Talking with you here is a nice rest from all of the day's cares. But then again, lots of things besides talking can happen beneath those little twinkling lights.~ + a3918 /* ARAN_MOON_MIND */ ++ ~[PC] You are so... stupid. And pushy. Go away and leave me in peace.~ + a3866 /* FIGHT_EXIT */ END IF ~~ a4252 SAY ~[ARAN] Talos' an' Teos' Twisted Temper... Thanks a bunch, eh? Now I'll be havin' nightmares all night.~ IF ~~ THEN GOTO a4254 END IF ~~ a4253 SAY ~[ARAN] You know, you look right fine lit by stars an' th' moon. I can guess why there be so many worshipers o' Selune.~ ++ ~[PC] I think I want to kiss you.~ + a3915 /* FEMALE_MOON_LEADS */ ++ ~[PC] (Impulsively clasp both hands around one of his, pulling it towards you.)~ + a3916 /* ARAN_MOON_LEADS */ ++ ~[PC] I... I am tired. Have a good night, Aran.~ + a4254 ++ ~[PC] I am not Selune. But you could worship me if you like.~ + a3918 /* ARAN_MOON_MIND */ ++ ~[PC] Hey, easy on the compliments. Friends, remember? You are starting to sound all romantic and weepy.~ + a3919 /* MOON_JUST_FRIENDS */ ++ ~[PC] Talking with you here is a nice rest from all of the day's cares. But then again, lots of things besides talking can happen beneath those little twinkling lights.~ + a3918 /* ARAN_MOON_MIND */ ++ ~[PC] You are so... stupid. And pushy. Go away and leave me in peace.~ + a3866 /* FIGHT_EXIT */ END IF ~~ a4254 SAY ~[ARAN] Well, I'm off. Got th' first watch anyhow. Have a dream or two for me.~ IF ~~ THEN EXIT END Anything in /* */ with existing numbers ties back into the negotiation between Aran and PC for doing stuff found in adult content.
  23. Useful Variables to Troubleshoot Not all of them, just a select few that are good places to start if something goes hinkey. General Interaction Variables To Watch Way too many and too specialized, but here are some that are possible hiccups (show up in more than a few places). "c-aranfriendbg2","GLOBAL" tracks Friend Talks outside of UnderDark "c-aranfriendud","GLOBAL" tracks Friend Talks inside Underdark "c-aranfriendtob","GLOBAL" tracks Friend Talks in ToB These two are set up for the many small "scenery" one-liners or short dialogs. !GlobalTimerNotExpired("c-aransmalltalk","GLOBAL") // Timer (game-time) has never been set or has expired Global("c-silencearan","GLOBAL",0) // a PID - set "silencer" for folks who hate unsolicited comments "c-arandrunk","GLOBAL" // in a vanilla inn or The Broken Sword, intoxication greater than 50. 3 talks. Blocking timers so that they can't go off too soon, so spread them out. Mature Content Variables "c-aranpcbedding","LOCALS" cycles from 0 through 7, advancing through 8 static sex scenes. It seems pretty hard to break. Heh. I had to tempt fate, didn't I. A small subset of replies where the PC gives up control and basically says "do what you want with me however you want to" cycles through these - there is no interactivity, only text painting. "c-arankisses","LOCALS" is designed to get a semi-random sequence to work out so that each time PC initiates a PID romantic encounter the approach is slightly different and the potential outcomes are more randomized. This one is the most likely to break down due to multiple IncrementGlobal() calls - chances are, I have pathways with multiple incrementation. "c-aranintimate","GLOBAL" is the incrementing tracking var set by activity ( updates "c-aransex" ). This means whenever a meaningful(/less) physical action occurs through dialog, it should list it out. This is set up so that if a player starts down a path but finds it is too heavy, the SetGlobal() will relect the final action. It also means that in randomized sequences, the activity is registered without resetting "reality" - otherwise, one talk could be wild sex, the next just kissing, and the game would think that PC and Aran just kissed. It should only be found in DO ~action~ "c-aransex","GLOBAL" is the regulating var to tell talks what physical status the relationship has taken. It matches the values 0-4 found in c-aranintimate: c-aransex = 0 : no intimacy c-aransex = 1 : kissing c-aransex = 2 : touching + kissing c-aransex = 3 : heavy innuendo touching ("petting") c-aransex = 4 : full physical intimacy It should never be found in DO ~action~, only in triggers, and is set via .bcs incrementation based on c-aranintimate. Like in real life, you can't take back an action, so short of console use or the specific troubleshooting "what do you think about our relationship" dialogs you can't take back that action... it does not de-increment. Flirting Variables to Watch "c-aranflirtstop","GLOBAL" should be toggled to halt unwanted flirts or re-enable them if the player changes their mind. "c-aranfight","GLOBAL" is toggled by Aran on sequences where he takes offense at something (chance is usually 20% if the encounter is messing with him badly). "c-aranearlyflirt","LOCALS" Flirt SubMenu: Lightweight, Early Flirts for Impatient Players found in PID. Using this 12 times moves you immediately forward, jump-starting regular lightweight flirts, where instead of being friendly he is a little more hands-on. Basically, if a female is showing herself very interested, what red-blooded dude would wait patiently to develop things more? If PC waits rather than throws herself in his direction, then after 3 Friend Talks, "c-aranpcflirtstart","GLOBAL" sets up flirting, as long as PC has not shut down any romance (and isn't showing either Gender=Male or Gender=Female while wearing belt05). After 24 flirts on this level by either PC- or NPC-initiation, this cycles to 2 and opens up the heavy flirts. GlobalGT("c-aranflirt","GLOBAL",40) If you pass the 40 flirt mark total, whether early, lightweight, or heavy, Aran will come calling and automatically advance to "c-aranrom","GLOBAL",2. Whether or not you sleep with him, delay him, etc., you have shown serious interest. Luckily, he isn't afraid of a little running around behind other folk's back, at least at first... Romance variables To Watch "c-aranrom","GLOBAL",1 = PC is female and has not told him via PID that she doesn't want romance or flirting. PID-initiated flirting with him should turn this back on. "c-aranrom","GLOBAL",2 = PC is female and has indicated interest, currently set by one of these: PID (after some conditions are met) - Simply tell him you are interested in having a relationship that is more than friendly. Lots of flirting with him via PID or NPC-initiated. Controllable by not flirting with him and telling him you don't want to have him come up to you and flirt. A rejoining option that indicates you want to be more than friends. Several branches in SoA LT 7, SoA LT8 NPC Management: relationship check chains in most dialog files, there for testing - perhaps to be left in place. ToB Summons from Fate Spirit, and all joining-rejoining dialogs in ToB (hard to tell ToB interactions with other NPCs as less attention is paid there for most NPCs). "c-aranrom","GLOBAL",3 = PC is not in a relationship with Aran. This is set by PID, and a very very few places in dialog. "c-aranbg2rom","GLOBAL" tracks LoveTalk progress in SoA "c-arantobrom","GLOBAL" tracks LoveTalk progress in ToB (when there are some; right now, there are none.
  24. Bogstandard BioWare™ copying for the setup, but then we go slightly off the usual track for the cutscene and talk. For your own research, check LOVEDONE .d's, and HGWRA01's jumping around between all the possibles. CODE /* Master Wraith Talk. */ /* At top of c-arantobdialog.d, */ BEGIN C-ARWRTH Reminder to self - beg/bribe Peachplums for another picture... spectral fighter. CODE /* In .tp2, creature C-ARWRTH */ COPY ~aranw/portraits/peachplums_deadman.bmp~ ~override/c-aw01p3.bmp~ // Dead Mercenary portrait (Peachplums) COPY_EXISTING ~kpchap01.cre~ ~override/c-aw01p3.cre~ SAY NAME1 ~Stedd~ SAY NAME2 ~Stedd~ LAUNCH_PATCH_MACRO ~support_cre_cleanup~ */ in c-arantobdialog.d, CODE /* break in and set up the talk if in a romance */ EXTEND_BOTTOM HGWRA01 18 IF ~Global("c-aranrom","GLOBAL",2) InParty("c-aran") InMyArea("c-aran") !StateCheck("c-aran",CD_STATE_NOTVALID)~ THEN DO ~SetGlobal("c-aranlovedone","GLOBAL",6)~ EXTERN HGWRA01 c_wraith_trashtalk END /* Create the EXTERN, as we want only one of these to play */ CHAIN HGWRA01 c_wraith_trashtalk ~What of the inevitable pain you must cause to the one you love? This man, the one whom you call "Aran".~ == C-ARN25J ~[ARAN] What in Cyric's Blighted Breath do this windbag be talkin' about? You be in control o' th' bloodurges...~ EXTERN HGWRA01 24 /* draw off the romance-triggered sob stories to a new one */ EXTEND_BOTTOM HGWRA01 24 IF ~Global("c-aranrom","GLOBAL",2)~ DO ~ClearAllActions() StartCutSceneMode() StartCutScene("C-ACT218")~ EXIT END /* start the waterworks */ CHAIN IF ~NumTimesTalkedTo(0)~ THEN C-ARWRTH c_start_wraith_talk ~[C-ARWRTH] Aran? Whitehand, light a torch or somethin'. It is as dark as hells here...~ [C-ARW001] == C-ARN25J ~[ARAN] What in th' nine hells... you be dead an' buried. Someone get me some holy water right quick, eh? You were no good when you was alive, an' I don't rightly want to see you now you be dead.~ [ARAN_SOUND_HERE] == C-ARWRTH ~[C-ARWRTH] You have come up in th' world. Who is th' wench?~ [C-ARW002] == C-ARN25J ~[ARAN] Keep a guard on your tongue, bastard.~ [ARAN_SOUND_HERE] == C-ARWRTH ~[C-ARWRTH] Oho, a new lover? Stedd sees all now, Whitehand. You sorry weakling, you actually think you can keep her? Does she know?~ [C-ARW003] == C-ARN25J ~[ARAN] Shut your filthy mouth.~ [ARAN_SOUND_HERE] == C-ARWRTH ~[C-ARWRTH] Hah! She doesn't know! You remember, don't you? Th' smell of flesh burnin', th' screams of th' children...~ [C-ARW004] == C-ARN25J ~[ARAN] I did what you ordered. Bane Blight your soul, I didn't know.~ [ARAN_SOUND_HERE] == C-ARWRTH ~[C-ARWRTH] You lie, you piece of dung. You acted so high an' mighty, and then you go blindly followin' without a care or thought in th' world. Th' blood's on your hands, and those screams will haunt you past death's door. Think you will keep her precious lips close to you now, mercenary?~ [C-ARW005] == C-ARN25J ~[ARAN] Gods...~ [ARAN_SOUND_HERE] == C-ARWRTH ~[C-ARWRTH] Murderers all, we happy few. And you with th' weak stomach cryin' like a baby, battin' at the flames while your comrades died. Twice murderous, bastard. Charred flesh was not about to rise, an' we died because you had no stomach for th' collateral damage. Are you cryin' now?~ [C-ARW006] END ++ ~[PC] Don't say those things to Aran! He did what he had to!~ EXTERN HGWRA01 25 ++ ~[PC] I... I knew you had done some difficult things in your past, but you never told me about this, Aran.~ EXTERN C-ARN25J c_wraith_below_belt ++ ~[PC] Stop tormenting Aran, spirit! ~ EXTERN HGWRA01 25 ++ ~[PC] Gorion, stop this! I won't let this go any further!~ EXTERN HGWRA01 25 + ~CheckStatGT(Player1,16,WIS)~ + ~[PC] Aran, this isn't real. Don't listen to it!~ EXTERN C-ARN25J c_wraith_below_belt APPEND C-ARN25J IF ~~ c_wraith_below_belt SAY ~[ARAN] By Ilmater's Tears, that don't help th' feelin's this bastard be slappin' me with. For th' sake o' mercy, can we shut him th' blighted hells up?~ IF ~~ THEN EXTERN HGWRA01 25 END END in c-arn25.baf [code] /* Master Wraith Post-Traumatic Stress Disorder Amelioration Talk */ IF Global("c-aranpostwraith","GLOBAL",0) GlobalGT("WraithPunish","GLOBAL",0) Global("c-aranlovedone","GLOBAL",6) InParty(Myself) InMyArea(Player1) !StateCheck(Player1,CD_STATE_NOTVALID) !StateCheck(Myself,CD_STATE_NOTVALID) CombatCounter(0) !See([ENEMY]) THEN RESPONSE #100 SetGlobal("c-aranpostwraith","GLOBAL",1) END IF Global("c-aranpostwraith","GLOBAL",1) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) InMyArea(Player1) !StateCheck(Player1,CD_STATE_NOTVALID) THEN RESPONSE #100 PlaySong(0) PlaySound("C-ARANS") StartDialogueNoSet(Player1) END in c-arantobdialog.d, in APPEND to C-ARN25J, CODE /* ToB Plot Talk : Post Wraith Talk™ */ IF ~Global("c-aranpostwraith","GLOBAL",1)~ c_post_wraith_talk_starts SAY ~[ARAN] Gods.~ ++ ~[PC] They had a little to do with it, I think. But not much. We survived through our own strength.~ DO ~SetGlobal("c-aranpostwraith","GLOBAL",2)~ + c_survived_it ++ ~[PC] Was... was what that ...thing... said. Was it true?~ DO ~SetGlobal("c-aranpostwraith","GLOBAL",2)~ + c_was_it_true ++ ~[PC] Are you crying?~ DO ~SetGlobal("c-aranpostwraith","GLOBAL",2)~ + c_arms_wrap ++ ~[PC] (Throw yourself into his arms and press your face against his chest.)~ DO ~SetGlobal("c-aranpostwraith","GLOBAL",2)~ + c_arms_wrap ++ ~[PC] I don't know what to say.~ + c_survived_it ++ ~[PC] So, a little history lesson for both of us?~ DO ~SetGlobal("c-aranpostwraith","GLOBAL",2)~ + c_survived_it END IF ~~ c_arms_wrap SAY ~[ARAN] (His arms crush you close, his face hidden from your sight.)~ IF ~~ THEN GOTO c_survived_it END IF ~~ c_survived_it SAY ~[ARAN] That thing... it might have been only a powerful spirit, a reflection. But... It spoke o' things we have not talked about.~ ++ ~[PC] It spoke twisted lies to hurt and confuse us, and to separate us.~ + c_tell_the_truth ++ ~[PC] I don't want to hear any more. The past is the past. For both of us, the past is the past.~ + c_tell_the_truth + ~Alignment(Player1,MASK_EVIL)~ + ~[PC] If it spoke only a little truth, then you have more strength in you than I thought.~ + c_evil_strength + ~Alignment(Player1,MASK_GOOD)~ + ~[PC] If it spoke only a little truth, then you have more strength in you than I thought.~ + c_good_strength + ~!Alignment(Player1,MASK_GOOD) !!Alignment(Player1,MASK_GOOD)~ + ~[PC] If it spoke only a little truth, then you have more strength in you than I thought.~ + c_neutral_strength ++ ~[PC] Aran, look at me... Look into my eyes. I love you.~ + c_tell_the_truth ++ ~[PC] You heard a twisted view of my life. I heard a twisted view of yours. It is over, and I never want to discuss it ever again. We need to move on, now. Pick up your gear, and help me get things back in order.~ + c_aye_can_do END IF ~~ c_tell_the_truth SAY ~[ARAN] Truth be th' only way to really clear this burden. What that abomination said, it were true, to a point.~ = ~[ARAN] There be times when you know an order be just plain wrong, an' you have to make a choice. I chose to follow.~ = ~[ARAN] Th' details don't rightly matter, but th' result be an ugly truth. Good men can do horrible evil, just by followin' instead o' thinkin'.~ + ~Alignment(Player1,MASK_EVIL)~ + ~[PC] Then you have more strength in you than I thought.~ + c_evil_strength + ~Alignment(Player1,MASK_GOOD)~ + ~[PC] Then you have more strength in you than I thought.~ + c_good_strength + ~!Alignment(Player1,MASK_GOOD) !!Alignment(Player1,MASK_GOOD)~ + ~[PC] Then you have more strength in you than I thought.~ + c_neutral_strength ++ ~[PC] I don't want to hear any more. The past is the past. For both of us, the past is the past.~ + c_tell_the_truth ++ ~[PC] You really burned innocent children alive, and broke down in battle?~ + c_can_you_handle_the_truth END IF ~~ c_can_you_handle_the_truth SAY ~[ARAN] I'd say it different. I'd say I followed th' orders to set th' village afire. I'd say I thought there might be some innocents there, an' mayhap th' enemy was shieldin' themselves. I'd say that when I saw th' sight an' heard th' screams, I ran to see if I could undo what had been done...~ = ~[ARAN] What I had done.~ = ~[ARAN] But when it be th' truth between my soul an' you, yes. I did.~ ++ ~[PC] Get. away. from. me.~ + c_no_longer_welcome + ~Alignment(Player1,MASK_EVIL)~ + ~[PC] Then you have more strength in you than I thought.~ + c_evil_strength + ~Alignment(Player1,MASK_GOOD)~ + ~[PC] Then you have more strength in you than I thought.~ + c_good_strength + ~!Alignment(Player1,MASK_GOOD) !!Alignment(Player1,MASK_GOOD)~ + ~[PC] Then you have more strength in you than I thought.~ + c_neutral_strength ++ ~[PC] You had no choice. An order is an order. You could not have been sure. It was not your place to make that choice.~ + c_we_all_have_choices ++ ~[PC] Why have you not told me this before now?~ + c_how_can_you_tell ++ ~[PC] I could say that everything that has happened to us is my fault. That would not be truth. It would be self-pity.~ + c_self_pity END IF ~~ c_self_pity SAY ~[ARAN] You could say that it be self pity. But there be a difference in my case. You didn't choose your blood or th' things what followed. Me, I could say I had no choices...~ IF ~~ THEN GOTO c_we_all_have_choices END IF ~~ c_evil_strength SAY ~[ARAN] What do you mean?~ ++ ~[PC] You knew I would see this as an opportunity, a weakness in your character that I could exploit. You held it from me, even while showing me how much you care for me. That kind of inner strength, I can respect. Can you understand that?~ + c_aye_can_do ++ ~[PC] You followed orders, even when you felt that they were wrong. You may have regretted doing so, but you followed. I know now that you will do anything for me, even if it goes against your very soul to do so. That is the kind of control I crave. Can you understand that?~ + c_aye_can_do ++ ~[PC] I do not see things the same way you do, Aran. I know you are hurting, and I hurt because you hurt... but in my eyes, you are blameless. War destroys all it touches, which is why we wield it very carefully. Can you understand that?~ + c_aye_can_do ++ ~[PC] You knew even I have limits on what I am willing to do to further my own ends, and you sought to hide something I would never condone so that you could be with me. I don't like that, but I respect that. Can you understand that?~ + c_aye_can_do ++ ~[PC] You risked everything to tell me the truth. If that is not love, then I do not know what love really is. Can you understand that?~ + c_aye_can_do END IF ~~ c_good_strength SAY ~[ARAN] What do you mean?~ ++ ~[PC] You knew I would not be able to handle the burden of your feelings and my own guilt and frustration. You held this burden away from me. That takes strength.~ + c_mayhap_stronger ++ ~[PC] You risked everything to tell me the truth. If that is not love, then I do not know what love really is. Do you understand what I am saying to you?~ + c_aye_can_do ++ ~[PC] I do not see things the same way you do, Aran. I know you are hurting, and I hurt because you hurt... but in my eyes, you are blameless. War destroys all it touches, which is why we wield it very carefully. Can you understand that?~ + c_aye_can_do ++ ~[PC] I try to do the right thing. But my hands are stained with innocent blood too; there can be no mortal way of stopping the consequences of violent action. But the pain you feel, the guilt, shows a strong conscience. I can love a man who takes responsibility for his actions.~ + c_mayhap_stronger ++ ~[PC] You managed to lie to me every day that we have known each other. You know, I do not need your twisting and hiding the truth. You should leave.~ + c_no_longer_welcome END IF ~~ c_neutral_strength SAY ~[ARAN] What do you mean?~ ++ ~[PC] You knew I would not be able to handle the burden of your feelings and my own guilt and frustration. You held this burden away from me. That takes strength.~ + c_mayhap_stronger ++ ~[PC] I do not see things the same way you do, Aran. I know you are hurting, and I hurt because you hurt... but in my eyes, you are blameless. War destroys all it touches, which is why we wield it very carefully. Can you understand that?~ + c_aye_can_do ++ ~[PC] There is no right or wrong in these things, Aran. The same hand that sweeps away a Tyrant kills innocents. Balance, chaos, order... all of those are a part of life on Faerun. We just have to make sense of this for ourselves, and remember we are just passengers on this plane of existence. Do you understand?~ + c_mayhap_stronger ++ ~[PC] Strength of character. You decided when to tell me what you are capable of. I can love a man who shows that kind of restraint.~ + c_mayhap_stronger ++ ~[PC] You managed to lie to me every day that we have known each other. You know, I do not need your twisting and hiding the truth. You should leave.~ + c_no_longer_welcome END IF ~~ c_we_all_have_choices SAY ~[ARAN] That be a lie. We all have choices, every second o' every day. An' when we make th' wrong ones, we with death in our hands an' blood in our hearts... we kill people. We make that choice.~ ++ ~[PC] Would you ever have told me?~ + c_ever_told ++ ~[PC] Then I am making a choice right now. I think you should leave.~ + c_no_longer_welcome ++ ~[PC] Then I make a choice every minute of every day. I chose to love you.~ + c_i_love_you ++ ~[PC] Aran... You and I know you are not the only person in my life. But I keep choosing to be with you. That should tell you that I can handle both the good and the bad in you. I love you.~ + c_i_love_you ++ ~[PC] I have done worse things than you could ever imagine. War claims all in its path as victims. As I see it, you have no more need of self-recrimination than I need apologize for being the child of a dead god. I can live with that. Can you?~ + c_aye_can_do END IF ~~ c_how_can_you_tell SAY ~[ARAN] I have told no one. Never. Until now.~ ++ ~[PC] Would you ever have told me?~ + c_ever_told ++ ~[PC] And you say you love me. You really think I am that weak.~ + c_that_weak ++ ~[PC] Thank you for telling me the truth. I understand... there are things in all of our pasts that we want buried forever. Do you love me?~ + c_of_course_i_do ++ ~[PC] Aran... You and I know you are not the only person in my life. But I keep choosing to be with you. That should tell you that I can handle both the good and the bad in you. I love you.~ + c_i_love_you END IF ~~ c_that_weak SAY ~[ARAN] Now, hold on, I was tryin' to keep th' guilt off of...~ ++ ~[PC] I can handle guilt. I can handle blood. I was born to it. What I can't handle is someone who claims to love me, but will hide things from me. You should leave. Now.~ + c_no_longer_welcome ++ ~[PC] I... I understand. You did not think I was strong enough. I don't think you realize how strong a woman can be for the man she loves.~ + c_mayhap_stronger ++ ~[PC] Don't you love me?~ + c_of_course_i_do ++ ~[PC] I have held things back from you, too. Did you know that I envied Imoen? That I hated Gorion for keeping me away from a life outside the library? That I have killed without remorse, tricked and lied my way through life, and that in spite of it all I can't stop loving a silly do-gooder who can't seem to see exactly how wrong I am for him? Love stinks, doesn't it.~ + c_mayhap_stronger ++ ~[PC] No, you misunderstand me. I am that weak. I... I can see myself, and I hate that woman. I needed to think you were different. Perhaps it is time I grew up, and realized that we all carry burdens. I... I just need your help, sharing the weight between the two of us.~ + c_mayhap_stronger END IF ~~ c_ever_told SAY ~[ARAN] Told you wi' out all this? On th' truth an' respect I have for you... no. I would not.~ ++ ~[PC] Don't you love me?~ + c_of_course_i_do ++ ~[PC] You were wise. I can't have the blood and guilt you bring added to my burdens. You need to find your own path.~ + c_no_longer_welcome ++ ~[PC] I can handle guilt. I can handle blood. I was born to it. What I can't handle is someone who claims to love me, but will hide things from me. You should leave. Now.~ + c_no_longer_welcome ++ ~[PC] I... I understand. You did not think I was strong enough. I don't think you realize how strong a woman can be for the man she loves.~ + c_mayhap_stronger ++ ~[PC] I have held things back from you, too. Did you know that I envied Imoen? That I hated Gorion for keeping me away from a life outside the library? That I have killed without remorse, tricked and lied my way through life, and that in spite of it all I can't stop loving a silly do-gooder who can't seem to see exactly how wrong I am for him? Love stinks, doesn't it.~ + c_mayhap_stronger END IF ~~ c_of_course_i_do SAY ~[ARAN] O' course I do.~ ++ ~[PC] Then trust me. No secrets. I am a Child of Murder. If I can handle that truth, then I can handle your truth.~ + c_mayhap_stronger ++ ~[PC] Then say no more about this. What is past is past, and we have a future to plan. Don't let old blood drown a new life together.~ + c_mayhap_stronger ++ ~[PC] Then... I need you to leave. I have the weight of my own guilt to carry. I can't handle both yours and mine.~ + c_no_longer_welcome ++ ~[PC] Then kiss me, and forget the past. We have to focus on what is ahead of us, not what is behind us.~ + c_mayhap_stronger END IF ~~ c_no_longer_welcome SAY ~[ARAN] I... ~ = ~[ARAN] ... ~ IF ~~ THEN DO ~SetGlobal("c-aranrom","GLOBAL",3) GivePartyAllEquipment() LeaveParty() EscapeAreaDestroy()~ EXIT END IF ~~ c_mayhap_stronger SAY ~[ARAN] Mayhap you be right. I learn somethin' new about you almost every day.~ IF ~~ THEN GOTO c_i_love_you END IF ~~ c_i_love_you SAY ~[ARAN] I don't think I say this right strong enough, or often enough.~ = ~[ARAN] I love you.~ IF ~~ THEN EXIT END IF ~~ c_aye_can_do SAY ~[ARAN] Aye.~ IF ~~ THEN EXIT END As always, commentary welcome!
  25. Discussion started from Aran Whitehand development - Synopsis: AreaCheck() does not cover mod added areas without specific addition AreaType() does not cover mod added areas without specific addition AreaType(CITY) was intended to cover city outdoor areas Looking for a way of getting all areas, vanilla and modded, to be able to be checked for being in a city and an inn, so that the appropriate movie can be triggered and content can be tailored and still make sense Suggestions so far: Worse: Research and create mass "MYAREA" script extensions for all such areas Better: Create and identify new AreaType()s and set them up as community resources [-cmorgan AreaType() checks fail. Keep that in mind. You will need a more robust check than AreaType(CITY) to determine where the party is sleeping and cue the appropriate cutscene. You may need to do an extensive OR() block area check for this. Just saying. I've got the code up elsewhere and can post it here if you need it.
×
×
  • Create New...