Jump to content

Playing with Equipped Items and Reactions, .BAF and .D


cmorgan

Recommended Posts

I had an idea about color/background dialogue replies that took into account party spells cast, items, and such - throwaway one-line loops that give players a sense of "awareness" in Aran. It turns out that JCompton as already tread this road before - in his Infinity Modding Iron Chef im7 entry is a great example of a straightforward quest encounter, with resolution through party-supplied items. The code is pretty straightforward (and by that, I mean good, because simple = less likely to break) -

 

IF ~~ gotitem
SAY ~Yes! That will be perfect! Thank you!~
= ~Now... do I have everything I might need to face him?~
++ ~This sounds expensive. Forget it.~ + busy
+ ~PartyHasItem("potn43") Global("FionaInsight","GLOBAL",0)~ + ~I have this Potion of Insight, might that serve as a source of inspiration?~ DO ~AddexperienceParty(3000) SetGlobal("FionaInsight","GLOBAL",1) TakePartyItemNum("POTN43",1) ~ + gotitem
+ ~CheckStatGT(Player1,14,WIS) Global("FionaInsight","GLOBAL",0)~ + ~You say your spell brought you to me? Perhaps hearing the tale of my own triumphs over adversity will inspire you.~ DO ~AddexperienceParty(3500) SetGlobal("FionaInsight","GLOBAL",1)~ + inspirestory

+ ~PartyHasItem("belt06") Global("FionaStrength","GLOBAL",0)~ + ~I have a belt which grants the strength of a hill giant, will that do?~ DO ~AddexperienceParty(3000) TakePartyItemNum("belt06",1) SetGlobal("FionaStrength","GLOBAL",1)~ + gotitem
+ ~PartyHasItem("belt07") Global("FionaStrength","GLOBAL",0)~ + ~I have a belt which grants the strength of a stone giant, will that do?~ DO ~AddexperienceParty(3000) TakePartyItemNum("belt07",1) SetGlobal("FionaStrength","GLOBAL",1)~ + gotitem
+ ~PartyHasItem("belt08") Global("FionaStrength","GLOBAL",0)~ + ~I have a belt which grants the strength of a frost giant, will that do?~ DO ~AddexperienceParty(3000) TakePartyItemNum("belt08",1) SetGlobal("FionaStrength","GLOBAL",1)~ + gotitem
+ ~PartyHasItem("belt11") Global("FionaStrength","GLOBAL",0)~ + ~I have a belt which grants the strength of a fire giant, will that do?~ DO ~AddexperienceParty(3000) TakePartyItemNum("belt11",1) SetGlobal("FionaStrength","GLOBAL",1)~ + gotitem
+ ~InParty("Minsc") !Dead("Minsc") Global("FionaStrength","GLOBAL",0)~ + ~A source of strength? Hmmm. I have an idea so crazy it just might work. Minsc, would you let Fiona hold Boo for a moment?~ DO ~SetGlobal("FionaStrength","GLOBAL",1) AddexperienceParty(3500)~ EXTERN MINSCJ holdboo

+ ~PartyHasItem("SW1H51") Global("FionaPower","GLOBAL",0)~ + ~You may have Celestial Fury. It is a blade of unprecedented power.~ DO ~AddexperienceParty(3000) TakePartyItemNum("sw1h51",1) SetGlobal("FionaPower","GLOBAL",1)~ + gotitem
+ ~PartyHasItem("staf11") Global("FionaPower","GLOBAL",0)~ + ~Though we fought hard to obtain it, take the Staff of the Magi. Surely, it is powerful enough for your needs.~ DO ~AddexperienceParty(3000) TakePartyItemNum("staf11",1) SetGlobal("FionaPower","GLOBAL",1)~ + gotitem
+ ~PartyHasItem("hamm09") Global("FionaPower","GLOBAL",0)~ + ~Crom Faeyr is a hammer of enormous power. May it serve you well.~ DO ~AddexperienceParty(3000) TakePartyItemNum("hamm09",1) SetGlobal("FionaPower","GLOBAL",1)~ + gotitem
+ ~CheckStatGT(Player1,14,CHR) Global("FionaPower","GLOBAL",0)~ + ~You say you need a source of great power? I don't think so. All the power you need is already in your own heart and spirit, which must be formidable indeed for you to have endured years of torture without giving up hope.~ DO ~SetGlobal("FionaPower","GLOBAL",1) AddexperienceParty(3500)~ + powerstory
++ ~Let me come back later, I may have what you need then.~ DO ~AddJournalEntry(@99,QUEST)~ + comeback
IF ~Global("FionaInsight","GLOBAL",1) Global("FionaStrength","GLOBAL",1) Global("FionaPower","GLOBAL",1)~ + haveitall
END

 

So, in this case, JCompton has decided that as part of the quest/encounter, the player can swap out specific items for experience as a payment for resolving Fiona's quest.

 

 

For materials other than quests, or reactions to the party having items that might be worthy of comment by a party (either for good or ill), the standard or "traditional" way of doing this is using the script (.bcs) to trigger. Some mods, like Saerileth, take this to extremes by adding things like this to baldur.bcs, therefore loading down scripts when the player has a big bag of holding - the master script continually checks the party, and all of the containers with the party, for the item:

 

IF
PartyHasItem("AnObjectionableEvilItem") // no global set, so that it checks every script cycle
THEN RESPONSE #100
SetGlobal("PartyHasEvilItemIWantToDestroyOrWillLeaveImmediately","GLOBAL",1)
StartDialogNoSet(Player1)
END

 

SIDE NOTE: DavidW has suggested a cool idea using LOCALS and timers to run these checks on a longer cycling, reducing script lag. It works well, as it still checks regularly - just not every single script cycle.

 

In the dialog, there is a matching state that complains about the object to the PC, and sets reactions accordingly. For example, Chloe's script detects misuse of her swords, and smites the player. Other modders have chosen less restrictive paths. Amber, for example, refuses to use certain items, but it runs in her script, and does not mess with what others in the party are using or what is in the bag of holding.

 

I think we can safely add some nice scenery stuff for all players using the "traditional" approach, for a few (less than 5) of the big, big items. Heck, we might even use this in his .bcs as a way of tailoring weaponry or equipment to match his class when the player first spawns him, if we want: in dialog, or in .bcs, it runs about the same:

 

.baf entry for "upgrading" a weapon

IF
 Global("c-weaponcheck","GLOBAL",0)
 HasItem("weapon1","c-aran")
 CheckStatGT(Player1,11,LEVEL)
