Jump to content

Search the Community

Showing results for tags 'variable scope'.



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 3 results

  1. 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.
  2. AreaCheck resources, formatted and commented: /* SoA Area Checks */ AreaCheck("AR0011") // Candlekeep Dream 1 (Do you remember Candlekeep?) AreaCheck("AR0012") // Candlekeep Library (Main Door Trigger) AreaCheck("AR0013") // Candlekeep Library (Stairway Triggers Up and Down) AreaCheck("AR0014") // Candlekeep Library (Stairway Trigger Down) AreaCheck("AR0015") // Baldur's Gate Estate (Tutorial starts here) AreaCheck("AR0016") // Baldur's Gate Estate (Tutorial area) AreaCheck("AR0017") // Baldur's Gate Estate (Tutorial area) AreaCheck("AR0018") // Baldur's Gate Estate Cellar (Tutorial area) AreaCheck("AR0020") // City Gates AreaCheck("AR0021") // Crooked Crane 1st Floor AreaCheck("AR0022") // Crooked Crane 2nd Floor AreaCheck("AR0028") // Candlekeep Dream (After PC Soultheft) AreaCheck("AR0041") // Random Encounter City AreaCheck("AR0042") // Random Encounter Outdoor AreaCheck("AR0043") // Random Encounter Outdoor (With rocks) AreaCheck("AR0044") // Random Encounter Outdoor (sand) AreaCheck("AR0045") // Random Encounter City AreaCheck("AR0046") // Random Encounter City (bridge) AreaCheck("AR0069") // Government Building (Cowled Cutscene -- "Why is this man not gagged?") AreaCheck("AR0070") // Spellhold (Irenicus Cutscene -- "I cannot be caged...") AreaCheck("AR0071") // Spellhold (Imoen Soultheft Cutscene -- "Silence do, you have no purpose...") AreaCheck("AR0072") // Ust Natha Temple (Irenicus/Bodhi, Ardula/Phaere Cutscene) AreaCheck("AR0082") // Lich Grave in Bridge District Inn AreaCheck("AR0083") // Candlekeep Library (Dream: PC learns to control the Slayer) AreaCheck("AR0084") // Candlekeep Library (Stairway trigger down) AreaCheck("AR0085") // Tree of Life AreaCheck("AR0086") // Wooded Area AreaCheck("AR0087") // Elven Dining Room AreaCheck("AR0201") // Ghouls village under Temple District AreaCheck("AR0202") // The Unseeing Eye Cult Hideout AreaCheck("AR0203") // Temple of the Forgotten God -- Amaunator (Unseeing Eye Plot) AreaCheck("AR0204") // The Forgotten Believers -- Temple City (Unseeing Eye Plot) AreaCheck("AR0205") // The Beholder Hideout (Unseeing Eye Plot) AreaCheck("AR0206") // The Halfling Village in the Sphere AreaCheck("AR0300") // The Docks AreaCheck("AR0301") // Mae'Var's Hide Out AreaCheck("AR0302") // Mae'Var's Inn 1st Floor -- Entrance AreaCheck("AR0303") // Mae'Var's Inn 2nd Floor -- Training Area AreaCheck("AR0304") // Mae'Var's Inn 3rd Floor -- Edwin AreaCheck("AR0305") // Shadow Thieves Guild Entrance AreaCheck("AR0306") // Renal Bloodscalp's Hideout AreaCheck("AR0307") // Aran Linvail's Hideout AreaCheck("AR0308") // Harper's 1st Floor AreaCheck("AR0309") // Harper's 2nd Floor AreaCheck("AR0310") // Pirates' Hideout in Sea Bouny Tavern AreaCheck("AR0311") // Living Room (Entry points outside and up) -- Gaelan? AreaCheck("AR0312") // Sleeping Room (Entry poin down) -- Arledrian AreaCheck("AR0313") // Sea Bounty Tavern 1st Floor AreaCheck("AR0314") // Sea Bounty Tavern 2nd Floor AreaCheck("AR0315") // Living Room (Favour for Edwin -- Mae'Var Plot) AreaCheck("AR0316") // Sleeping Room (Favour for Edwin -- Mae'Var Plot) AreaCheck("AR0317") // Sleeping Room (Favour for Edwin -- Mae'Var Plot) AreaCheck("AR0318") // Storage Room AreaCheck("AR0319") // Temple of Oghma AreaCheck("AR0321") // Thief Stronghold (Hideout) AreaCheck("AR0322") // Thief Stronghold (1st Floor) AreaCheck("AR0323") // Thief Stronghold (2nd Floor) AreaCheck("AR0324") // Thief Stronghold (3rd Floor) AreaCheck("AR0325") // Corthala House 1st Floor AreaCheck("AR0326") // Corthala House 2nd Floor AreaCheck("AR0327") // Shadow Thief Entrance (sided with Bodhi) AreaCheck("AR0328") // Shadow Thief 1st Floor (sided with Bodhi) AreaCheck("AR0329") // Aran's Hideout (sided with Bodhi) AreaCheck("AR0330") // House 1st Floor (Kangaxx) AreaCheck("AR0331") // House Cellar (Kangaxx) AreaCheck("AR0332") // Barracks in the Docks AreaCheck("AR0333") // Barracks in the Docks AreaCheck("AR0334") // Cromwell's Shop AreaCheck("AR0335") // Sleeping Room AreaCheck("AR0400") // Slums AreaCheck("AR0401") // Jansen Cellar AreaCheck("AR0402") // Jansen 1st Floor AreaCheck("AR0403") // Jansen 2nd Floor AreaCheck("AR0404") // Sewers beneath Coronet -- Lilarcor AreaCheck("AR0405") // Slaver's Ship Building AreaCheck("AR0406") // Copper Coronet AreaCheck("AR0407") // Prebek's House AreaCheck("AR0408") // Temple of Ilmater AreaCheck("AR0409") // Living Room (Ployer's home) AreaCheck("AR0410") // Sphere: Navigator's room -- Lavok's Hideout AreaCheck("AR0411") // Sphere: Entrance floor AreaCheck("AR0412") // Sphere: Ice and Fire Room AreaCheck("AR0413") // Sphere: Enginge Room AreaCheck("AR0414") // Sphere: Demon Plane AreaCheck("AR0415") // Living Room 1st Floor AreaCheck("AR0416") // Living Room 2nd Floor AreaCheck("AR0417") // Living Room AreaCheck("AR0418") // Myconids AreaCheck("AR0419") // Myconid AreaCheck("AR0420") // Sphere: Lizardmen Hideout AreaCheck("AR0500") // Bridge District AreaCheck("AR0501") // Tanner's Hideout 1st Floor AreaCheck("AR0502") // Tanner's Hideout Cellar AreaCheck("AR0503") // Tanner's Hideout Dock AreaCheck("AR0504") // Saerk's House 1st Floor AreaCheck("AR0505") // Saerk's House 2nd Floor AreaCheck("AR0506") // Noble House 1st Floor AreaCheck("AR0507") // Kidnappers' Hideout 1st Floor AreaCheck("AR0508") // Kidnappers' Hideout 2nd Floor AreaCheck("AR0509") // Five Flagons Inn 1st Floor AreaCheck("AR0510") // Five Flagons Inn Theater AreaCheck("AR0511") // Five Flagons Inn 2nd Floor AreaCheck("AR0512") // Temple of Helm AreaCheck("AR0513") // Calbor's Inn at Bridge District 1st Floor AreaCheck("AR0514") // Inn at Bridge District 2nd Floor AreaCheck("AR0515") // Inn at Bridge District 3rd Floor AreaCheck("AR0516") // Planar Prison AreaCheck("AR0517") // Planar Prison Cell AreaCheck("AR0518") // Planar Prison Cell AreaCheck("AR0519") // Planar Prison Cell AreaCheck("AR0520") // Planar Prison Cell AreaCheck("AR0521") // Planar Prison Cell AreaCheck("AR0522") // Five Flagons Inn (Stronghold) AreaCheck("AR0523") // Five Flagons Theater (Stronghold) AreaCheck("AR0525") // House 1st Floor AreaCheck("AR0526") // Sarcophagus Cellar AreaCheck("AR0527") // House 1st Floor AreaCheck("AR0528") // House 2nd Floor AreaCheck("AR0529") // Neb's Hideout AreaCheck("AR0530") // Storehouse AreaCheck("AR0531") // Commoner House AreaCheck("AR0600") // Circus Tent (phased) AreaCheck("AR0601") // Air Plane in Irenicus's Dungeon AreaCheck("AR0602") // Irenicus's Dungeon 1st Floor AreaCheck("AR0603") // Irenicus's Dungeon 2nd Floor AreaCheck("AR0604") // Circus Tent 1st Floor AreaCheck("AR0605") // Circus Tent 2nd Floor AreaCheck("AR0606") // Circus Tent 3rd Floor AreaCheck("AR0607") // Circus Tent restored AreaCheck("AR0700") // Waukeen's Promenade AreaCheck("AR0701") // The Sewers AreaCheck("AR0702") // Adventurer's Mart AreaCheck("AR0703") // Temple of Ilmater AreaCheck("AR0704") // Mithrest Inn AreaCheck("AR0705") // Mekrath's Hideout in the Sewers (Haer'Dalis Plot) AreaCheck("AR0706") // Armourer/Fletcher AreaCheck("AR0707") // Enge's Shop AreaCheck("AR0708") // Cernd's former home AreaCheck("AR0709") // Den of the Seven Vales 1st Floor AreaCheck("AR0710") // Fennecia's Home AreaCheck("AR0711") // Illithid Hideout in the Sewers (The Hidden Plot) AreaCheck("AR0712") // Den of the Seven Vales 2nd Floor AreaCheck("AR0713") // Store or Inn at Promenade AreaCheck("AR0714") // Debris at Waukeen's Promenade (Irenicus Cutscene in the beginning) AreaCheck("AR0800") // Graveyard AreaCheck("AR0801") // Bodhi's Hideout (sided with Aran) AreaCheck("AR0802") // Netherscroll, Korgan's Book, Edwin AreaCheck("AR0803") // Bodhi's Lair (sided with Aran) AreaCheck("AR0804") // Pai'Na's Hideout AreaCheck("AR0805") // Crypt AreaCheck("AR0806") // Crypt AreaCheck("AR0807") // Crypt AreaCheck("AR0808") // Bodhi's Hideout (Abduction Plot, getting Imoen's soul) AreaCheck("AR0809") // Bodhi's Lair (Abduction Plot, getting Imoen's soul) AreaCheck("AR0810") // Crypt AreaCheck("AR0811") // Crypt AreaCheck("AR0812") // Crypt AreaCheck("AR0813") // Crypt AreaCheck("AR0900") // Temple District AreaCheck("AR0901") // Temple of Helm AreaCheck("AR0902") // Temple of Lathander AreaCheck("AR0903") // Order of the Radiant Heart AreaCheck("AR0904") // Temple of Talos AreaCheck("AR0905") // Pimlico's Estate AreaCheck("AR0906") // Guarded Compound 1st Floor AreaCheck("AR0907") // Guarded Compound 2nd Floor AreaCheck("AR1000") // Government District AreaCheck("AR1001") // Delryn's Estate AreaCheck("AR1002") // Councel Building AreaCheck("AR1003") // Firecam's Estate AreaCheck("AR1004") // Deril's Estate (Cernd Plot) AreaCheck("AR1005") // Prison AreaCheck("AR1006") // Jysstev's Estate (Oisig Plot) AreaCheck("AR1007") // Noble House AreaCheck("AR1008") // Twisted Rune AreaCheck("AR1009") // Noble House (Isaea Roenall's) AreaCheck("AR1010") // Temple of Waukeen AreaCheck("AR1100") // Umar Hills AreaCheck("AR1101") // Valygar's Cabin AreaCheck("AR1102") // Merella's Cabin AreaCheck("AR1103") // Jermien's Cabin AreaCheck("AR1104") // Mayor Lloyd's Cabin AreaCheck("AR1105") // Imnesvale Inn AreaCheck("AR1106") // Umar's Cave AreaCheck("AR1107") // Ranger-Protector's Cabin (Stronghold) AreaCheck("AR1200") // Windspear Hills AreaCheck("AR1201") // Firkraarg's Entrance AreaCheck("AR1202") // Firkaarg's Maze AreaCheck("AR1203") // Firkraag's Hideout AreaCheck("AR1204") // Garren Windspear's Cabin AreaCheck("AR1300") // De'Arnise Keep Destroyed AreaCheck("AR1301") // De'Arnise Cellar AreaCheck("AR1302") // De'Arnise Keep 1st Floor AreaCheck("AR1303") // De'Arnise Keep 2nd Floor (Destroyed) AreaCheck("AR1304") // De'Arnise Keep (Restored, Stronghold) AreaCheck("AR1305") // De'Arnise Keep (Stronghold) AreaCheck("AR1306") // De'Arnise Keep (Stronghold) AreaCheck("AR1307") // De'Arnise Keep (Stronghold) AreaCheck("AR1400") // Shadow Temple Land (restored, Ranger) AreaCheck("AR1401") // Shadow Temple AreaCheck("AR1402") // Shadow Dragon Hideout AreaCheck("AR1403") // Wolfwere Hideout AreaCheck("AR1404") // Shadow Temple Land shadowed AreaCheck("AR1500") // Spellhold AreaCheck("AR1501") // Cave (Spellhold Test) AreaCheck("AR1502") // Fire Room (Spellhold Test) AreaCheck("AR1503") // Spore Room (Spellhold Test) AreaCheck("AR1504") // Crushing Trap Room (Spellhold Test) AreaCheck("AR1505") // Lever Room (Spellhold Test) AreaCheck("AR1506") // Troll Cave (Spellhold Test) AreaCheck("AR1507") // Kobold Room (Spellhold Test) AreaCheck("AR1508") // Final Judgement Spellhold Test AreaCheck("AR1509") // Myconid Room (Spellhold Test) AreaCheck("AR1510") // Sahuagin Room (Spellhold Test) AreaCheck("AR1511") // Elven Table while Spellhold Test AreaCheck("AR1512") // Bodhi's Hunt Level 1 AreaCheck("AR1513") // Bodhi's Hunt Level 2 AreaCheck("AR1514") // Bodhi's Hunt Level 3 (1st Slayer Change Happens here) AreaCheck("AR1515") // Spellhold (Irenicus' Living Room) AreaCheck("AR1516") // Spellhold (Soultheft Level) AreaCheck("AR1600") // Brynnlaw AreaCheck("AR1601") // Desharik's Estate AreaCheck("AR1602") // Brynnlaw's Inn AreaCheck("AR1603") // Brynnlaw's Shop AreaCheck("AR1604") // Temple of Umberlee AreaCheck("AR1605") // CW's House AreaCheck("AR1606") // House of Desharik's Lover AreaCheck("AR1607") // Githyanki Assault AreaCheck("AR1608") // Cellar of Brothel AreaCheck("AR1609") // Courtesan Room AreaCheck("AR1610") // Brothel Prison AreaCheck("AR1611") // Brothel AreaCheck("AR1612") // Brothel Kitchen AreaCheck("AR1613") // Brothel HQ AreaCheck("AR1700") // Small Teeth Pass AreaCheck("AR1800") // North Forest AreaCheck("AR1900") // Druid Grove Area AreaCheck("AR1901") // Druid Grove AreaCheck("AR1902") // Storehouse (Ihtafeer's Storehouse) AreaCheck("AR1904") // Troll Hill AreaCheck("AR1905") // Store Tower AreaCheck("AR2000") // Trademeet AreaCheck("AR2001") // The Smithy AreaCheck("AR2002") // Fentan's House AreaCheck("AR2006") // Tiri's Home AreaCheck("AR2007") // High Merchant's Estate AreaCheck("AR2008") // Temple of Waukeen AreaCheck("AR2009") // High Merchant Prison AreaCheck("AR2010") // Trademeet's Inn AreaCheck("AR2011") // Alibakkar's Estate AreaCheck("AR2012") // Lurraxol's Estate AreaCheck("AR2013") // Trademeet Crypt AreaCheck("AR2014") // Djinni's Tent AreaCheck("AR2015") // Merchant Tent AreaCheck("AR2016") // Raffee's Tent AreaCheck("AR2017") // Courtesan Tent AreaCheck("AR2018") // Tent (no exit) AreaCheck("AR2100") // Underdark AreaCheck("AR2101") // Beholder Cave in Underdark AreaCheck("AR2102") // Adalon's Cave AreaCheck("AR2200") // Ust Natha AreaCheck("AR2201") // Temple in Ust Natha AreaCheck("AR2202") // Inn in Ust Natha 1st Floor AreaCheck("AR2203") // Inn in Ust Natha; 2nd Floor AreaCheck("AR2204") // House in Ust Natha AreaCheck("AR2205") // House in Ust Natha AreaCheck("AR2206") // Qilue's House in Ust Natha AreaCheck("AR2207") // Deirex's Tower in Ust Natha AreaCheck("AR2208") // Jarlaxle's House wherever AreaCheck("AR2209") // Jae'llat's House AreaCheck("AR2210") // Deirex's Cave AreaCheck("AR2300") // Sahuagin City AreaCheck("AR2400") // Mind Flayers in Underdark AreaCheck("AR2401") // Cave Between Underdark and Exit from Underdark AreaCheck("AR2402") // Kuo Toa in Underdark AreaCheck("AR2500") // Elven Temple at Underdark Exit AreaCheck("AR2600") // Thetyr Wood AreaCheck("AR2601") // Meet Drizzt Do'Urden AreaCheck("AR2602") // Cave in Woods to Suldanesselar AreaCheck("AR2603") // Coran's Cabin AreaCheck("AR2700") // Ancient Spirits? AreaCheck("AR2800") // Suldanesselar AreaCheck("AR2801") // House of High Priestess of Suldanesselar AreaCheck("AR2802") // House in Suldanesselar AreaCheck("AR2803") // Rillifane Temple AreaCheck("AR2804") // To the Tree of Life (Entrance Hidden) AreaCheck("AR2805") // To the Tree of Life (Entrance Revealed) AreaCheck("AR2806") // Tree of Life AreaCheck("AR2807") // Black Dragon's Hideout AreaCheck("AR2808") // House in Suldanesselar AreaCheck("AR2810") // House in Suldanesselar AreaCheck("AR2811") // House in Suldanesselar AreaCheck("AR2812") // Temple of Rillifane after the Battle AreaCheck("AR2900") // The Abyss AreaCheck("AR2901") // Fear (Abyss) AreaCheck("AR2902") // Pride (Abyss) AreaCheck("AR2903") // Greed (Abyss) AreaCheck("AR2904") // Selfish (Abyss) AreaCheck("AR2905") // Sarevok (Abyss) AreaCheck("AR2906") // Jon Battle ? /* ToB Area List */ AreaCheck("AR3000") // Watcher's Keep AreaCheck("AR3001") // Watcher's Keep -- Altar level AreaCheck("AR3003") // Watcher's Keep -- Compass level AreaCheck("AR3004") // Watcher's Keep AreaCheck("AR3005") // Watcher's Keep -- tieflings AreaCheck("AR3006") // Watcher's Keep -- Succubus AreaCheck("AR3007") // Watcher's Keep --Cambion AreaCheck("AR3008") // Watcher's Keep -- Baalor (Paladin Sword) AreaCheck("AR3009") // Watcher's Keep -- Wild Magic ? AreaCheck("AR3010") // Watcher's Keep -- Tanar'ri -- Obelisk AreaCheck("AR3011") // Watcher's Keep -- Bard's Gloves, Manman's Journal AreaCheck("AR3012") // Watcher's Keep -- Tahazzar AreaCheck("AR3013") // Watcher's Keep -- Ka'rashur AreaCheck("AR3014") // Watcher's Keep -- White Dragon Scales AreaCheck("AR3015") // Watcher's Keep -- Aesgareth AreaCheck("AR3016") // Watcher's Keep -- Chromatic Demon; Elementalist Level AreaCheck("AR3017") // Watcher's Keep -- Carston and the machine AreaCheck("AR3018") // Watcher's Keep -- Saladrex (Dragon) AreaCheck("AR3019") // Watcher's Keep -- Helmite Level -- Last Seals AreaCheck("AR3020") // Watcher's Keep -- Imprisoned One AreaCheck("AR3021") // Watcher's Keep -- Ilithids AreaCheck("AR3022") // Watcher's Keep -- Anti-Paladins AreaCheck("AR3023") // Watcher's Keep -- "Adventure Level" (Mini Map!!!) AreaCheck("AR3024") // Watcher's Keep -- Dragon -- Fear Challenge AreaCheck("AR3025") // Watcher's Keep -- Orcs -- Ixil's Nail AreaCheck("AR3026") // Watcher's Keep -- Imp -- Game AreaCheck("AR3027") // Watcher's Keep -- Crypt -- Demi-Lich AreaCheck("AR4000") // Spirit Heads AreaCheck("AR4500") // Pocket Plane AreaCheck("AR5000") // Saradush AreaCheck("AR5001") // Gromnir 1st Level AreaCheck("AR5002") // Gromnir's Hideout AreaCheck("AR5003") // Saradush Tavern (Tankard Tree) AreaCheck("AR5004") // Temple of Waukeen AreaCheck("AR5005") // Gromnir's Barracks AreaCheck("AR5006") // Saradush Prison AreaCheck("AR5007") // Basement Entrance to Gromnir's Hideout AreaCheck("AR5008") // Kiser's Home AreaCheck("AR5009") // House (no exit?) AreaCheck("AR5010") // Countess Santele's Home AreaCheck("AR5011") // Arcana Archives AreaCheck("AR5012") // House AreaCheck("AR5013") // Sewers beneath Saradush AreaCheck("AR5014") // Kiser's Home -- Cellar AreaCheck("AR5015") // Saradush Militia Entrance AreaCheck("AR5016") // Saradush Castle Jail (Kiser Plot) AreaCheck("AR5200") // Fire Giant Entrance Area AreaCheck("AR5201") // Fire Giant Keep AreaCheck("AR5202") // Nyalee's Hideout; Gorion Wraith AreaCheck("AR5203") // Yaga-Shura's Camp AreaCheck("AR5204") // Yaga-Shura's Keep AreaCheck("AR5500") // Amkethran AreaCheck("AR5501") // Amkethran Inn AreaCheck("AR5502") // Kerrick the Smith's House AreaCheck("AR5503") // Chyil's House AreaCheck("AR5504") // Smuggler Cave AreaCheck("AR5505") // Balthazar's Home AreaCheck("AR5506") // Commoner's Home AreaCheck("AR5507") // Empty Home AreaCheck("AR5508") // Faheed's Home AreaCheck("AR5509") // Amkethran Crypt AreaCheck("AR6000") // Abazigal's Entrance AreaCheck("AR6001") // Abazigal's Lair Entrance Hall AreaCheck("AR6002") // Abazigal's Lair -- Cells AreaCheck("AR6003") // Abazigal's Lair -- Iycanth the Mad, Bondari AreaCheck("AR6004") // Abazigal's Lair -- Fll'Yissetat AreaCheck("AR6005") // Abazigal's Hideout AreaCheck("AR6008") // Frost Salamander Cave AreaCheck("AR6011") // Orbs and Gauth AreaCheck("AR6012") // Pool Home -- breath under water AreaCheck("AR6100") // Area outside Sendai's Hideout AreaCheck("AR6101") // Main Entrance Sendai's Lair AreaCheck("AR6102") // Sendai's Lair -- Slavemaster AreaCheck("AR6103") // Sendai's Lair -- Spiders AreaCheck("AR6104") // Sendai's Lair -- Crossway AreaCheck("AR6105") // Sendai's Lair -- Diaytha, Abishai AreaCheck("AR6106") // Sendai's Lair -- Captain Egeissag AreaCheck("AR6107") // Sendai's Lair -- Mithykyl AreaCheck("AR6108") // Sendai's Lair -- Sendai AreaCheck("AR6109") // Sendai's Lair -- Drow AreaCheck("AR6110") // Sendai's Lair -- Odamaron AreaCheck("AR6111") // Woodcutter's House -- Sendai's Area AreaCheck("AR6200") // The Throne of Bhaal AreaCheck("AR6300") // Oasis in Tethyr AreaCheck("AR6400") // River Area
  3. When Good Ideas Go Bad: An Example of Dropping Material (Or Sending It To Be Chopped Up And Recycled) This one has been sitting around for awhile, gathering dust, since October 2008. Today's project was to see what could be salvaged, get the tutorial section on manipulating globals that was already written posted (though I am pretty sure this is already covered in other threads), and see where we are after over a year of periodically tweaking and puzzling through it. One of the advantages of having a trustworthy, discreet modder friend is that they are able to tell you when you are about to spend massive amounts of work on an idea that just doesn't cut it - and can even point you to ideas that you might be able to use. In this case, an early lovetalk had PC and Aran doing the friend thing where the guy and the girl are both out on the prowl for companionship, but have not really figured out that they might be compatible. As initially sketched, there was something compelling about it, but subsequent revisits showed more and more weaknesses with the talk. The Talk Topic SidebarThis "talk about the possibilities" is the Gold Standard™ trope from literature, TV, movies, and games - Taylor Swift 's "You Belong With Me" is one of the latest songs that play with this idea, but this one is as old as the hills themselves. Sometimes it works out, sometimes it doesn't, of course, which means it can be a friendtalk or a lovetalk, or for any gender. After all, there does not need to be mutual attraction to have the discussion. It is a staple of human communication - "window shopping" and looking for potential interests for yourself or your friend or both. And usually in literature it is a pair of good friends who are too stupid/shortsighted/whatever to realize that the dude or dudette that has been a best friend is actually a perfect match romantically. Most of the other posts around here have tagged on this, and certainly used this, but let's run down ways we can tailor reactions to player choice in-game. All of this involves manipulating a particular kind of switch, a variable that in the i.e. engine is labels a "global", whether it is actually checked by the engine all the time across operating files ("GLOBAL"), only checked in reference to the active actor's script ("LOCALS"), or only checked when a particular area's script is running ("AREA"). Using Globals: Setting Options for Players Playing with Globals to Open Pathways within reply states The standard way to make sure a dialog takes note of outside circumstances is to set a global somewhere else and then refer to it. For example, IF ~Global("Aran_Likes_Imoen","GLOBAL",1)~ THEN REPLY ~[ARAN] So, Imoen. Want to go play hide an' seek?~ + newstate The idea here is that something has already set the global variable to 1, so the dialog can recognize that this decision has already been made elsewhere. BioWare™ has a small number of these set up that only reference a single variable being set without advancement, meaning that SetGlobal("Aran_Likes_Imoen","GLOBAL",1) in either a dialog state transition or a script block is the only reference point. This single global variable basically toggles the question "Does Aran Like Imoen?" to "yes". Then it can be referenced in other ways. It does not advance to another value, the way we like to code friendtalks and lovetalks, because there is no sequence - one question, quest, or path taken, one answer, all available to any script or dialog played ingame from that point on. You can set the line to play if a global is not set, too: Variables Can Create Or Reference a Decision for the PC or NPC IF ~Global("Aran_Likes_Imoen","GLOBAL",0)~ THEN REPLY ~[PC] So, Imoen. I hear Aran likes you alot. Want to go play hide an' seek with him?~ DO ~SetGlobal("Aran_Likes_Imoen","GLOBAL",1)~ + newstate sets up the question to be asked only if Aran has not expressed an opinion about Imoen. Following that pathway sets the variable to 1 (yes) and then we can reference the value for the rest of the mod, for any actor who wants to know. We could also make it only available to Aran, for his own use - all we have to do is change "GLOBAL" to "LOCALS" and then the global is "local'in scope, meaning only Aran can really reference it. We can't have Imoen get something set up on it, because she can't see it. And you thought only grade schoolers hid their feelings from eachother Variables Can Advance a Reference Point for the NPC Another way to play with this is to advance the variable for different stages of discussion: Dialog Variable Advancement IF ~Global("Aran_Likes_Imoen","GLOBAL",0)~ GOTO z100 IF ~Global("Aran_Likes_Imoen","GLOBAL",1)~ GOTO z101 IF ~Global("Aran_Likes_Imoen","GLOBAL",2)~ GOTO z102 // IF ~~ z100 SAY ~[ARAN] So, Imoen. Want to go play hide an' seek?~ DO ~SetGlobal("Aran_Likes_Imoen","GLOBAL",1)~ + cool_beans IF ~~ z101 SAY ~[ARAN] That was fun, Imoen. Want to go play checkers?~ DO ~SetGlobal("Aran_Likes_Imoen","GLOBAL",2)~ + its_your_money IF ~~ z102 SAY ~[ARAN] Imoen, that tight leather does some right wonderful things, it does. How about I buy you a drink?~ DO ~SetGlobal("Aran_Likes_Imoen","GLOBAL",3)~ + I_Like_Gavin_More_Plus_He_Needs_Me For an existing example of this in action, one source is BG1NPC's "Bardic Reputation" component and berelinde's work doing the same thing for BG2, designed to have different options based on how many times the bard has had the conversation, as well as using reputation and bglobls to determine cost and amount of adjustment available. This kind of dialog advancement can make it easy to simulate a long running debate or theme across several different (and even unrelated) conversations. Globals are usually set in a dialog or through a script block, and are referenced on a later dialog and block. Almost all tutorials out there talk about this, but for the most advanced extension of the ways to manipulate, redirect, and randomize pathways, I suggest a look at Zyraen's mods - he has some very involved treatments of dialog states that allow a player to have a new experience for multiple playthroughs. randomizing using scripts For scripts, the following is completely possible: Script Variable Randomization IF Global("Aran_Likes_Imoen","GLOBAL",0) THEN RESPONSE #20 SetGlobal("Aran_Likes_Imoen","GLOBAL",1) StartDialogNoSet(Player1) THEN RESPONSE #20 SetGlobal("Aran_Likes_Imoen","GLOBAL",2) StartDialogNoSet(Player1) THEN RESPONSE #20 SetGlobal("Aran_Likes_Imoen","GLOBAL",3) StartDialogNoSet(Player1) THEN RESPONSE #20 SetGlobal("Aran_Likes_Imoen","GLOBAL",4) StartDialogNoSet(Player1) THEN RESPONSE #20 SetGlobal("Aran_Likes_Imoen","GLOBAL",5) StartDialogNoSet(Player1) END which means that for one script block, five different and separate dialogs could take place, with the corresponding global in the dialog states called: IF ~Global("Aran_Likes_Imoen","GLOBAL",1)~ THEN BEGIN AranLikesImoen1 SAY ~[ARAN] So, Imoen. Want to go play hide an' seek?~ IF ~~ THEN EXIT END IF ~Global("Aran_Likes_Imoen","GLOBAL",2)~ THEN BEGIN AranLikesImoen2 SAY ~[ARAN] That was fun, Imoen. Want to go play checkers?~ IF ~~ THEN EXIT END IF ~Global("Aran_Likes_Imoen","GLOBAL",3)~ THEN BEGIN AranLikesImoen3 SAY ~[ARAN] Imoen, that tight leather does some right wonderful things, it does. How about I buy you a drink?~ IF ~~ THEN EXIT END IF ~Global("Aran_Likes_Imoen","GLOBAL",4)~ THEN BEGIN AranLikesImoen4 SAY ~[ARAN] You know, I never asked how things were back in Candlekeep. Did you have to wear a French Maid costume while cleaning up?~ IF ~~ THEN EXIT END IF ~Global("Aran_Likes_Imoen","GLOBAL",5)~ THEN BEGIN AranLikesImoen5 SAY ~[ARAN] OK, how about a little game of "how long can you hold your breath". Close your eyes, hold your breath, pucker your lips, and we can time how long it takes me to kiss you.~ IF ~~ THEN EXIT END In each of the above, the dialog plays once. In the sequential global of BG1NPC's "Bardic Reputation" component, future visits will recognize the global being advanced, and give new responses in place of the old, topping out at the third. In the second example, with a script block initiating one of five different possible responses, the script block only plays once, with the variable advanced to either 1, 2, 3, 4, or 5 - thus leaving a global setting for other dialogs or script blocks to call on, refining choices later. For example, if we wanted to pick up on what Aran said in a later banter, a quick check lets us tailor the content: CHAIN == ~IMOEN2~ IF ~Global("Aran_Likes_Imoen","GLOBAL",1)~ THEN ~[iMOEN] Hah! I taught you not to mess with me, Aran. Remember that game of hide and seek? You couldn't find me for two hours!~ == ~IMOEN2~ IF ~Global("Aran_Likes_Imoen","GLOBAL",2)~ THEN ~[iMOEN] I suppose you want another game of checkers. But this time, none of that "I get a kiss every time you king me"...~ == ~IMOEN2~ IF ~Global("Aran_Likes_Imoen","GLOBAL",3)~ THEN ~[iMOEN] No way, Aran. I still remember that tired old pickup line you used on me. 'That tight leather does some right wonderful things, it does'? You need to do better if you are going to attract my sister's attention!~ == ~IMOEN2~ IF ~Global("Aran_Likes_Imoen","GLOBAL",4)~ THEN ~[iMOEN] Go away, Aran. I am still mad about that French Maid outfit crack. And you never did explain about this mythical "France", as you called it.~ == ~IMOEN2~ IF ~Global("Aran_Likes_Imoen","GLOBAL",5)~ THEN ~[iMOEN] I thought the last time you tried some kind of silliness on me, I slapped you but good. Back for more?~ The equivalent in the dialog state is the use of RandomNum(#,#). Here, only one reply will show upon any given run through the dialog, pulled from the three available states: IF ~RandomNum(3,1)~ THEN GOTO z100 IF ~RandomNum(3,2)~ THEN GOTO z101 IF ~RandomNum(3,3)~ THEN GOTO z102 IF ~~ z100 THEN BEGIN z100state SAY ~[ARAN] So, Imoen. Want to go play hide an' seek?~ IF ~~ z100 THEN BEGIN z101state SAY ~[ARAN] That was fun, Imoen. Want to go play checkers?~ IF ~~ z100 THEN BEGIN z102state SAY ~[ARAN] Imoen, that tight leather does some right wonderful things, it does. How about I buy you a drink?~ END Layering this can get you into intricacies that can be incredibly tightly tailored to situation, player choices, and even in-game variables like chapter or quest conclusion. I think the most comprehensive existing model is Jastey's Ajantis PID in BG1NPC and her BG2 Ajantis mod, tied with Domi's SharTeel and Coran PIDs in the same project, followed by berelinde's Gavin. Domi's Kivan for BG2 makes similar use of the model, and is a good place to compare and contrast across each of these modder's implementations. Of course, it also introduces lots of difficulty in troubleshooting, which is why if you can you should probably build a variable map before you get very far into playing this, so you don't forget. I do a bad job of this - berelinde does a very good job of this. Do, or do not, it is a choice you make, but if you have the patience for it I bet you will save yourself lots of troubleshooting time if you do. I keep having to go bakc and review choices because my map is scattered. Narrowing the Choices So far, each of the above code expands pathways and makes information on player choices available to other talks later on. But what about within the same talk? How do we make sure a pathway taken can influence later choices? Most situations do not need such tight attention. A talk that has different replies simply creates the branch pathways, and that is the end of it: example 3 /* Dialog Initiated */ IF ~Global("c-aranbg2rom","GLOBAL",5)~ THEN BEGIN c-aranbg2rom3 SAY ~[ARAN] Hey, <CHARNAME>, you are a girl...~ IF ~~ THEN REPLY ~[PC] Actually, I am a woman. Usually everyone stops calling us "girls" after we leave apprenticeship age behind, unless you are a dwarf. But you were saying?~ DO ~<<set_timers_and_advance_global>>~ + girls IF ~~ THEN REPLY ~[PC] Someone inform the Sages of Candlekeep - Aran has discovered the difference between boys and girls!~ DO ~<<set_timers_and_advance_global>>~ + sages IF ~~ THEN REPLY ~[PC] Is this the start of a personal discussion? I am not in the mood for smalltalk.~ DO ~<<set_timers_and_advance_global>>~ + forgetit END /* Pathway 1: Offended PC */ IF ~~ girls SAY ~[ARAN] Sometimes that seems like th' best picture o' all, <CHARNAME>. At least the sparkin' - not so much the squallin' babes what result.~ IF ~~ THEN GOTO pathway1 END /* Pathway 2: Joking */ IF ~~ sages SAY ~[ARAN] Well, come to think o' it, I did notice a mite bit o' difference...~ IF ~~ THEN GOTO pathway2 END /* Pathway 3: Go Away, Sellsword */ IF ~~ forgetit SAY ~[ARAN] Right, then. Sorry to bother you.~ IF ~~ THEN GOTO pathway3 END There are some situations, though, where building the dialog manually through pathways becomes a tangled web. In regular conversation, something like For this, since you are basically looping back to the same question over and over again until the player chooses a choice that advances the dialog, it would be great to do this: Coded like this, the state looping_block will always look the same. All three choices will remain. So using a global within the talk, like example 1, looks like a good way to screen out pathways that the player has already taken. It sounds logical - set the variable, and then let the next state rely on that variable. The problem is, it doesn't work exactly like that. Setting a "GLOBAL", "LOCAL", or "AREA" global all takes time to be able to be registered with the game and referenced in the same dialog. If you set a variable in one dialog state, you need at least one and one half (which means really two states - the reply state, and an additional intermediate state) to allow time for the global to set and be recognized by the talk it is in. So, what does this look like in code? Why don't we play with a talk designed to allow players to explore various romantic possibilities in-party for an NPC, Aran. The loop is entered through c-aranbg2rom3frequenting for dialog purposes, because we have to lead into the coversation differently that you would come back to the same idea: A. IF ~~ c-aranbg2rom3frequenting SAY ~[ARAN] So probably my best best don't rely on frequentin' inns along the way. The best bet might be look at th' ladies I see every day, an' perhaps there's somethin' more than just straight comradeship.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END B. The entry block des not need a filter block, because the first time through the dialog. But here is the filter block, to be passed through on the way back to c-aranbg2rom3someoneelse: IF ~~ c-aranbg2rom3challenging1 SAY ~[ARAN] That makes it a mite o' a challenge, eh?~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END C. Here is the workhorse, allowing dialog to reflect the potential matches within the party. The player can reject all choices by selecting reply 0 or reply 1, advancing the dialog. She is also given the opportunity to roleplay the evaluations, just to see what Aran thinks - a common enogh friendly conversation. A quick reminder: with PC and Aran, there is a maximum possible number of possible party-joined NPCs to discuss of 4. If they are all female distributed NPCs, there are 6 conversational choices facing Player1. It is much more likely there will be two or only one - in a canonical "good" party, for example, there will probably only be Aerie and Jaheira. IF ~~ c-aranbg2rom3someoneelse SAY ~[ARAN] Perhaps there might be someone around here, right under my nose...~ IF ~~ THEN REPLY ~[PC] I really do not think so, Aran.~ + c-aranbg2rom3remembered IF ~~ THEN REPLY ~[PC] She might be. Perhaps even about to put this nice cold water right down your back, to wake you up... ~ + c-aranbg2rom3remembered IF ~InParty("JAHEIRA") Global("c-jaheiramatch","LOCALS",0)~ THEN REPLY ~[PC] Jaheira? I thought you liked younger women.~ DO ~SetGlobal("c-jaheiramatch","LOCALS",1)~ + c-jaheiramatch1 IF ~InParty("AERIE") Global("c-aeriematch","LOCALS",0)~ THEN REPLY ~[PC] Who, Aerie?~ DO ~SetGlobal("c-aeriematch","LOCALS",1)~ + c-aeriematch1 IF ~InParty("IMOEN2") Global("c-imoenmatch","LOCALS",0)~ THEN REPLY ~[PC] Leave Imoen alone, Aran.~ DO ~SetGlobal("c-imoenmatch","LOCALS",1)~ + c-imoenmatch1 IF ~InParty("MAZZY") Global("c-mazzymatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Mazzy?~ DO ~SetGlobal("c-mazzymatch","LOCALS",1)~ + c-mazzymatch1 IF ~InParty("NALIA") Global("c-naliamatch","LOCALS",0)~ THEN REPLY ~[PC] Do you really think Nalia would be interested in you?~ DO ~SetGlobal("c-naliamatch","LOCALS",1)~ + c-naliamatch1 IF ~InParty("VICONIA") Global("c-viconiamatch","LOCALS",0)~ THEN REPLY ~[PC] The drowess. Riiiight. Tell me you are not considering Viconia, Aran.~ DO ~SetGlobal("c-viconiamatch","LOCALS",1)~ + c-viconiamatch1 IF ~InParty("R#ALLIS") Global("c-allisonmatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Allison?~ DO ~SetGlobal("c-allisonmatch","LOCALS",1)~ + c-allisonmatch1 IF ~InParty("CMALORA") Global("c-aloramatch","LOCALS",0)~ THEN REPLY ~[PC] Alora?? You are joking, right...~ DO ~SetGlobal("c-aloramatch","LOCALS",1)~ + c-aloramatch1 IF ~InParty("Anishai") Global("c-anishaimatch","LOCALS",0)~ THEN REPLY ~[PC] Anishai is not to be trusted with the silver, let alone your heart. Unless you enjoy pain.~ DO ~SetGlobal("c-anishaimatch","LOCALS",1)~ + c-anishaimatch1 IF ~InParty("MWAriena") Global("c-arienamatch","LOCALS",0)~ THEN REPLY ~[PC] Ariena?~ DO ~SetGlobal("c-arienamatch","LOCALS",0)~ + c-arienamatch1 IF ~InParty("M#AMBER") Global("c-ambermatch","LOCALS",0)~ THEN REPLY ~[PC] Amber? You look at her often, but I figured that it was because you did not trust her.~ DO ~SetGlobal("c-ambermatch","LOCALS",1)~ + c-ambermatch1 IF ~InParty("K#Auren") Global("c-aurenmatch","LOCALS",0)~ THEN REPLY ~[PC] You are not thinking of Auren, right...~ DO ~SetGlobal("c-aurenmatch","LOCALS",1)~ + c-aurenmatch1 IF ~InParty("WLBRAN") Global("c-branwen1match","LOCALS",0)~ THEN REPLY ~[PC] Branwen is just a bit intense for you, isn't she?~ DO ~SetGlobal("c-branwen1match","LOCALS",1)~ + c-branwen1match1 IF ~InParty("Britt") Global("c-brittmatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Britt?~ DO ~SetGlobal("c-brittmatch","LOCALS",1)~ + c-brittmatch1 IF ~InParty("CALLISTO") Global("c-callistomatch","LOCALS",0)~ THEN REPLY ~[PC] Callisto? I don't know...~ DO ~SetGlobal("c-callistomatch","LOCALS",1)~ + c-callistomatch1 IF ~InParty("Chloe") Global("c-chloematch","LOCALS",0)~ THEN REPLY ~[PC] You. Chloe. You and Chloe. Aran, let me smell your breath. I want to see exactly how drunk you are right now.~ DO ~SetGlobal("c-chloematch","LOCALS",1)~ + c-chloematch1 IF ~InParty("E3Fade") Global("c-fadematch","LOCALS",0)~ THEN REPLY ~[PC] Fade really does not seem to talk to you at all, Aran.~ DO ~SetGlobal("c-fadematch","LOCALS",1)~ + c-fadematch1 IF ~InParty("Keto") Global("c-ketomatch","LOCALS",0)~ THEN REPLY ~[PC] This should be fun. You think Keto might be a good match for you. By all means, tell me why.~ DO ~SetGlobal("c-ketomatch","LOCALS",1)~ + c-ketomatch1 IF ~InParty("R#Kitanya") Global("c-kitanyamatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Kitanya?~ DO ~SetGlobal("c-kitanyamatch","LOCALS",1)~ + c-kitanyamatch IF ~InParty("SAERILETH") Global("c-saerimatch","LOCALS",0)~ THEN REPLY ~[PC] I know you like younger women, Aran, but a Paladin of Tyr is a bit out of your league...~ DO ~SetGlobal("c-saerimatch","LOCALS",1)~ + c-saerimatch1 IF ~InParty("CMNIKITA") Global("c-nikimatch","LOCALS",0)~ THEN REPLY ~[PC] Nikita? Do you have a death wish?~ DO ~SetGlobal("c-nikimatch","LOCALS",1)~ + c-nikimatch1 IF ~InParty("CMNINAF") Global("c-ninamatch","LOCALS",0)~ THEN REPLY ~[PC] Ninafer really does not seem like your type.~ DO ~SetGlobal("c-ninamatch","LOCALS",1)~ + c-ninamatch1 IF ~InParty("DL#BWN") Global("c-branwen2match","LOCALS",0)~ THEN REPLY ~[PC] Branwen?~ DO ~SetGlobal("c-branwen2match","LOCALS",1)~ + c-branwen2match1 IF ~InParty("K#Sarah") Global("c-sarahmatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Sarah? Aran, have you ever really talked to her?~ DO ~SetGlobal("c-sarahmatch","LOCALS",1)~ + c-sarahmatch1 IF ~InParty("TASHIA") Global("c-tashiamatch","LOCALS",0)~ THEN REPLY ~[PC] Tashia? I did not think you found her interesting.~ DO ~SetGlobal("c-tashiamatch","LOCALS",1)~ + c-tashiamatch1 IF ~InParty("YASRAENA") Global("c-yasraenamatch","LOCALS",0)~ THEN REPLY ~[PC] You are not seriously considering Yasraena...~ DO ~SetGlobal("c-yasraenamatch","LOCALS",1)~ + c-yasraenamatch1 IF ~InParty("D#SILVER") Global("c-silvermatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Silverstar?~ DO ~SetGlobal("c-silvermatch","LOCALS",1)~ + c-silvermatch1 END D. And each one of the replies leads back to the filtering state: IF ~~ c-aranbg2rom3challenging SAY ~[ARAN] Now, then. I do take chances. But perhaps Tymora's Coin won't spin on that one.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END So, let's fill out the full lovetalk, using the technique. The Full Talk The repeating block is #18, c-aranbg2rom3someoneelse The entry state is c-aranbg2rom3frequenting and the filtering states for setting the globals are c-aranbg2rom3challenging1, 2, 3, 4, 5, so that there is a reply block and the filter block. /* Queen: Somebody To Love */ /* BG2 LoveTalk 3, c-aranbg2rom = 5 c-aranromtimer,C-ARAN_ROM */ IF ~Global("c-aranbg2rom","GLOBAL",5)~ THEN BEGIN c-aranbg2rom3 SAY ~[ARAN] Hey, <CHARNAME>, you are a girl...~ IF ~~ THEN REPLY ~[PC] Actually, I am a woman. Usually everyone stops calling us "girls" after we leave apprenticeship age behind, unless you are a dwarf. But you were saying?~ + c-aranbg2rom3noticed IF ~~ THEN REPLY ~[PC] Someone inform the Sages of Candlekeep - Aran has discovered the difference between boys and girls!~ + c-aranbg2rom3inn IF ~~ THEN REPLY ~[PC] Is this the start of a personal discussion? I am not in the mood for smalltalk.~ + c-aranbg2rom3inn IF ~~ THEN REPLY ~[PC] Your powers of observation are astounding.~ + c-aranbg2rom3inn IF ~~ THEN REPLY ~[PC] I am glad you noticed, Aran.~ + c-aranbg2rom3inn END IF ~~ c-aranbg2rom3noticed SAY ~[ARAN] (grins) Now, come to think o' it, you are right. But then again, I'd say you're still a bit wet behind the ears too. An' I don't mean on account o' washin' your face. Anyways... IF ~~ THEN GOTO c-aranbg2rom3inn END IF ~~ c-aranbg2rom3inn SAY ~[ARAN] At the last Inn we stayed. Blonde, beautiful blue eyes, great smile - she seemed to sparkle right pretty, she did. She came over, an' we talked for a bit, an' she seemed right interested. But I don't know. I couldn't tell if she was interested in just a dance an' some entertainment upstairs, or if she thought I was marriage material, like. IF ~~ THEN REPLY ~[PC] I didn't notice.~ + c-aranbg2rom3serious IF ~~ THEN REPLY ~[PC] That is not really my concern, Aran.~ + c-aranbg2rom3serious IF ~~ THEN REPLY ~[PC] Why yes, I noticed you making a fool of yourself.~ + c-aranbg2rom3really IF ~~ THEN REPLY ~[PC] I definitely noticed her, Aran. I thought she was just right for you.~ + c-aranbg2rom3really <<STANDARD EXIT BLOCK>> END IF ~~ c-aranbg2rom3really SAY ~[ARAN] Really? IF ~~ THEN REPLY ~[PC] Why, yes indeed. She would make you a wonderful wife. You should ask her out next time we pass through that way.~ + c-aranbg2rom3doit IF ~~ THEN REPLY ~[PC] Absolutely. Sparkly eyes and cute hair, never been more than three feet from her front door, no education... she will believe every story you tell her. You can be a fat, happy, contented chef at an inn, and she can bear you five or six children.~ + c-aranbg2rom3nicepic IF ~~ THEN REPLY ~[PC] Who else would be naive enough to believe your tall tales, and put up with your snoring.~ + c-aranbg2rom3snore IF ~~ THEN REPLY ~[PC] No, Aran, I was joking. It is not often you meet someone randomly and get that serious that quickly.~ + c-aranbg2rom3serious END IF ~~ c-aranbg2rom3doit SAY ~[ARAN] Well, I might just do that, if you think it might be taken in th' right way.~ IF ~~ THEN GOTO c-aranbg2rom3serious END IF ~~ c-aranbg2rom3nicepic SAY ~[ARAN] Sometimes that seems like th' best picture o' all, <CHARNAME>. At least the sparkin' - not so much the squallin' babes what result.~ IF ~~ THEN GOTO c-aranbg2rom3serious END IF ~~ c-aranbg2rom3snore SAY ~[ARAN] I snore? Well, bugger all Chauntea's haystacks - I didn't know that. I'd better lose a bit o weight, or somethin'. But really, now...~ IF ~~ THEN GOTO c-aranbg2rom3serious END IF ~~ c-aranbg2rom3serious SAY ~[ARAN] Do you think she was serious, or just out for some fun?~ IF ~~ THEN REPLY ~[PC] In general, Aran, if you meet someone at a bar only once, I think it is unlikely she was looking for a serious committment. But I could be wrong.~ + c-aranbg2rom3experience IF ~~ THEN REPLY ~[PC] It takes longer than a single evening to fall in love, Aran.~ + c-aranbg2rom3experience IF ~~ THEN REPLY ~[PC] Well, I believe there is such a thing as love at first sight. But I have heard it is usually found with the people close to you for a longer period of time.~ + c-aranbg2rom3experience <<STANDARD EXIT BLOCK>> END IF ~~ c-aranbg2rom3experience SAY ~[ARAN] So , you have experience at that? The fallin' in love, I mean?~ IF ~~ THEN REPLY ~[PC] That is for me to know and you to find out.~ + c-aranbg2rom3lostlove IF ~~ THEN REPLY ~[PC] That is a bit personal, and painful, Aran. I don't want to talk about it.~ + c-aranbg2rom3lostlove IF ~~ THEN REPLY ~[PC] Perhaps. Have you had any experience yourself?~ + c-aranbg2rom3lostlove IF ~~ THEN REPLY ~[PC] Love, or lust? There is a difference, you know.~ + c-aranbg2rom3hear END IF ~~ c-aranbg2rom3hear SAY ~[ARAN] I did hear there was. I'm not so sure, m'self. But then again, as far as I know, I only have had th' second.~ IF ~~ THEN GOTO c-aranbg2rom3frequenting END IF ~~ c-aranbg2rom3lostlov SAY ~[ARAN] Well, I don't know. I did think I had a friend once what was interested. She was a rare one, she was. Sun Elf father, human mother, long hair like polished brass, an' a body what made... *ahem*... well, that's another story. Unfortunately she ran off with some Cyric - blighted bard, all dark, broodin' an' "I just lost the love o' me life" type. I learned my lesson well, I did. Women seem to want danger, bad boys, an' damaged goods.~ IF ~~ THEN REPLY ~[PC] Three for three - you are all set, Aran. Pity you don't have the other requirement. You need to be just a little more handsome, and you might have a fighting chance with a real woman.~ + c-aranbg2rom3frequenting IF ~~ THEN REPLY ~[PC] Not all women like the same thing, Aran. You might try listening to them for awhile, or even asking them.~ + c-aranbg2rom3frequenting IF ~~ THEN REPLY ~[PC] Well, if you met her in an inn...~ + c-aranbg2rom3frequenting END IF ~~ c-aranbg2rom3frequenting SAY ~[ARAN] So probably my best best don't rely on frequentin' inns along the way. The best bet might be look at th' ladies I see every day, an' perhaps there's somethin' more than just straight comradeship.~ IF ~~ THEN GOTO c-aranbg2rom3challenging1 END IF ~~ c-aranbg2rom3challenging1 SAY ~[ARAN] That makes it a mite o' a challenge, eh?~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END IF ~~ c-aranbg2rom3challenging2 SAY ~[ARAN] Well, there might be somethin' to what you say.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END IF ~~ c-aranbg2rom3challenging3 SAY ~[ARAN] Right. You have a point there, you do.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END IF ~~ c-aranbg2rom3challenging4 SAY ~[ARAN] I like a challenge. But I don't know if that be a challenge or a lost cause.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END IF ~~ c-aranbg2rom3challenging5 SAY ~[ARAN] Now, then. I do take chances. But perhaps Tymora's Coin won't spin on that one.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END IF ~~ c-aranbg2rom3challenging6 SAY ~[ARAN] It could happen, right? It might be possible.~ IF ~~ THEN GOTO c-aranbg2rom3someoneelse END IF ~~ c-aranbg2rom3someoneelse SAY ~[ARAN] Perhaps there might be someone around here, right under my nose...~ IF ~~ THEN REPLY ~[PC] I really do not think so, Aran.~ + c-aranbg2rom3remembered IF ~~ THEN REPLY ~[PC] She might be. Perhaps even about to put this nice cold water right down your back, to wake you up... ~ + c-aranbg2rom3remembered IF ~InParty("JAHEIRA") Global("c-jaheiramatch","LOCALS",0)~ THEN REPLY ~[PC] Jaheira? I thought you liked younger women.~ DO ~SetGlobal("c-jaheiramatch","LOCALS",1)~ + c-jaheiramatch1 IF ~InParty("AERIE") Global("c-aeriematch","LOCALS",0)~ THEN REPLY ~[PC] Who, Aerie?~ DO ~SetGlobal("c-aeriematch","LOCALS",1)~ + c-aeriematch1 IF ~InParty("IMOEN2") Global("c-imoenmatch","LOCALS",0)~ THEN REPLY ~[PC] Leave Imoen alone, Aran.~ DO ~SetGlobal("c-imoenmatch","LOCALS",1)~ + c-imoenmatch1 IF ~InParty("MAZZY") Global("c-mazzymatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Mazzy?~ DO ~SetGlobal("c-mazzymatch","LOCALS",1)~ + c-mazzymatch1 IF ~InParty("NALIA") Global("c-naliamatch","LOCALS",0)~ THEN REPLY ~[PC] Do you really think Nalia would be interested in you?~ DO ~SetGlobal("c-naliamatch","LOCALS",1)~ + c-naliamatch1 IF ~InParty("VICONIA") Global("c-viconiamatch","LOCALS",0)~ THEN REPLY ~[PC] The drowess. Riiiight. Tell me you are not considering Viconia, Aran.~ DO ~SetGlobal("c-viconiamatch","LOCALS",1)~ + c-viconiamatch1 IF ~InParty("R#ALLIS") Global("c-allisonmatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Allison?~ DO ~SetGlobal("c-allisonmatch","LOCALS",1)~ + c-allisonmatch1 IF ~InParty("CMALORA") Global("c-aloramatch","LOCALS",0)~ THEN REPLY ~[PC] Alora?? You are joking, right...~ DO ~SetGlobal("c-aloramatch","LOCALS",1)~ + c-aloramatch1 IF ~InParty("Anishai") Global("c-anishaimatch","LOCALS",0)~ THEN REPLY ~[PC] Anishai is not to be trusted with the silver, let alone your heart. Unless you enjoy pain.~ DO ~SetGlobal("c-anishaimatch","LOCALS",1)~ + c-anishaimatch1 IF ~InParty("MWAriena") Global("c-arienamatch","LOCALS",0)~ THEN REPLY ~[PC] Ariena?~ DO ~SetGlobal("c-arienamatch","LOCALS",0)~ + c-arienamatch1 IF ~InParty("M#AMBER") Global("c-ambermatch","LOCALS",0)~ THEN REPLY ~[PC] Amber? You look at her often, but I figured that it was because you did not trust her.~ DO ~SetGlobal("c-ambermatch","LOCALS",1)~ + c-ambermatch1 IF ~InParty("K#Auren") Global("c-aurenmatch","LOCALS",0)~ THEN REPLY ~[PC] You are not thinking of Auren, right...~ DO ~SetGlobal("c-aurenmatch","LOCALS",1)~ + c-aurenmatch1 IF ~InParty("WLBRAN") Global("c-branwen1match","LOCALS",0)~ THEN REPLY ~[PC] Branwen is just a bit intense for you, isn't she?~ DO ~SetGlobal("c-branwen1match","LOCALS",1)~ + c-branwen1match1 IF ~InParty("Britt") Global("c-brittmatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Britt?~ DO ~SetGlobal("c-brittmatch","LOCALS",1)~ + c-brittmatch1 IF ~InParty("CALLISTO") Global("c-callistomatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Callisto?~ DO ~SetGlobal("c-callistomatch","LOCALS",1)~ + c-callistomatch1 IF ~InParty("Chloe") Global("c-chloematch","LOCALS",0)~ THEN REPLY ~[PC] You Chloe. Aran, let me smell your breath. I want to see exactly how drunk you are right now.~ DO ~SetGlobal("c-chloematch","LOCALS",1)~ + c-chloematch1 IF ~InParty("E3Fade") Global("c-fadematch","LOCALS",0)~ THEN REPLY ~[PC] Fade really does not seem to talk to you at all, Aran.~ DO ~SetGlobal("c-fadematch","LOCALS",1)~ + c-fadematch1 IF ~InParty("Keto") Global("c-ketomatch","LOCALS",0)~ THEN REPLY ~[PC] This should be fun. You think Ketop might be a good match for you. By all means, tell me why.~ DO ~SetGlobal("c-ketomatch","LOCALS",1)~ + c-ketomatch1 IF ~InParty("R#Kitanya") Global("c-kitanyamatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Kitanya?~ DO ~SetGlobal("c-kitanyamatch","LOCALS",1)~ + c-kitanyamatch IF ~InParty("SAERILETH") Global("c-saerimatch","LOCALS",0)~ THEN REPLY ~[PC] I know you like younger women, Aran, but a Paladin of Tyr is a bit out of your league...~ DO ~SetGlobal("c-saerimatch","LOCALS",1)~ + c-saerimatch1 IF ~InParty("CMNIKITA") Global("c-nikimatch","LOCALS",0)~ THEN REPLY ~[PC] Nikita? Do you have a death wish?~ DO ~SetGlobal("c-nikimatch","LOCALS",1)~ + c-nikimatch1 IF ~InParty("CMNINAF") Global("c-ninamatch","LOCALS",0)~ THEN REPLY ~[PC] Ninafer really does not seem like your type.~ DO ~SetGlobal("c-ninamatch","LOCALS",1)~ + c-ninamatch1 IF ~InParty("DL#BWN") Global("c-branwen2match","LOCALS",0)~ THEN REPLY ~[PC] Branwen?~ DO ~SetGlobal("c-branwen2match","LOCALS",1)~ + c-branwen2match1 IF ~InParty("K#Sarah") Global("c-sarahmatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Sarah? Aran, have you ever realy talked to her?~ DO ~SetGlobal("c-sarahmatch","LOCALS",1)~ + c-sarahmatch1 IF ~InParty("TASHIA") Global("c-tashiamatch","LOCALS",0)~ THEN REPLY ~[PC] Tashia? I did not think you found her interesting.~ DO ~SetGlobal("c-tashiamatch","LOCALS",1)~ + c-tashiamatch1 IF ~InParty("YASRAENA") Global("c-yasraenamatch","LOCALS",0)~ THEN REPLY ~[PC] You are not seriously considering Yasraena...~ DO ~SetGlobal("c-yasraenamatch","LOCALS",1)~ + c-yasraenamatch1 IF ~InParty("D#SILVER") Global("c-silvermatch","LOCALS",0)~ THEN REPLY ~[PC] Who, Silverstar?~ DO ~SetGlobal("c-silvermatch","LOCALS",1)~ + c-silvermatch1 END // The Competition IF ~~ c-jaheiramatch1 SAY ~[ARAN] There's Jaheira. Well, now she is a right fine woman. She's smart, a bit bossy, an' she can partner right quick in th' cookin' area. She's a bit motherin', but then again, she's an older woman in real years, if not in th' equivalent. She might take a shine to me.~ IF ~~ THEN REPLY ~[PC] Leave her alone, Aran. She has lost the love of her life, and is in a great deal of pain. She does not need you distracting her and bothering her.~ IF ~~ THEN REPLY ~[PC] I think that is a great idea. You can go worship trees together.~ + c-aranbg2rom3challenging 1 2 3 4 5 6 IF ~~ THEN REPLY ~[PC] <<TEXT>> ~ + c-aranbg2rom3challenging 1 2 3 4 5 6 END IF ~~ c-aeriematch1 SAY ~[ARAN] Aerie is a fine girl. She just reaches out wi' those eyes, an' tugs at your heartstrings. It might be the Aavariel, but then again, it might just be she looks like she needs a right stong man to protect her an' look out for her. It's nice to be needed.~ IF ~~ THEN REPLY ~[PC] A great way to establish a relationship, Aran. Choose the frail, self-consious waif who has image problems and has suffered traumatic abuse. A truly equal relationship.~ + c-aranbg2rom3challenging 1 2 3 4 5 6 IF ~~ THEN REPLY ~[PC] She has been hurt rather badly, Aran. I would be careful of offering her more than you intend. Breaking her heart woud be easy to do, and a disaster for this party as well as for her.~ + c-aranbg2rom3challenging 1 2 3 4 5 6 IF ~~ THEN REPLY ~[PC] What is it with men and elves?~ + c-aranbg2rom3challenging 1 2 3 4 5 6 END IF ~~ c-imoenmatch1 SAY ~[ARAN] <<_TEXT_>> ~ IF ~~ THEN REPLY ~[PC] <<_TEXT_>> ~ + c-aranbg2rom3challenging 1 2 3 4 5 6 IF ~~ THEN REPLY ~[PC] <<_TEXT_>> ~ + c-aranbg2rom3challenging 1 2 3 4 5 6 END IF ~~ c-mazzymatch1 SAY ~[ARAN] Mazzy is right pretty, in her own way. I don't know, though. She is a mighty riteous Han. She might not take kindly to me flirtin', an' all. Besides, most o' the Halfling folk seem tied up wi' bonds o' family an' obligation. I never heard o' a halfling an' a human fallin' for eachother. IF ~~ THEN REPLY ~[PC] <<_TEXT_>> ~ + c-aranbg2rom3challenging 1 2 3 4 5 6 IF ~~ THEN REPLY ~[PC] <<_TEXT_>> ~ + c-aranbg2rom3challenging 1 2 3 4 5 6 END // snip END // IF ~~ c-aranbg2rom3remembered SAY ~[ARAN] Hey, I just remembered. I met you in an Inn, right?~ IF ~~ THEN REPLY ~[PC] Have you noticed you keep describing all these women's physical attributes?~ + c-aranbg2rom3harm IF ~~ THEN REPLY ~[PC] I was slumming. If I remember correctly, you approached me about some employment, or something. I do not seem remember candlelight and roses.~ + c-aranbg2rom3slumming IF ~~ THEN REPLY ~[PC] You meet all sorts of people in taverns. I keep a watchful eye on most of the crowd.~ + c-aranbg2rom3slumming END IF ~~ c-aranbg2rom3harm SAY ~[ARAN]I don't mean no harm. I guess that's just the way menfolk think.~ IF ~~ THEN REPLY ~[PC] I don't believe that. I think that is the way boys think. A real man would see people, not objects.~ + c-aranbg2rom3slumming IF ~~ THEN REPLY ~[PC] Women think that way sometimes too, you know.~ + c-aranbg2rom3slumming IF ~~ THEN REPLY ~[PC] Men think?~ + c-aranbg2rom3slumming END IF ~~c-aranbg2rom3slumming SAY ~[ARAN] Well, now, you might be right there. I suspect we boys do more'n occasionally run to the shallow side o' life at times. I'd say women, too, based on where I see your eyes lingerin' sometimes. Then again, I see your eyes linger on some folks a mite more than a casual one over, yourself.~ IF ~~ THEN REPLY ~[PC] That might not mean anything. After all, I am looking at you right now.~ + c-aranbg2rom3boss IF ~~ THEN REPLY ~[PC] So many choices, so little time...~ + c-aranbg2rom3boss IF ~~ THEN REPLY ~[PC] That is different.~ + c-aranbg2rom3boss IF ~~ THEN REPLY ~[PC] That sounds like you might be a little jealous.~ + c-aranbg2rom3boss IF ~~ THEN REPLY ~[PC] So, how would you describe me, Aran?~ + c-aranbg2rom3game END IF ~~ c-aranbg2rom3boss SAY ~[ARAN] If you say so, <CHARNAME>. If you say so.~ IF ~~ THEN EXIT END IF ~~ c-aranbg2rom3game SAY ~[ARAN] Oh, I'm not fallin' for that, <CHARNAME>. I know that game too well. I'd say "<CHARNAME>. You know, the one what's in charge o' this here party". I get to describin' you, an' I'm likely to dig a hole an' have you kickin' the dirt over my head right quick!~ IF ~~ THEN EXIT END So, Why Did This Talk Not Work Out? Why Is It On The Recycling Or Disposal Pile? Well, the idea is sound, and it does a good job of showing off some ways of variable manipulation - even more fun would be the "undo state", where we DE-advance the variable - + ~Global("c-silvermatch","LOCALS",1)~ + ~[PC] Are you sure SilverSatr is not that attractive to you? Do you want to think about her again?~ DO ~SetGlobal("c-silvermatch","LOCALS",0)~ but the devil is in the details. Looking through this, there are some problems to be worked on. Number one, the project has moved on, and we have code example in play that already show these kinds of usages (though I want to go back and put a randomizing script block in there, because it is just way cool). Second problem - effort vs. playability. The way this is created, I either have to assume PC is straight to build a corresponding set of choices - otherwise it will be over a month of writing to get specific reactions for all available NPCs. Even using Aran's straightness to get specifics down to female NPCs, there is alot there. So unless inspiration hits, this one is a tough one to write. We can keep it positive, and search for good reasons for a match, aviding disrespect for other NPCs, but then we get a way too cheery, upbeat, unrealistic view, but that is not so cool. The real life conversation would be a bit harsher - "You would go out with *her*? I mean, that voice just cuts like a kife, man. Plus, she seems so needy. And the scars on her back... yuck. Drop the damaged elf-chick, and go for a real woman." Third Problem - psychology. It works as a friend setting up Aran, but there is no opportunity for him to follow through, unless the player is doing something with Amber and being careful about how it is all set up. So each way I try to rewrite it, starting as a lovetalk means that PC is trying to foist him off on others, or having to listen to him go "hey, perhaps she would like me". Perhaps a bit too realistic and annoying, having Aran talk about why others might be preferable to PC - and completely a waste of her time if she just wants to be friends. And with a guy PC, things get even more difficult to work through without it being odd. Aran is not going to mind talking openly about how a two male or two female pairings might work out, being an open-minded dude in FR, where open-mindedness includes romances that cross species as well as gender. But the PC, well, not so easy to guage reaction and account for pathways. But most of all, #4, the big question - how much is this advancing the relationship, versus how much is this just fluff? Can we have a similar kind of discussion to foster that sense of "good friendship developing that might become more"? Given the number of talks already in place, is this getting us anywhere exploring either Aran's personality or the Player's roleplaying personality in a way not covered by other talks? So, some salvage work... A way around some of the challenges is to adjust the level of detail. We might be able to salvge some of the reactions, by making them more generic: IF ~InParty(Player2) Gender(Player2,FEMALE) !HasItemEquiped("belt05",Player2) !Name(Player2,"c-aran")~ + ~[PC] What about <PLAYER2>? She might be just what you want.~ + newstate IF ~InParty(Player3) Gender(Player3,FEMALE) !HasItemEquiped("belt05",Player2) !Name(Player3,"c-aran")~ + ~[PC] What about <PLAYER3>? She might be just what you want.~ + newstate IF ~InParty(Player4) Gender(Player4,FEMALE) !HasItemEquiped("belt05",Player2) !Name(Player4,"c-aran")~ + ~[PC] What about <PLAYER4>? She might be just what you want.~ + newstate IF ~InParty(Player5) Gender(Player5,FEMALE) !HasItemEquiped("belt05",Player2) !Name(Player5,"c-aran")~ + ~[PC] What about <PLAYER5>? She might be just what you want.~ + newstate IF ~InParty(Player6) Gender(Player6,FEMALE) !HasItemEquiped("belt05",Player2) !Name(Player6,"c-aran")~ + ~[PC] What about <PLAYER6>? She might be just what you want.~ + newstate IF ~InParty(Player2) !HasItemEquiped("belt05",Player2) !Name(Player2,"c-aran")~ THEN BEGIN z100 SAY ~[ARAN] What about <PLAYER2>? You know, <HESHE> might be just what you want.~ + newstate IF ~InParty(Player3) !HasItemEquiped("belt05",Player3) !Name(Player3,"c-aran")~ THEN BEGIN z101 SAY ~[ARAN] What about <PLAYER3>? You know, <HESHE> might be just what you want.~ + newstate IF ~InParty(Player4) !HasItemEquiped("belt05",Player4) !Name(Player4,"c-aran")~ THEN BEGIN z102 SAY ~[ARAN] What about <PLAYER4>? You know, <HESHE> might be just what you want.~ + newstate IF ~InParty(Player5) !HasItemEquiped("belt05",Player5) !Name(Player5,"c-aran")~ THEN BEGIN z103 SAY ~[ARAN] What about <PLAYER5>? You know, <HESHE> might be just what you want.~ + newstate IF ~InParty(Player6) !HasItemEquiped("belt05",Player6) !Name(Player6,"c-aran")~ THEN BEGIN z104 SAY ~[ARAN] What about <PLAYER6>? You know, <HESHE> might be just what you want.~ + newstate Of course, we run into the difficulty of scripting PC response to potential cross-gender suggestions - which is fine for me to present with Aran. but tougher for scripting PC responses to. Plus, it leaves little "punch" to the dialog, wheras saying things Note I wimped out on the Girdle of gender Change, too ( !HasItemEquiped("belt05",Player2) ) . Too hard to come up with a way of filtering out whether or not Aran would react well, or the PC, for that matter, to romancing Edwina with the belt on. Great ground for lots of stuff, but way too hard to anticipate player intent and keep things non-jarring. So, this one has lingered since October of 2008, waiting for inspiration to strike, or parts to be salvaged. Workrooms at many hosting sites, closed or open in forums, are littered with materials like this, so if you have some of these tossed in a file somewhere, you are not alone. Perhaps the ideas will make their way out, or perhaps they will be tossed out with the next crash of your hard drive, but either way, thinking through the reasons why it might or not make it is a useful exercise in making choices about your mod. Sometimes, for whatever reason, several months of work need to be scrapped. At least we are not pro writers, who may have to dump draft after draft!
×
×
  • Create New...