Jump to content

Search the Community

Showing results for tags 'DisplayStringHead()'.



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 1 result

  1. DisplayStringHead() or, classic commentary that sneaks past conversation In all of the i.e. engine games, there is a "shortcut" to side commentary - stuff that is either sotto voce or minor sidebar commentary not really worth a full interruption of the action for a full dialog treatment. This shortcut is displaying a short string, very short, over the head of the speaker, for example the *groan* and *gasp* comments in the healer's hut at the beginning of IWD2, or in its most direct usage, Lilacor's occassional comments (though that actually uses a related command, not DSH(), but you get the point. Now, at one time in i.e. moding history, everyone seemed to be in love with this usage, especially with items - a talking item, way cool! But, as things have gone on, this kind of thing in BG2 has been only used occasionally, and with some pretty specific intent. Let's look at it, though, because it could help out with some side comments and take a burden off of building a tone of little two-liner interchanges. As always, we can always turn it off via setting or unsetting a blocking variable, so players who hate this can drop the content, and folks who like it can add it in. When too Much Is Too Much Perhaps this might make it into banter territory - short and sweet. But does the party really needs to stop and hear all that? there is not much point to it, and it is scenery dialog. But this one really, really cannot be worth a single dialog box popping... or even Now, most modders don't add this stuff much - except for some cutscenes work, hardly ever. A little goes a long, long way, and frankly the game uses the same vehicle for "out-of-character pointers", so it can be distracting. Lilacor is a PITA I seldom enjoy for long, even though he is an interesting personality... or the first 5 playthroughs... So who has used this and how can we see what it is all about? BioWare™ BG2 Usage Surprisingly, according to a search of all decompiled .bcs shipped with BGII-SoA and updated to ToB, 1,398 times in .bcs. Wow. OK, there are alot of BG files included in that number, but still - a pretty darned high incidence of usage for something that is not particularly noticeable. Most of the usage is simple stuff, scenery stuff, but here are two quick samples: usage as stage direction or hint for the player This example is how the dividing troll, well, "divides". file BGII - SoA\bg2_bcs\TROLUO01.BAF IF HPLT(Myself,10) THEN RESPONSE #100 DisplayStringHead(Myself,49970) // To your horror the troll's corpse heaves, and with a violent splash two smaller trolls emerge from the body. SmallWait(1) CreateVisualEffectObject("ICCSWOUI",Myself) Wait(1) CreateCreatureObject("trollsm2",Myself,0,0,0) // Troll CreateCreatureObject("trollsm2",Myself,0,0,0) // Troll CreateVisualEffectObject("ICCSWOUI",Myself) DestroySelf() END usage as scenery dialog not worthy of a conversation Here, the Beastmaster in the Gladiator pits bemoans the loss of his companion, without pausing to interrupt the combat with a long banter and digressive diatribe about the fundamental unfairness of clobbering an animal with an automatic rifle instead of using nature's equipment and taking her on with just your own bare hands, followed by a small eulogy, while for some reason all combat ceases and people chat about waiting for the fight to restart: file BGII - SoA\bg2_bcs\BEAST.BAF IF See([PC]) Dead("Tabitha") !StateCheck(Myself,STATE_CHARMED) Global("cry","LOCALS",0) THEN RESPONSE #100 DisplayStringHead(Myself,2544) // My Tabitha...loyal to the end. Your death I shall avenge, on that I swear. Enemy() SetGlobal("cry","LOCALS",1) END and of course, the usage for our favorite talking sword, in baldur.bcs NOTE: [DON'T DO THIS EVAR EVAR EVVVVARRRRRR!!!! You had better know your crap thoroughly before you mess with the master script, or you risk really messing up the game for EVERYONE... way not cool... and it runs all the time, and a big baldur.bcs slows everything down, so even if you don't screw it up, you slow down everyone else whether your mod is active or not, or the player is using your content or not - you basically just added a permanent ankle weight to the whole game, so it had better be absolutely necesssary and bloody well worth it, too. Use multiple area scripts with checks for your content being active. Use your NPC script. Heck, use whatever you can figure, and if you can't figure it out, ask every modder you have ever heard of. Seriously. Even if you weight it correctly, and set an immediate blocking variable like InParty("myNPC"). Sorry, rant over. ] file BGII - SoA\bg2_bcs\BALDUR.BAF, the related "DisplayStringHeadOwner()", so that if an item is equipped it will DSH() on the actor... IF Delay(600) CombatCounter(0) OR(6) HasItemEquipedReal("sw2h14",Player1) // Lilarcor HasItemEquipedReal("sw2h14",Player2) // Lilarcor HasItemEquipedReal("sw2h14",Player3) // Lilarcor HasItemEquipedReal("sw2h14",Player4) // Lilarcor HasItemEquipedReal("sw2h14",Player5) // Lilarcor HasItemEquipedReal("sw2h14",Player6) // Lilarcor THEN RESPONSE #10 DisplayStringHeadOwner("sw2h14",20580) // I may be an intelligent sword, but I've had no formal edumication. RESPONSE #10 DisplayStringHeadOwner("sw2h14",20779) // Can we go kill something now, huh? RESPONSE #10 DisplayStringHeadOwner("sw2h14",20780) // How about now? No? RESPONSE #10 DisplayStringHeadOwner("sw2h14",20956) // Come on let's kill something NOW! RESPONSE #10 DisplayStringHeadOwner("sw2h14",24939) // mmmm.... now? RESPONSE #10 DisplayStringHeadOwner("sw2h14",25349) // What about now? RESPONSE #10 DisplayStringHeadOwner("sw2h14",31258) // Now? Please? Pretty please? RESPONSE #10 DisplayStringHeadOwner("sw2h14",31259) // I don't know what you were expecting, but as a sword I'm pretty one-dimensional in what I want. RESPONSE #10 DisplayStringHeadOwner("sw2h14",31260) // Can we go whack something now? RESPONSE #10 DisplayStringHeadOwner("sw2h14",31638) // Let's whack something eeeeevvvvillllll.... RESPONSE #10 DisplayStringHeadOwner("sw2h14",31639) // Why don't we go kill that over there? RESPONSE #10 DisplayStringHeadOwner("sw2h14",31640) // You know, I was a Moonblade once. RESPONSE #10 DisplayStringHeadOwner("sw2h14",31641) // You really need to clean me. I like to shine! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31646) // Are we going to kill something now, maybe? Huh? RESPONSE #10 DisplayStringHeadOwner("sw2h14",31649) // You know, my last owner always said I was sharp and edgy. He was such an ass. RESPONSE #10 DisplayStringHeadOwner("sw2h14",31651) // I don't chop wood. I am not an axe. RESPONSE #10 DisplayStringHeadOwner("sw2h14",31652) // Now! Now! Kill something now!! Yeah! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31654) // Booooo-ring! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31655) // (sigh) RESPONSE #10 DisplayStringHeadOwner("sw2h14",31656) // (double sigh) RESPONSE #10 DisplayStringHeadOwner("sw2h14",6433) // Wanna go kill that over there? C'mon, let's kill somthin'! END IF Delay(125) !CombatCounter(0) OR(6) HasItemEquipedReal("sw2h14",Player1) // Lilarcor HasItemEquipedReal("sw2h14",Player2) // Lilarcor HasItemEquipedReal("sw2h14",Player3) // Lilarcor HasItemEquipedReal("sw2h14",Player4) // Lilarcor HasItemEquipedReal("sw2h14",Player5) // Lilarcor HasItemEquipedReal("sw2h14",Player6) // Lilarcor THEN RESPONSE #10 DisplayStringHeadOwner("sw2h14",839) // You deal, I'll cut! RESPONSE #10 DisplayStringHeadOwner("sw2h14",844) // Let's see what's inside this one! Yeah! RESPONSE #10 DisplayStringHeadOwner("sw2h14",849) // Come get some! Boo-yah! RESPONSE #10 DisplayStringHeadOwner("sw2h14",869) // Choke up, dolt, your grip is all wrong! RESPONSE #10 DisplayStringHeadOwner("sw2h14",2308) // Hands up, kiddies, who wants to die?! RESPONSE #10 DisplayStringHeadOwner("sw2h14",2389) // Mmmm... tastes like chicken! RESPONSE #10 DisplayStringHeadOwner("sw2h14",4393) // Sissy fighter! You grab, I'll scratch! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31659) // Muwahahaha-ha-ha!! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31660) // You can't be serious! RESPONSE #10 DisplayStringHeadOwner("sw2h14",7908) // Ooo, that'll leave a mark! RESPONSE #10 DisplayStringHeadOwner("sw2h14",8480) // Murder! Death!! KILL!!! RESPONSE #10 DisplayStringHeadOwner("sw2h14",9687) // Who's your daddy! RESPONSE #10 DisplayStringHeadOwner("sw2h14",9800) // We got a gusher! RESPONSE #10 DisplayStringHeadOwner("sw2h14",10725) // Are YOU talking to ME?!! RESPONSE #10 DisplayStringHeadOwner("sw2h14",11255) // Some of my finest work! RESPONSE #10 DisplayStringHeadOwner("sw2h14",12671) // I'm the best at what I do, and what I do ain't pretty! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31662) // Yeah! Hit it! Hit it again! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31663) // I am invincible! Invincible, I say! RESPONSE #10 DisplayStringHeadOwner("sw2h14",32426) // Wouldn't it be cool if you could dual-wield me? RESPONSE #10 DisplayStringHeadOwner("sw2h14",19304) // YOINK! Got yer nose! RESPONSE #10 DisplayStringHeadOwner("sw2h14",19441) // My brother is a +12 Hackmaster! RESPONSE #10 DisplayStringHeadOwner("sw2h14",19638) // I love the smell of daisies in the morning! RESPONSE #10 DisplayStringHeadOwner("sw2h14",20059) // Swing harder! Swing harder!! RESPONSE #10 DisplayStringHeadOwner("sw2h14",20396) // Bring 'em on! I ain't done! RESPONSE #10 DisplayStringHeadOwner("sw2h14",20457) // Oh yeah! RESPONSE #10 DisplayStringHeadOwner("sw2h14",31658) // Let's dance! RESPONSE #10 DisplayStringHeadOwner("sw2h14",34689) // Kill it! Kill it quick before they're all gone! RESPONSE #10 DisplayStringHeadOwner("sw2h14",36145) // Kill kill kill! Yeah! Cool!! RESPONSE #10 DisplayStringHeadOwner("sw2h14",41815) // ...and this one's for grandma, who said I'd never amount to anything more than a butterknife!! RESPONSE #10 DisplayStringHeadOwner("sw2h14",6434) // Hot butta! RESPONSE #10 DisplayStringHeadOwner("sw2h14",6435) // You feel lucky, punk? RESPONSE #10 DisplayStringHeadOwner("sw2h14",6441) // Oooh, I'm shaking! Haha! RESPONSE #10 DisplayStringHeadOwner("sw2h14",6442) // Oooh, throw a coin in that fountain! Hahaha! END Well, ok, what about mods? One of my favorite ones uses it in a way that I would not consider - I would rather some of Tashia's stuff was actually set up as dialog or banters, but some of them are pretty enjoyable as throw-away lines: I like her flirting, with some cool one-liner put-downs, using a random response and resetting the LOCALS value to zero for a new cycle - pretty darned cool, since they are one-liners, and don't need a bunch of responses: IF Global("DoFlirt","LOCALS",5) THEN RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@280) // Excusez-moi, je... sans vouloir vous offenser... mais vous êtes un de ces étrangers dont tout le monde parle, n'est-ce pas ? Un aventurier venu du nord ? RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@281) // Le parchemin de Helm dispara”t avec la destruction de l'avatar de Démogorgon. RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Myself,@282) // P-par pitié, ne me faites pas de mal ! Je... je suis venu vous voir parce que j'ai entendu parler de votre grand pouvoir, étranger. Vous... vous êtes bien un aventurier venu du nord, n'est-ce pas ? RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@283) // RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@284) // RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@285) // Mais oui, bien sûr. Tout le monde peut voir que vous êtes un homme extraordinaire, pardonnez-moi. RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@286) // Et toi, tu dois être celui dont parlait le garçon près du cimetière. RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@287) // On vous a parlé de moi ? Oui, c'est vrai que c'est une petite ville. Et à l'écart de tout, c'est-ce que j'ai pensé... suffisamment pour que personne ne me trouve ici. Quelle grossière erreur ! RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@288) // C'est une aubaine que quelqu'un d'aussi puissant que vous soit venu dans ce coin perdu. Je pensais qu'Amkethran serait suffisamment loin de tout pour que personne ne m'y trouve, mais je me trompais ! RESPONSE #10 SetGlobal("DoFlirt","LOCALS",0) DisplayStringHead(Player1,@289) // Je ne veux pas vous importuner, étranger, mais je cours un très grave danger ! J'ai besoin de votre aide ! J'implore de vous une faveur, messire, sinon ma fille et moi allons sûrement mourir ! END Where I disagree with the usage is when there are several lines passed back and forth. Not the ones that might be mini-banters, like this funny little jibing of Jaheira's snoring: IF InParty(Myself) PartyRested() AreaType(DUNGEON) See("Jaheira") InParty("Jaheira") !Global("SnoreJaheira","GLOBAL",1) THEN RESPONSE #100 SetGlobal("SnoreJaheira","GLOBAL",1) DisplayStringHead(Myself,@123) // No such index Wait(3) DisplayStringHead("Jaheira",@124) // No such index Wait(3) DisplayStringHead(Myself,@125) // No such index Wait(3) DisplayStringHead("Jaheira",@126) // No such index Wait(3) DisplayStringHead(Myself,@127) // No such index END but the ones where Player1 is scripted the response. I hate that. Even for one liners, if there is going to be a reply, unless Player1 has been brainsucked and dominated, there really is no reason I can think of to not give the player some choice. I like this sequence in-game, but then, I like Tashia and I like those responses. But I play certain types of characters. I would rather have choices to match more roleplaying options. One I would rewrite as a banter: IF Global("SleepComment","LOCALS",3) THEN RESPONSE #100 SetGlobal("SleepComment","LOCALS",0) SetGlobal("PillowTalk","LOCALS",1) StartCutSceneMode() MoveViewObject("Tashia",INSTANT) FaceObject(Player1) DisplayStringHead(Myself,@77) // No such index Wait(3) DisplayStringHead(Myself,@78) // No such index Wait(2) DisplayStringHead(Player1,@79) // No such index Wait(2) DisplayStringHead(Myself,@80) // No such index Wait(2) DisplayStringHead(Player1,@81) // No such index Wait(2) DisplayStringHead(Myself,@82) // No such index Wait(3) DisplayStringHead(Myself,@83) // No such index EndCutSceneMode() END The most common mod usage is for combat script, like this snippet of Amber that gives a potion to a fellow player if the conditions are right (Comments by Darios): // ********************************************************************** // * Segment Name: dai_AmberHealLIPotions.baf // ********************************************************************** //Pass a potion to the Love Interest - this may not always work due to IE limitations //This is triggered by a 2001call from DPLAYER3.BCS or from gs_2001Call.baf //Works for both PCS and non-PCS parties //If Amber has a potion..... problem is, this will make her pass all potions of type //This is an IE limitation: GiveItem always gives all items of the specified type //Superior healing IF ActionListEmpty() !CombatCounter(0) Heard(Player1,2001) Global("M#AmberRomanceActive","GLOBAL",2) Global("M#AmberMatch","GLOBAL",1) !StateCheck(Player1,STATE_OUT_OF_ACTION) !HasItem("potn08",Player1) !HasItem("potn52",Player1) !HasItem("potn55",Player1) HasItem("potn55",Myself) THEN RESPONSE #100 GiveItem("potn55",Player1) DisplayStringHead(Myself,@58) // Quickly, my love! Drink this! END All these can get the job done written into the .baf files. Just check which versionn of WeiDU you are using - up until recently, you *had* to add USING to your traification stuff with compiling .baf files, even if you used AUTO_TRA. I am not sure if it is necesary now, but I will have to wait a bit to test or get comments, so it is probably safest to use COMPILE ~mybaf.baf~ USING ~mybaf.tra~ DisplayStringHead(Myself,~They at least no is wuss around here.~) DisplayStringHead(Myself,%They at least no is wuss around here.%) DisplayStringHead(Myself,@247) /* or, if there already is a string reference to use, */ DisplayStringHead(Myself,46150) // quaffs a potion You can also call an entire conversation this way, back and forth. Take a look at these two cool blocks from Zrayen's "Beyond The Law". This one kicks the party hard (though safer action is to kick them out of the party and then set them as enemies) if the script sees the listed conditions: // If the PC attacks Brega or Bylanna or Prelate Radiant Heart IF OR(2) InParty("Kiyone") InParty("Kova") OR(8) Allegiance("habrega",ENEMY) Allegiance("bylanna",ENEMY) Allegiance("hprelate",ENEMY) Allegiance("Z#ARDEL",ENEMY) Allegiance("Z#Baev",ENEMY) Dead("hprelate") Dead("bylanna") Dead("habrega") THEN RESPONSE #100 DisplayStringHead("Kiyone", @804) DisplayStringHead("Kova", @805) ActionOverride("Kiyone", Enemy()) ActionOverride("Kova", Enemy()) END and this one does a randomly different statement when it is run: IF GlobalGT("GovtMeetGuards","GLOBAL",3) THEN RESPONSE #10 SetGlobal("GovtMeetGuards","GLOBAL",2) DisplayStringHead("Kiyone", @810) ReputationInc(-1) RESPONSE #10 SetGlobal("GovtMeetGuards","GLOBAL",2) DisplayStringHead("Kiyone", @811) ReputationInc(-1) RESPONSE #10 SetGlobal("GovtMeetGuards","GLOBAL",2) DisplayStringHead("Kiyone", @812) ReputationInc(-1) END Chloe uses it to inform the player that they have Transgressed Against The Will Of God (Or At Least The Modder) by trying to use Chloe's special item: // FIRE FIRE FIRE!! Hehehehe, FIRE, yeah FRY 'EM! // SW 1 IF !HasItemEquiped("CHLOSW1","Chloe") HasItemEquiped("CHLOSW1",Player1) THEN RESPONSE #100 DisplayStringHead(Player1,~Only a chosen of Akadia can wield this weapon. You have commited sacriledge~) CreateVisualEffectObject("SPSCHGI",Player1) CreateVisualEffectObject("SPHOLYWD",Player1) CreateVisualEffectObject("SPHOLYMT",Player1) CreateVisualEffectObject("SPGENHLA",Player1) CreateVisualEffectObject("SKYBOLT",Player1) CreateVisualEffectObject("SPFIREPI",Player1) CreateVisualEffectObject("SPFIRSDI",Player1) ActionOverride(Player1,ReallyForceSpell(Player1,WIZARD_FIREBALL)) Kill(Player1) END (Hey, put a half-crazy god-child in your party and take her stuff, and I guess you really get what you deserve, even if it is a game killing TKO... I reallyy hope you saved. You did save, didn't you...) Opportunities for Aran Well, there are some things that really don't need much. I have some odd things here and there for fun, like this one, which could be dropped from a single line called in dialog to a simple one liner DSH(): in .baf /* Shade Lord (Darios) */ IF Killed([0.UNDEAD.SHADOW.SHADOW.0.FEMALE]) // Shade Lord Global("c-silencearan","GLOBAL",0) Global("c-aranshadelord","LOCALS",0) OR(2) AreaCheck("AR1400") // Temple ruins AreaCheck("AR1404") // Temple ruins restored InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) !StateCheck(Player1,CD_STATE_NOTVALID) THEN RESPONSE #100 SetGlobal("c-aranshadelord","LOCALS",1) END in .d /* Shade Lord (Darious) */ IF ~Global("c-aranshadelord","LOCALS",1) Global("c-silencearan","GLOBAL",0)~ THEN BEGIN c-aranshade1 SAY ~[ARAN] Ah, light! Lathandar's Luminated Lamp, that's a right fine thing to see. I was beginnin' to think we'd never see naught but shadow, darkness, an' death.~ IF ~~ THEN DO ~SetGlobal("c-aranshadelord","LOCALS",2) SetGlobalTimer("c-aransmalltalk","GLOBAL",300)~ EXIT END becomes /* Shade Lord (Darios) */ IF Killed([0.UNDEAD.SHADOW.SHADOW.0.FEMALE]) // Shade Lord Global("c-silencearan","GLOBAL",0) Global("c-aranshadelord","LOCALS",0) OR(2) AreaCheck("AR1400") // Temple ruins AreaCheck("AR1404") // Temple ruins restored InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) !StateCheck(Player1,CD_STATE_NOTVALID) THEN RESPONSE #100 DisplayStringHead(Myself,~Ah, light! Lathandar's Luminated Lamp, that's a right fine thing to see. I was beginnin' to think we'd never see naught but shadow, darkness, an' death.~) SetGlobal("c-aranshadelord","LOCALS",1) SetGlobalTimer("c-aransmalltalk","GLOBAL",300) END Or what about exchanges that are too short for dialog? /* Korgan Doppleganger */ IF See([0.0.DOPPLEGANGER]) Global("c-silencearan","GLOBAL",0) Global("c-arandopple","LOCALS",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) !StateCheck(Player1,CD_STATE_NOTVALID) InParty("korgan") !StateCheck("korgan",CD_STATE_NOTVALID) !StateCheck("korgan",CD_STATE_NOTVALID) THEN RESPONSE #100 DisplayStringHead("korgan",~That be one ugly bastard.~) Wait(2) DisplayStringHead(Myself,~Hey! He looks just like me!~) Wait(2) DisplayStringHead("korgan",~That's what I said.~) Wait(2) SetGlobal("c-aranarandopple","LOCALS",1) SetGlobalTimer("c-aransmalltalk","GLOBAL",300) END Or perhaps something for the ladies in service... /* ..And Your Beady Little Eyes on the Road Ahead (10 points for song reference) */ IF CombatCounter(0) Global("c-silencearan","GLOBAL",0) See("kpmaid01") Global("c-aranchanelle","LOCALS",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) !StateCheck(Player1,CD_STATE_NOTVALID) THEN RESPONSE #100 DisplayStringHead(Myself,~Well, now, you are a pretty lass...~) Wait(2) DisplayStringHead("kpmaid01",~Watch those hands, sirrah.~) Wait(2) SetGlobal("c-aranchanelle","LOCALS",1) SetGlobalTimer("c-aransmalltalk","GLOBAL",300) END Or even a minor interlude with a friend... /* Childish Jokes Are Almost Always Funny */ IF Global("c-silencearan","GLOBAL",0) OR(2) GlobalGT("c-arananomen","LOCALS",0) // banter fired, needs G<>L check GlobalGT("c-anomenaran","LOCALS",0) // banter fired, needs G<>L check Global("c-arananomenf","LOCALS",0) InParty(Myself) !StateCheck(Myself,CD_STATE_NOTVALID) !StateCheck(Player1,CD_STATE_NOTVALID) InParty("anomen") !StateCheck("anomen",CD_STATE_NOTVALID) !StateCheck("anomen",CD_STATE_NOTVALID) THEN RESPONSE #100 DisplayStringHead(Myself,~*BUUURRPPPP*~) Wait(2) DisplayStringHead("anomen",~Control yourself, Whitehand. That is churlish behavior.~) Wait(2) DisplayStringHead(Myself,~Sir, Yes Sir. No more loud burpin', Sir.~) Wait(3) DisplayStringHead(Myself,~*fffbbbbbt*~) Wait(2) SetGlobal("c-arananomenc","LOCALS",1) SetGlobalTimer("c-aransmalltalk","GLOBAL",300) END This just might have some possibilities.
×
×
  • Create New...