Jump to content

Battle Song script


EiriktheScald

Recommended Posts

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?

Link to comment

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.

Link to comment
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?

Link to comment

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...).

Link to comment

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.

Link to comment

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.

Link to comment

Archived

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

×
×
  • Create New...