THEN RESPONSE #50
 TakeItemReplace("weapon2","weapon1","c-aran")
 SetGlobal("c-weaponcheck","GLOBAL",1)
THEN RESPONSE #50
 TakeItemReplace("weapon3","weapon1","c-aran")
 SetGlobal("c-weaponcheck","GLOBAL",1)
END

In this example, we leverage both the use of CheckStatGT() | HasItem(), and the random RESPONSE block, so that sometimes Aran shows up with Weapon 2, sometimes Weapon 3 (Check Beyond The Law and other mods by Z and you will see good examples of this kind of .bcs block leverage).

 

But

 

dialogue between people does not always work with such constraint that you immediately walk up to a friend and say "Yo. Big ugly evil thing in your hands. Drop it, or I am outta here." (Well, perhaps that is an overstatement, and perhaps you do. But I am unaccustomed to the blunt, direct, rude conversation depicted in that kind of scenario - it is more likely to be "Cmorgan! Great to see you!" <3 minutes of trivia smalltalk> "You know, I think you are a good friend, and I just have to mention... that thing you said to the principal? I am glad you have tenure! Because if I said it, my non-tenured bottom would have been bounced right out of the school!".

 

Unless it is a pickup line, like this,

[LISEL] Hey, big sword you have there. Use it much?

[ARAN] Well, now that you mention it, I use it once an' a bit. I be fairly handy about it, too.

[LISEL] Either that was too much information, or a pickup line.

[ARAN] Now you got me thinkin' more mature, eh? I was just sayin' I can hold my own in a swordfight...

[LISEL] Quit while you are ahead. It is gettting worse and worse.

 

I think in a more natural conversation, you might sidecomment on gear or something, and then be back in the regular conversation, more like this:

[ARAN] Hey, that last stop, I got to thinkin'. What was it like, bein' Gorion's Ward?

[ARAN] And hey, by the way, nice skirt. Pick it up at Aroura's Shoes?

[PC] Thanks! You like? It was on sale, too.

[ARAN] What's not to like? Tight black leather, a nice goth fringe, an' short enough to make a man glance twice to reaffirm he really did get th' whole picture th' first time.

[PC] Too kind. I had it taken in just a bit in the back, just to make sure. But anyways, about Candlekeep? It wasn't so bad. We just didn't get to wear stuff like this. He was such a prude. Well, that, and I was not old enough.

 

or for the dudes,

[ARAN] Hey, that last stop, I got to thinkin'. What was it like, bein' Gorion's Ward?

[ARAN] And hey, by the way, nice sword. You didn't have that before... magical?

[PC] Thanks! You like it? I took it off of the body of one of our last opponents. Here, feel the weighting on this thing...

[ARAN] Tymora's Grace! Sweeeeet. Almost wields itself, it does. I gotta get me one o' these.

[PC] Well, we can keep our eyes open, and perhaps there will be another. But anyways, about Candlekeep? It wasn't so bad. We just didn't get to use stuff like this. He was so strict, he made me use a wooden practice sword. Well, that, and he didn't want any accidental dismemberments.

 

Good game designers know to avoid this kind of sidetracking. It is a bogdown of clean conversation, it adds complexity to keeping players on track, and it wastes precious time in development. It tends to confuse players, who are already conditioned that if NPC A mentions a dude who sells swords the next town over, it means either he is secretly a black dragon in disguise, he has a mission you can take, or he is a Plot Point that must be cleared before moving on.

 

Luckily, I am a modder, and can ignore this (albeit at my peril), adding a few little "awareness" dialogs here and there. They can be added to the PID, where players who love RP interaction will find them; they can be added to flirts; and with a little bit of judicial weaving, they can even be interjected into vanilla reactions by Canonical BioWare™ NPCs. In a few places, they can even be snuck in as a side branch in a conversation, which may or may not sidetrack the conversation. For that reason (the potential sidetrack) the FriendTalks are the best place to look at adding one or two of these, in more innocent conversations where it does not really matter if a player is sidetracked as much. We all have those conversations where you start talking about something, and then someone says something bad about <INSERT_FAVORITE_TEAM_OR_HOBBY_OR_POLITICAL_STANCE_HERE>, and suddenly it is all broken up, and the original conversation is completely lost!

 

 

We can play with this idea at the dialog level, adding a reaction template to be scattered where it mimics regular conversational flow. With some situational rewriting, this template can be used for inserting reactions to the one item we know Aran could not shut his mouth about:

 

/* LEAT21 // Human Flesh +5 evil armor */

IF ~HasItemEquiped("LEAT21",Player1) Global("c-arskinarm","LOCALS",0)~ GOTO b100
IF ~HasItemEquiped("LEAT21",Player1) Global("c-arskinarm","LOCALS",1) GlobalTimerExpired("c-aranskin","GLOBAL")~ GOTO b101
IF ~HasItemEquiped("LEAT21",Player1) Global("c-arskinarm","LOCALS",2) GlobalTimerExpired("c-aranskin","GLOBAL")~ GOTO b102


IF ~~ b100 SAY ~[ARAN] Hey, by the way, your armor be all wrong. I know you be th' scourge o' Faerun, but you don't have to wear your heart on your sleeve, eh? In this case, someone else's, by th' look. An' I won't say how bad it smells.~ IF ~~ THEN DO ~SetGlobal("c-arskinarm","LOCALS",1) SetGlobalTimer("c-aranskin","GLOBAL",FOUR_DAYS)~ EXIT END // or whatever tie backs necessary

IF ~~ b101 SAY ~[ARAN] You stll be wearin' that Grumbar-lovin' Cyric-blighted armor? Gives me th' chills, it does.~
++ ~[PC] If it bothers you that much, I will take it off.~ DO ~SetGlobal("c-arskinarm","LOCALS",2) SetGlobalTimer("c-aranskin","GLOBAL",FOUR_DAYS)~ + b103
++ ~[PC] I think it has a great effect on our opponents' morale. You are just going to have to get used to it.~ DO ~SetGlobal("c-arskinarm","LOCALS",2) SetGlobalTimer("c-aranskin","GLOBAL",FOUR_DAYS)~ + b103
++ ~[PC] If I wanted you opinion, I would have asked.~ DO ~SetGlobal("c-arskinarm","LOCALS",2) SetGlobalTimer("c-aranskin","GLOBAL",FOUR_DAYS)~ + b103
++ ~[PC] Shut up, or your ears will add decoration to it.~ DO ~SetGlobal("c-arskinarm","LOCALS",2) SetGlobalTimer("c-aranskin","GLOBAL",FOUR_DAYS)~ + b103
END

IF ~~ b102 SAY ~[ARAN] Look, I do a good bit around here, an' I know you be th' leader. I'm just sayin', that armor makes it blighted hard for me to do my job. Th' smell be only part o' it. Shar's Kiss, get rid o' it, eh?~
++ ~[PC] Or you will run crying like a weakling child, break your contract, and leave?~ DO ~SetGlobal("c-arskinarm","LOCALS",3)~ + b104
++ ~[PC] Shut up, Aran. I heard you the first two times. I will use what tools I see fit to advance my goals.~ DO ~SetGlobal("c-arskinarm","LOCALS",3)~ + b104
++ ~[PC] Are you volunteering to add more skin to this armor? Speak again, and I will ~ DO ~SetGlobal("c-arskinarm","LOCALS",3)~ + b104
++ ~[PC] I may very well take it off. You are useful. But then again, I might put it back on. You will have to get used to it, or leave.~ DO ~SetGlobal("c-arskinarm","LOCALS",3)~ + b104
++ ~[PC] You do very little, and I am tired of your whining. That is the last warning you will get.~ DO ~SetGlobal("c-arskinarm","LOCALS",3)~ + b104
END

IF ~~ b103 SAY ~[ARAN] Hey, I don't go around second guessin' you. So if I be sayin' it, you know there be one hells of a lot more people who have noticed. Might fit your ideas, but it be bad tactics to give away your position that way.~ IF ~~ THEN EXIT END // or whatever tie backs necessary

IF ~~ b104 SAY ~[ARAN] Cyric's Black Heart, I don't run out on contracts. But you smell worse than a charnelhouse. If I throw up, you will be knowin' why.~ IF ~~ THEN EXIT END // or whatever tie backs necessary

 

Another template to run out might be a set of reactions for PID, with Aran reacting to using Drow weapons:

 

/* PID for Underdark: equipment addition */
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWBLUN01","c-aran") Global("c-arandroweq","LOCALS",0)~ + ~[PC] Aran, you keep looking oddly at that Drow flail you are using. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Flail +3
 + ~Global("c-arandroweq","LOCALS",0) OR(2) HasItemEquiped("DWCHAN01","c-aran") HasItemEquiped("DWCHAN02","c-aran")~ + ~[PC] Aran, you keep looking oddly at that armor you are wearing. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Elven Chain +3, Drow Adamantine Chain +5
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWCLCK01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that cloak you are wearing. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Piwafwi Cloak
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWHALB01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that halberd you are weilding. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Halberd +3
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWPLAT01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that plate armor you are wearing. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Full Plate +5
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWSHLD01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that shield you are holding. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Shield +3
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWSPER01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that lance you are weilding. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow // Drow Lance +3
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWSW1H01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that scimitar you are weilding. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow  // Drow Scimitar +3
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWSW1H02","c-aran")~ + ~[PC] Aran, you keep looking oddly at that longsword you are weilding. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow  // Drow Longsword +3
 + ~Global("c-arandroweq","LOCALS",0) HasItemEquiped("DWXBOW01","c-aran")~ + ~[PC] Aran, you keep looking oddly at that crossbow you are using. Is there something wrong?~ DO ~SetGlobal("c-arandroweq","LOCALS",1)~ + c-aranreactdrow  // Drow Crossbow of Speed

IF ~~ c-aranreactdrow
 SAY ~[ARAN] Shar's Spikey Spit, I don't rightly want naught to do wi' a weapon what turns to dust in sunlight. I know it be powerful an' magical, but give me a solid surface weapon an' I'd be a mite happier.~
 IF ~~ THEN DO ~SetGlobal("c-arandroweq","LOCALS",1)~ EXIT
END

 

Other ideas to play with:

 

0x402C HPPercent(O:Object*,I:Hit Points*)
See HP(O:Object*,I:Hit Points*) except this is for a percentage.

0x402D HPPercentLT(O:Object*,I:Hit Points*)
See HPLT(O:Object*,I:Hit Points*) except this is for a percentage.

0x402E HPPercentGT(O:Object*,I:Hit Points*)
See HPGT(O:Object*,I:Hit Points*) except this is for a percentage.

0x4031 HaveSpell(I:Spell*Spell)
Returns true only if the active CRE has the specified spell memorised.

0x4032 HaveAnySpells()
Returns true if the active CRE has at least one spell memorised.

0x4044 CheckStat(O:Object*,I:Value*,I:StatNum*Stats)
Returns true only if the specified object has the statistic in the 3rd parameter at the value of the 2nd parameter.

0x4045 CheckStatGT(O:Object*,I:Value*,I:StatNum*Stats)
Returns true only if the specified object has the statistic in the 3rd parameter greater than the value of the 2nd parameter.

0x4046 CheckStatLT(O:Object*,I:Value*,I:StatNum*Stats)
Returns true only if the specified object has the statistic in the 3rd parameter less than the value of the 2nd parameter.

0x404E PartyGold(I:Amount*)
Returns true only if the player's party has the amount of gold specified in the 2nd parameter.

0x404F PartyGoldGT(I:Amount*)
Returns true only if the player's party has more gold than specified in the 2nd parameter.

0x4050 PartyGoldLT(I:Amount*)
Returns true only if the player's party has less gold than specified in the 2nd parameter.

0x4064 HasWeaponEquiped(O:Object*)
Returns true only if the specified object has a weapon in a quickslot.

0x407F HasItemEquiped(S:ResRef*,O:Object*)
Returns true if the specified object has the specified item in one of its quicklots if it is a weapon, or has it equipped if it is a piece of armour of an amulet etc.

InventoryFull(O:Object*)

 

One other area that readily springs to mind are flirts. Since appearance in PC-land is entirely subjective, and we currently do not have a way of identifying what portrait/avatar coloration combination is used, or anything else cosmetic like that in scripting, we often are restricted in the bread and butter of human attraction - reaction and commentary on appearance. We have to live in "generic land", with Assuming Facts Not In Evidence to be avoided. A sample of a problem-flirt:

 

[ARAN] You know, I love the way you look. I can see every inch o' your body from this vantage, an' it looks right fine.

[PC] So you have special psionic powers? Because I am wearing full plate and a helm. You should see the padding I have under that, and then we get to the undergarments with mithral threads interwoven. Honey-child, if you are able to see a single millimeter of me in this getup, I am Ed Greenstein. Either you have an overactive imagination, or someone has put an invisibility spell on the rear of my armor.~

 

or worse,

[ARAN] You know, you look really beautiful today.

[PC] What, you really like the way I look? Most people would run from my current shapeshifted spider form, but you have a thing for me when I look like this... you must be a leg man.~

 

 

With a nod to HasItemEquiped(), though, some direct observation is possible:

/* Flirt Additions:  */
+ ~HasItemEquiped("AMUL12",Player1) Global("TEMPVAR","LOCALS",0)~ + j100 // Laeral's Tear Necklace (3000 gp)
+ ~HasItemEquiped("AMUL01",Player1) Global("TEMPVAR","LOCALS",0)~ + j101 // Necklace of Missiles
+ ~HasItemEquiped("AMUL04",Player1) Global("TEMPVAR","LOCALS",0)~ + j102 // Studded Necklace with Zios Gems
+ ~HasItemEquiped("AMUL05",Player1) Global("TEMPVAR","LOCALS",0)~ + j103 // Bluestone Necklace
+ ~HasItemEquiped("AMUL06",Player1) Global("TEMPVAR","LOCALS",0)~ + j104 // Agni Mani Necklace
+ ~HasItemEquiped("AMUL07",Player1) Global("TEMPVAR","LOCALS",0)~ + j105 // Rainbow Obsidian Necklace
+ ~HasItemEquiped("AMUL08",Player1) Global("TEMPVAR","LOCALS",0)~ + j106 // Tiger Cowrie Shell Necklace
+ ~HasItemEquiped("AMUL09",Player1) Global("TEMPVAR","LOCALS",0)~ + j107 // Silver Necklace
+ ~HasItemEquiped("AMUL10",Player1) Global("TEMPVAR","LOCALS",0)~ + j108 // Gold Necklace
+ ~HasItemEquiped("AMUL11",Player1) Global("TEMPVAR","LOCALS",0)~ + j109 // Pearl Necklace
+ ~HasItemEquiped("AMUL16",Player1) Global("TEMPVAR","LOCALS",0)~ + j110 // Amulet of Metaspell Influence (+1 2nd level spell)
+ ~HasItemEquiped("AMUL18",Player1) Global("TEMPVAR","LOCALS",0)~ + j111 // Wolfsbane Charm +2 vs Lycanthropes
+ ~HasItemEquiped("AMUL22",Player1) Global("TEMPVAR","LOCALS",0)~ + j112 // Periapt of Proof Against Poison

IF ~~ j100m // Laeral's Tear Necklace (3000 gp)
 SAY ~[ARAN] (He leans forward slightly, studying the Laeral's Tear necklace you are wearing.)~
 IF ~~ THEN GOTO j113 // expensive
END

IF ~~ j101 // Necklace of Missiles
 SAY ~[ARAN] (He leans forward slightly, studying the Necklace of Missiles necklace you are wearing.)~
 IF ~~ THEN GOTO j114 // missiles
END

IF ~~ j102 // Studded Necklace with Zios Gems
SAY ~[ARAN] (He leans forward slightly, studying the zios gems embedded in the necklace you are wearing.)~ IF ~~ THEN GOTO j119 /* clunky */ END
IF ~~ j103 // Bluestone Necklace
SAY ~[ARAN] (He leans forward slightly, studying the bluestone necklace you are wearing.)~ IF ~~ THEN GOTO j119 /* clunky */ END
IF ~~ j104 // Agni Mani Necklace
SAY ~[ARAN] (He leans forward slightly, studying the angi mani necklace you are wearing.)~ IF ~~ THEN GOTO j119 /* clunky */ END
IF ~~ j105 // Rainbow Obsidian Necklace
SAY ~[ARAN] (He leans forward slightly, studying the obsidian necklace you are wearing.)~ IF ~~ THEN GOTO j119 /* clunky */ END
IF ~~ j106 // Tiger Cowrie Shell Necklace
SAY ~[ARAN] (He leans forward slightly, studying the cowrie shell necklace you are wearing.)~ IF ~~ THEN GOTO j119 /* clunky */ END
IF ~~ j107 // Silver Necklace
SAY ~[ARAN] (He leans forward slightly, studying the silver necklace you are wearing.)~ IF ~~ THEN GOTO j115 /* simple */ END
IF ~~ j108 // Gold Necklace
SAY ~[ARAN] (He leans forward slightly, studying the gold necklace you are wearing.)~ IF ~~ THEN GOTO j115 /* simple */ END
IF ~~ j109 // Pearl Necklace
SAY ~[ARAN] (He leans forward slightly, studying the pearl necklace you are wearing.)~ IF ~~ THEN GOTO j115 /* simple */ END
IF ~~ j110 // Amulet of Metaspell Influence (+1 2nd level spell)
SAY ~[ARAN] (He leans forward slightly, studying the amulet you are wearing.)~ IF ~~ THEN GOTO j118 /* magical */ END
IF ~~ j111 // Wolfsbane Charm +2 vs Lycanthropes
SAY ~[ARAN] (He leans forward slightly, studying the wolfsbane charm you are wearing.)~ IF ~~ THEN GOTO j117 /* anti-wolf  */ END
IF ~~ j112 // Periapt of Proof Against Poison
SAY ~[ARAN] (He leans forward slightly, studying the periapt you are wearing.)~ IF ~~ THEN GOTO j116 /* anti-poison */ END


IF ~~ j113 SAY ~[ARAN] Now, I do think that piece o' jewelry matches you. But on full account, there be few pieces, no matter how expensive, what can do justice to th' beauty o' your eyes.~ DO ~SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // expensive
IF ~~ j114 SAY ~[ARAN] (Hesitantly, he reaches one hand out to touch it...) OUCH! That there necklace done bit me! Hells, <CHARNAME>, you could have warned me th' bloody thing was leakin' some o' that missile-energy.~ DO ~SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // missiles
IF ~~ j115 SAY ~[ARAN] Perfect. Simple, attractive, understated, an' nearly as beautiful as you.~ DO ~SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // simple
IF ~~ j116 SAY ~[ARAN] Good protection. You might want to keep in on tonight, eh? On account o' I am cookin' wi' some new spices, an' I am nt sure I have the amount just right.~ DO ~SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // anti-poison
IF ~~ j117 SAY ~[ARAN] Now, you may think that charm will keep th' lkes o' me away. Problem is, I'm no wolf. I just act like one!~ DO ~SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // anti-wolf
IF ~~ j118 SAY ~[ARAN] (He gently caresses it with the tip of one finger, then shivers and shakes his hand.) Now, that done give me a set o' goosebumps. Either it did, or th' curve o' your neck did. Either way, I think I might want to repeat th' experience.~ DO ~SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // magical
IF ~~ j119 SAY ~[ARAN] Now, that be alright for some women, but I am not so sure when it comes to you. I think it sets off your eyes right nice, but I think it be a mite clunky. Here. This pearl necklace might be better.~ DO ~<< GiveItemCreate "AMUL11">> SetGlobal("TEMPVAR","LOCALS",1)~ EXIT END // clunky

Link to post

I didn't read this whole thing, but in general, I'm ambivalent on using PartyHasItem() in NPC scripts to comment about specific items. Kivan comments on the acorns in my pack as soon as Chapter 2 starts, often before the chapter screen even plays. There's an option there for "keep your nose out of my pack," but it sounds pretty rude, so I never click on it, no matter how sorely I'm tempted.

 

I like it when you hand an NPC an item and he comments on it. After alll, he's got every right to speak up on something you put in his inventory. And in the case of enormous items, like the body of a lover or helping Renfeld back to the Galvery estate, it would be really tough to conceal that from anyone. How many people do you see walking by with a corpse slung over one shoulder? But how would Aran know if the ring I picked up was the Ring of Gaxx unless he's way nosier than I'd give him credit for?

 

Just something to keep in mind.

 

0x4061 HasItem(S:ResRef*,O:Object*)

Returns true only if the specified object has the specified item in its inventory.

 

 

Then again, weapons tend to be big things. It's hard to hide a battleaxe.

Link to post
I didn't read this whole thing, but in general, I'm ambivalent on using PartyHasItem() in NPC scripts to comment about specific items.
Yep - you and I agree on this. I would rather stick with an appropriate side-glance in dialogue as flavor.

 

I am ok with something obvious, like that human skin armor, but most other things need to be identified or seen in action - again, a tougher thing to mess with.

 

I like it when you hand an NPC an item and he comments on it. After alll, he's got every right to speak up on something you put in his inventory. And in the case of enormous items, like the body of a lover or helping Renfeld back to the Galvery estate, it would be really tough to conceal that from anyone. How many people do you see walking by with a corpse slung over one shoulder? But how would Aran know if the ring I picked up was the Ring of Gaxx unless he's way nosier than I'd give him credit for?

 

Just something to keep in mind.

 

0x4061 HasItem(S:ResRef*,O:Object*)

Returns true only if the specified object has the specified item in its inventory.

 

That brings up a really great idea for a set of talks if Aran gets handed a body or quest item! Cool idea. I am not going to do more than a handful of these, though - one of the problems with playing with all of these ideas is that the scope is creeping farther and farther out :suspect:

Link to post

Updates for NPC initiated flirts to include some jewelry things.

 

Two ways to handle it - duplicate RandomNum responses, so that

 

  IF ~RandomNum(32,1)~ THEN GOTO a1315
 IF ~RandomNum(32,1) HasItemEquiped("AMUL04",Player1) Global("c-aljewel2","LOCALS",0)~ THEN GOTO aNew_State_about_jewel

 

but that puts much more randomness in the equation, so I decided to go with a "siphon off" approach, allowing three different classes of necklace response and two levels of flirt, each filtering through the same intermediary to cut down on dialog bloat.

 

Basics: bottom to top evaluation, so:

 

1. if Player1's HP are less than 40%, siphon off state to one of the several possibilities referencing player wounds.

2. c-aljewel1 for magical/expesive/special, c-aljewel2 for common/clunky, c-aljewel3 for simple and understated. Each leads to direct identification state, but then the response is filtered by c-aranlightflirt or c-aranheavyflirt for final response. So, technically, if the player is going all clothes-horse/working model, they can trigger three separate appearance-based flirts for lightweight, three for heavyweight in any one game; but if they vary what they wear, each individual

3. if already accomplished or player is not wearing any of those, it continues on to the rest of the evaluation.

 

 

This is the last of these I am going to systematically apply, as getting to this level of detail is tremendously time-consuming and a little seasoning like this goes a long, long way. Playtesters may decide it is too much, and drop this to a more random approach. Obviously, as written, Aran spends a great deal of time looking at PC's neck and bosom. Being a healthy guy, I can't say I blame him. But too much of a good thing might put off ashy pPC or player, I think.

 

/* FLIRTS: SECOND TO LAST IN WEIGHT */

/* Lots of Flirts means Player Wants Action: reply states */

/* Triggered in BCS by lots of flirts */
IF ~Global("c-aranbedflirt","GLOBAL",1)~ THEN a1418
 SAY ~[ARAN] (Aran abruptly pulls you aside, speaking in soft urgent whispers.) Aye girl, but you are teasin' me somethin' terrible. Looks, glances, all this come-hither... I'm not so smart sometimes when it comes to womenfolk. I don't know if I'm bein' clear, here. I'm burnin' for to have you, here an' now.~
 ++ ~[PC] Do you really think this is the right time? We have no privacy, and we are in a good deal of trouble in general. This is not the time to deal with anything like this.~ + a1419
 ++ ~[PC] You are very mistaken. Get your hands off of me, and never flirt with me again. I thought you were man enough to control your impulses.~ + a1420
 ++ ~[PC] I want you now, Aran. But I have another in mind, someone who would not appreciate sharing me. If you can find a way to sneak into my bedroll, I would not turn you away.~ + a1421
 ++ ~[PC] I'm sorry, Aran. I have committed myself to another, and I will not betray his trust. I think we should just be friends.~ + a1419
 IF ~Global("c-aranromance","GLOBAL",2)~ THEN GOTO a1423
END

/* NPC Initatated Flirts, set from BCS */ 
IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN BEGIN a1314
 SAY ~(Aran's weatherbeaten face turns towards you, and he moves close by your side.)~
 /* Random Light Flirts */
 IF ~RandomNum(32,1)~ THEN GOTO a1315
 IF ~RandomNum(32,2)~ THEN GOTO a1316
 IF ~RandomNum(32,3)~ THEN GOTO a1317
 IF ~RandomNum(32,4)~ THEN GOTO a1318
 IF ~RandomNum(32,5)~ THEN GOTO a1319
 IF ~RandomNum(32,6)~ THEN GOTO a1320
 IF ~RandomNum(32,7)~ THEN GOTO a1321
 IF ~RandomNum(32,8)~ THEN GOTO a1323
 IF ~RandomNum(32,9)~ THEN GOTO a1324
 IF ~RandomNum(32,10)~ THEN GOTO a1325
 IF ~RandomNum(32,11)~ THEN GOTO a1326
 IF ~RandomNum(32,12)~ THEN GOTO a1327
 IF ~RandomNum(32,13)~ THEN GOTO a1328
 IF ~RandomNum(32,14)~ THEN GOTO a1329
 IF ~RandomNum(32,15)~ THEN GOTO a1330
 IF ~RandomNum(32,16)~ THEN GOTO a1331
 IF ~RandomNum(32,17)~ THEN GOTO a1340
 IF ~RandomNum(32,18)~ THEN GOTO a1341
 IF ~RandomNum(32,19)~ THEN GOTO a1342
 IF ~RandomNum(32,20)~ THEN GOTO a1349
 IF ~RandomNum(32,21)~ THEN GOTO a1351
 IF ~RandomNum(32,22)~ THEN GOTO a1352
 IF ~RandomNum(32,23)~ THEN GOTO a1353
 IF ~RandomNum(32,24)~ THEN GOTO a1354
 IF ~RandomNum(32,25)~ THEN GOTO a1355
 IF ~RandomNum(32,26)~ THEN GOTO a1356
 IF ~RandomNum(32,27)~ THEN GOTO a1357
 IF ~RandomNum(32,28)~ THEN GOTO a1358
 IF ~RandomNum(32,29)~ THEN GOTO a1359
 IF ~RandomNum(32,30)~ THEN GOTO a1360
 IF ~RandomNum(32,31)~ THEN GOTO a1361
 IF ~RandomNum(32,32)~ THEN GOTO a1362
 /* Jewelry Light Flirt Additions:  */
 IF ~HasItemEquiped("AMUL04",Player1) Global("c-aljewel2","LOCALS",0)~ + a1444 // Studded Necklace with Zios Gems
 IF ~HasItemEquiped("AMUL05",Player1) Global("c-aljewel2","LOCALS",0)~ + a1445 // Bluestone Necklace
 IF ~HasItemEquiped("AMUL06",Player1) Global("c-aljewel2","LOCALS",0)~ + a1446 // Agni Mani Necklace
 IF ~HasItemEquiped("AMUL07",Player1) Global("c-aljewel2","LOCALS",0)~ + a1447 // Rainbow Obsidian Necklace
 IF ~HasItemEquiped("AMUL08",Player1) Global("c-aljewel2","LOCALS",0)~ + a1448 // Tiger Cowrie Shell Necklace
 IF ~HasItemEquiped("AMUL09",Player1) Global("c-aljewel3","LOCALS",0)~ + a1449 // Silver Necklace
 IF ~HasItemEquiped("AMUL10",Player1) Global("c-aljewel3","LOCALS",0)~ + a1450 // Gold Necklace
 IF ~HasItemEquiped("AMUL11",Player1) Global("c-aljewel3","LOCALS",0)~ + a1451 // Pearl Necklace
 IF ~HasItemEquiped("AMUL16",Player1) Global("c-aljewel1","LOCALS",0)~ + a1452 // Amulet of Metaspell Influence (+1 2nd level spell)
 IF ~HasItemEquiped("AMUL18",Player1) Global("c-aljewel1","LOCALS",0)~ + a1453 // Wolfsbane Charm +2 vs Lycanthropes
 IF ~HasItemEquiped("AMUL22",Player1) Global("c-aljewel1","LOCALS",0)~ + a1454 // Periapt of Proof Against Poison
 IF ~HasItemEquiped("AMUL01",Player1) Global("c-aljewel1","LOCALS",0)~ + a1443 // Necklace of Missiles
 IF ~HasItemEquiped("AMUL12",Player1) Global("c-aljewel1","LOCALS",0)~ + a1442 // Laeral's Tear Necklace (3000 gp)
 IF ~HPPercentLT(Player1,40)~ THEN GOTO a1343
END

/* Random Heavy Flirts */
IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN BEGIN a1350
 SAY ~[ARAN] (He settles his belt with one thumb)~
 IF ~RandomNum(36,36)~ THEN GOTO a1351
 IF ~RandomNum(36,35)~ THEN GOTO a1352
 IF ~RandomNum(36,34)~ THEN GOTO a1353
 IF ~RandomNum(36,33)~ THEN GOTO a1354
 IF ~RandomNum(36,32)~ THEN GOTO a1355
 IF ~RandomNum(36,31)~ THEN GOTO a1356
 IF ~RandomNum(36,30)~ THEN GOTO a1357
 IF ~RandomNum(36,29)~ THEN GOTO a1358
 IF ~RandomNum(36,28)~ THEN GOTO a1359
 IF ~RandomNum(36,27)~ THEN GOTO a1360
 IF ~RandomNum(36,26)~ THEN GOTO a1361
 IF ~RandomNum(36,25)~ THEN GOTO a1362
 IF ~RandomNum(36,24)~ THEN GOTO a1362
 IF ~RandomNum(36,23)~ THEN GOTO a1362
 IF ~RandomNum(36,22)~ THEN GOTO a1363
 IF ~RandomNum(36,21)~ THEN GOTO a1364
 IF ~RandomNum(36,20)~ THEN GOTO a1365
 IF ~RandomNum(36,19)~ THEN GOTO a1366
 IF ~RandomNum(36,18)~ THEN GOTO a1367
 IF ~RandomNum(36,17)~ THEN GOTO a1368
 IF ~RandomNum(36,16)~ THEN GOTO a1369
 IF ~RandomNum(36,15)~ THEN GOTO a1373
 IF ~RandomNum(36,14)~ THEN GOTO a1378
 IF ~RandomNum(36,13)~ THEN GOTO a1403
 IF ~RandomNum(36,12)~ THEN GOTO a1404
 IF ~RandomNum(36,11)~ THEN GOTO a1405
 IF ~RandomNum(36,10)~ THEN GOTO a1406
 IF ~RandomNum(36,9)~ THEN GOTO a1407
 IF ~RandomNum(36,8)~ THEN GOTO a1408
 IF ~RandomNum(36,7)~ THEN GOTO a1409
 IF ~RandomNum(36,6)~ THEN GOTO a1410
 IF ~RandomNum(36,5)~ THEN GOTO a1411
 IF ~RandomNum(36,4)~ THEN GOTO a1412
 IF ~RandomNum(36,3)~ THEN GOTO a1413
 IF ~RandomNum(36,2)~ THEN GOTO a1414
 IF ~RandomNum(36,1)~ THEN GOTO a1415
 IF ~AreaType(OUTDOOR) TimeOfDay(NIGHT) Global("c-aranstarflirt","GLOBAL",0)~ THEN DO ~SetGlobal("c-aranstarflirt","GLOBAL",1)~ GOTO a1423 /* c-aranstarflirt */
 IF ~AreaType(CITY) Global("c-arancityflirt","GLOBAL",0)~ THEN DO ~SetGlobal("c-arancityflirt","GLOBAL",1)~ GOTO a1424 /* c-arancityflirt */
 IF ~AreaType(DUNGEON) Global("c-arandungeonflirt","GLOBAL",0)~ THEN DO ~SetGlobal("c-arandungeonflirt","GLOBAL",1)~ GOTO a1427  /* c-arandungeonflirt */
 /* Jewelry Light Flirt Additions:  */
 IF ~HasItemEquiped("AMUL04",Player1) Global("c-ahjewel2","LOCALS",0)~ THEN GOTO a1444 // Studded Necklace with Zios Gems
 IF ~HasItemEquiped("AMUL05",Player1) Global("c-ahjewel2","LOCALS",0)~ THEN GOTO a1445 // Bluestone Necklace
 IF ~HasItemEquiped("AMUL06",Player1) Global("c-ahjewel2","LOCALS",0)~ THEN GOTO a1446 // Agni Mani Necklace
 IF ~HasItemEquiped("AMUL07",Player1) Global("c-ahjewel2","LOCALS",0)~ THEN GOTO a1447 // Rainbow Obsidian Necklace
 IF ~HasItemEquiped("AMUL08",Player1) Global("c-ahjewel2","LOCALS",0)~ THEN GOTO a1448 // Tiger Cowrie Shell Necklace
 IF ~HasItemEquiped("AMUL09",Player1) Global("c-ahjewel3","LOCALS",0)~ THEN GOTO a1449 // Silver Necklace
 IF ~HasItemEquiped("AMUL10",Player1) Global("c-ahjewel3","LOCALS",0)~ THEN GOTO a1450 // Gold Necklace
 IF ~HasItemEquiped("AMUL11",Player1) Global("c-ahjewel3","LOCALS",0)~ THEN GOTO a1451 // Pearl Necklace
 IF ~HasItemEquiped("AMUL16",Player1) Global("c-ahjewel1","LOCALS",0)~ THEN GOTO a1452 // Amulet of Metaspell Influence (+1 2nd level spell)
 IF ~HasItemEquiped("AMUL18",Player1) Global("c-ahjewel1","LOCALS",0)~ THEN GOTO a1453 // Wolfsbane Charm +2 vs Lycanthropes
 IF ~HasItemEquiped("AMUL22",Player1) Global("c-ahjewel1","LOCALS",0)~ THEN GOTO a1454 // Periapt of Proof Against Poison
 IF ~HasItemEquiped("AMUL01",Player1) Global("c-ahjewel1","LOCALS",0)~ THEN GOTO a1443 // Necklace of Missiles  
 IF ~HasItemEquiped("AMUL12",Player1) Global("c-ahjewel1","LOCALS",0)~ THEN GOTO a1442 // Laeral's Tear Necklace (3000 gp)
 IF ~HPPercentLT(Player1,40)~ THEN GOTO a1396
END

IF ~~ a1441 
 SAY ~[ARAN] Shar's Spiky Spit, I don't rightly want naught to do wi' a weapon what turns to dust in sunlight. I know it be powerful an' magical, but give me a solid surface weapon an' I'd be a mite happier.~
 IF ~~ THEN DO ~SetGlobal("c-arandroweq","LOCALS",1)~ EXIT
END

IF ~~ a1442 /* Laeral's Tear Necklace (3000 gp) */
 SAY ~[ARAN] (He leans forward slightly, studying the Laeral's Tear necklace you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1456 /* expensive */
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1463 /* expensive */
END

IF ~~ a1443 /* Necklace of Missiles */
 SAY ~[ARAN] (He leans forward slightly, studying the Necklace of Missiles necklace you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1457 /* missiles */
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1464 /* missiles */
END

IF ~~ a1444 /* Studded Necklace with Zios Gems */
 SAY ~[ARAN] (He leans forward slightly, studying the zios gems embedded in the necklace you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1462 /* clunky */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1469 /* clunky */ 
END

IF ~~ a1445 /* Bluestone Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the bluestone necklace you are wearing.)~ 
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1462 /* clunky */
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1469 /* clunky */ 
END

IF ~~ a1446 /* Agni Mani Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the angi mani necklace you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMRETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1462 /* clunky */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1469 /* clunky */ 
END

IF ~~ a1447 /* Rainbow Obsidian Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the obsidian necklace you are wearing.)~ 
 IF ~~ THEN GOTO a1455 //*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1462 /* clunky */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1469 /* clunky */ 
END

IF ~~ a1448 /* Tiger Cowrie Shell Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the cowrie shell necklace you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1462 /* clunky */
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1469 /* clunky */ 
END

IF ~~ a1449 /* Silver Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the silver necklace you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1458 /* simple */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1465 /* simple */
END

IF ~~ a1450 /* Gold Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the gold necklace you are wearing.)~ 
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1458 /* simple */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1465 /* simple */
END

IF ~~ a1451 /* Pearl Necklace */
 SAY ~[ARAN] (He leans forward slightly, studying the pearl necklace you are wearing.)~ 
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1458 /* simple */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1465 /* simple */
END

IF ~~ a1452 /* Amulet of Metaspell Influence (+1 2nd level spell) */
 SAY ~[ARAN] (He leans forward slightly, studying the amulet you are wearing.)~ 
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1461 /* magical */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1468 /* magical */ 
END

IF ~~ a1453 /* Wolfsbane Charm +2 vs Lycanthropes */
 SAY ~[ARAN] (He leans forward slightly, studying the wolfsbane charm you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1460 /* anti-wolf  */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1467 /* anti-wolf  */ 
END

IF ~~ a1454 /* Periapt of Proof Against Poison */
 SAY ~[ARAN] (He leans forward slightly, studying the periapt you are wearing.)~
 IF ~~ THEN GOTO a1455 /*I GOT HERE BECAUSE SOMETHING IS BROKEN */
 IF ~Global("c-aranlightflirt","GLOBAL",1)~ THEN GOTO a1459 /* anti-poison */ 
 IF ~Global("c-aranheavyflirt","GLOBAL",1)~ THEN GOTO a1466 /* anti-poison */ 
END

/* Troubleshooting for NVROL */
IF ~~ a1455 /* I GOT HERE BECAUSE SOMETHING IS BROKEN */
 SAY ~[ARAN] Hey, I am not readin' my code correctly. Contact cmorgan at www.gibberlings3.net, on account o' somethin' is not right. Line a1455 is playin' out in dialog, which means No Valid Links Or Replies.~ 
 IF ~~ THEN EXIT 
END

/* light replies for necklace flirts */
IF ~~ a1456 SAY ~[ARAN] Now, I do think that piece o' jewelry matches you. But on full account, there be few pieces, no matter how expensive, what can do justice to th' beauty o' your eyes.~ DO ~SetGlobal("c-aljewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* expensive */
IF ~~ a1457 SAY ~[ARAN] (Hesitantly, he reaches one hand out to touch it...) OUCH! That there necklace done bit me! Hells, <CHARNAME>, you could have warned me th' bloody thing was leakin' some o' that missile-energy.~ DO ~SetGlobal("c-aljewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* missiles */
IF ~~ a1458 SAY ~[ARAN] Perfect. Simple, attractive, understated, an' nearly as beautiful as you.~ DO ~SetGlobal("c-aljewel3","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* simple */
IF ~~ a1459 SAY ~[ARAN] Good protection. You might want to keep in on tonight, eh? On account o' I am cookin' wi' some new spices, an' I am not sure I have the amount just right.~ DO ~SetGlobal("c-aljewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* anti-poison */
IF ~~ a1460 SAY ~[ARAN] Now, you may think that charm will keep th' lkes o' me away. Problem is, I'm no wolf. I just act like one!~ DO ~SetGlobal("c-aljewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* anti-wolf */
IF ~~ a1461 SAY ~[ARAN] (He gently caresses it with the tip of one finger, then shivers and shakes his hand.) Now, that done give me a set o' goosebumps. Either it did, or th' curve o' your neck did. Either way, I think I might want to repeat th' experience.~ DO ~SetGlobal("c-aljewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* magical */
IF ~~ a1462 SAY ~[ARAN] Now, that be alright for some women, but I am not so sure when it comes to you. I think it sets off your eyes right nice, but I think it be a mite clunky. Here. This pearl necklace might be better.~ DO ~GiveItemCreate(Player1,"AMUL11",0,0,0) SetGlobal("c-aljewel2","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranlightflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* clunky */
/* heavy replies for necklace flirts */
IF ~~ a1463 SAY ~[ARAN] Now, I do think that piece o' jewelry matches you. But on full account, there be few pieces, no matter how expensive, what can do justice to th' beauty o' th' curve o' your inner thigh, or the way your body moves... hells, now I need a cold bath, eh?.~ DO ~SetGlobal("c-ahjewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* expensive */
IF ~~ a1464 SAY ~[ARAN] (He reaches one hand out to touch it gently...) Tingles. An' I mean it tingles, as well as th' effect touching your collarbone makes me feel, eh?~ DO ~SetGlobal("c-ahjewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* missiles */
IF ~~ a1465 SAY ~[ARAN] Perfect. Simple, attractive, understated, an' nearly as beautiful as you. In fact, I can't rightly help myself... too bloody kissable.~ = ~[ARAN] (His lips lightly brush your neck.)~ DO ~SetGlobal("c-ahjewel3","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* simple */ 
IF ~~ a1466 SAY ~[ARAN] Good protection. If you wwerre to die, I'd rather it would be on accont o' you or I wore eachother out in th' bedchamber, not on account o' some stupid poison.~ DO ~SetGlobal("c-ahjewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* anti-poison */
IF ~~ a1467 SAY ~[ARAN] Glad to see th' protections in place. Though if you want a partner for play-actin' wolf an' wolfess, I be your man...~ DO ~SetGlobal("c-ahjewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* anti-wolf  */ 
IF ~~ a1468 SAY ~[ARAN] (He gently caresses it with the tip of one finger, then shivers and shakes his hand.) Now, that done give me a set o' goosebumps. Either it did, or th' curve o' your neck did. Either way, I think I might want to repeat th' experience.~ DO ~SetGlobal("c-ahjewel1","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* magical */
IF ~~ a1469 SAY ~[ARAN] I think you should wear that more often. O' course, I'd prefer it even more if you would wear *only* that, but it might make it a bit cold walkin' around in your birthday suit. Plus, I want that vision all to myself, eh?~ DO ~SetGlobal("c-ahjewel2","LOCALS",1) IncrementGlobal("c-aranflirt","GLOBAL",1) SetGlobal("c-aranheavyflirt","GLOBAL",0) RealSetGlobalTimer("c-aranflirttimer","GLOBAL",ARAN_FLIRT)~ EXIT END /* clunky */

Link to post
IF ~~ a1460 SAY ~[ARAN] Now, you may think that charm will keep th' likes o' me away. Problem is, I'm no wolf. I just act like one!~

 

IF ~~ a1463 SAY ~[ARAN] Now, I do think that piece o' jewelry matches you. But on full account, there be few pieces, no matter how expensive, what can do justice to th' beauty o' th' curve o' your inner thigh, or the way your body moves... hells, now I need a cold bath, eh?~

 

IF ~~ a1466 SAY ~[ARAN] Good protection. If you were to die, I'd rather it would be on account o' you or I wore eachother out in th' bedchamber, not on account o' some stupid poison.~

Link to post

so I know this isn't really the place to say this but I didn't want to start a whole new thread. Anywho I've been lurking here for nearly a year and I totally love Aran's concept. I'm actually holding off on another BG2 playthrough for this to finish (luckily I have dragon age to occupy my time but still) I can't wait

Link to post

Thank you, but don't wait - Berelinde's Gavin BG2 content will be in alpha soon, but I expect not to have a testable alpha for Aran before the end of June! I can code during downtime, and luckily I can do both writing and .baf/.d coding at the same time, but I can't test stuff. It is nice to hear that there are some folks who will enjoy messing around with him in the party, though.

Link to post

Archived

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

×
×
  • Create New...