EiriktheScald Posted March 29, 2007 Posted March 29, 2007 It would be nice, I thought, if Eirik chanted a battle song when the player used his bard song ability. This was my general idea for his script: IF ModalState(BATTLESONG) THEN RESPONSE #100 SetGlobal("SongGlobal","GLOBAL",1) StartDialogueNoSet(Player1) END Then in my D: CHAIN IF ~Global("SongGlobal","GLOBAL",1)~ THEN ESEIRIK ESBattleSong SAY ~'Wolf-battening warrior, Wield we high gleaming swords. In spear-shafts hall Such deeds well beseem. Lead up the charge: Let stragglers be none! Spear-din ungentle We feed the eagle.'~ DO ~SetGlobal("SongGlobal","GLOBAL",2)~ EXIT I think there might be some problems, as is. Also, it might become a nuisance if he says it too often. Maybe it could be random, i.e. RandomNum(X,Y), with more than one chant, or no chant at all. What would the script look like?
devSin Posted March 29, 2007 Posted March 29, 2007 Stick a fat timer in there. Then your dialogue could do RandomNum()s with the Global(). This is probably going to interrupt his singing, though, so the player would have to click the battle song yet again (or you'd have to restart it with BattleSong() or something). The states would also have to be weighted so he doesn't run some other interaction.
EiriktheScald Posted March 29, 2007 Author Posted March 29, 2007 Stick a fat timer in there. Then your dialogue could do RandomNum()s with the Global(). This is probably going to interrupt his singing, though, so the player would have to click the battle song yet again (or you'd have to restart it with BattleSong() or something). The states would also have to be weighted so he doesn't run some other interaction. Hmm... yeah; didn't consider that. Well, it might have been a nice touch anyway. [Edit:] There's a harp sound that plays when you use bard song; anyway to tie into that without interrupting it?
Miloch Posted March 29, 2007 Posted March 29, 2007 I'll just throw this out there... not sure if it'll work or not. It's meant so that he'll start singing or chanting if he's not doing anything else and not hidden or invisible or already singing, and you can have the dialogue trigger beforehand. IF ActionListEmpty() !ModalState(BATTLESONG) !StateCheck(Myself,STATE_INVISIBLE) !StateCheck(Myself,STATE_IMPROVEDINVISIBILITY) THEN RESPONSE #100 SetGlobal("SongGlobal","GLOBAL",1) StartDialogNoSet([PC]) BattleSong() Wait(2) END You could even change the RESPONSE #100 to be variable (and throw a NoAction() in there half the time or something). Not sure about the harp thing - if the dialogue does interrupt it, you could always add it in to Eirik's string/soundclip. Edit: Added the variable for the dialog of course . And you could even have several different responses/dialogues so the player doesn't see the same chant every time (if of course you wanted to write several...).
EiriktheScald Posted March 29, 2007 Author Posted March 29, 2007 In that case, would you also need a check for See(NearestEnemyOf()) ?
Miloch Posted March 29, 2007 Posted March 29, 2007 Actually, he probably wants to be singing when there *isn't* an enemy present, because once there is, he'll be busy kicking ass or perhaps casting spells or whatever, rather than singing. Bard song should continue until any action other than movement happens for the bard. Though maybe skald song works a little differently - not sure. I know skald song *is* different (gives hit/dam/AC bonuses instead of luck/morale bonuses) but other than that, I'm not sure if it functions differently. I suppose you could put an area check in if you're just walking around town shopping and you don't want him singing then. Though if you're like me, you might still run afoul of the guards and be happy for the bardsong bonuses anyway.
BigRob Posted March 30, 2007 Posted March 30, 2007 Maybe this could be done with Display String and set to carry on only when he has bardsong active. That way it wouldn't interrupt combat or other actions the player might wish to take.
Miloch Posted March 30, 2007 Posted March 30, 2007 Yeah, the DisplayString might work better than the StartDialogNoSet. You could even set multiple RESPONSEs so you only see a couple lines of the chant at a time randomly so as not to overwhelm the message window (since it's not rhyming verse, that would work ). Though I would only trigger it whenever he starts his song (and therefore is probably not in combat) rather than putting a timer in, but that's just me.
EiriktheScald Posted March 30, 2007 Author Posted March 30, 2007 I'll experiment with all your suggestions. Thanks.
Recommended Posts
Archived
This topic is now archived and is closed to further replies.