Here's the story: the player meets a NPC who's searching for the Dragonborn, however she doesn't believe the player when they confess to being Dragonborn, and require some more convincing. Of course the best means of convincing is using a Shout, and this is where the problems begin.
There's an optional quest in MQ104 when the player is given an optional objective of using their freshly obtained Shout. This is how the script looks like:
Scriptname MQ104PlayerScript extends ReferenceAlias{used to detect player shouting}Event OnSpellCast(Form akSpell); debug.trace(self + ": player cast " + akSpell) Spell castSpell = akSpell as Spell; debug.trace(self + ": player cast " + castSpell) if castSpell && castSpell == ForcePushSpell; debug.trace(self + ": " + castSpell + "==" + forcepushspell + ": setting stage 100") GetOwningQuest().SetStage(100) else; debug.trace(self + ": " + castSpell + "<>" + forcepushspell + ": do nothing") endifendevent
This looks simple. It's the very beginning of the game, the player knows just the first word of Unrelenting Force, and this is exactly what the script is looking for. In my case, I want the script to catch any and all of the shouts the player might know. How do I go about it, without having to define each and every shout at every stage as a separate property and set up a neverending OR condition. I guess I could set up some kind of array and have the script check every shout in this array, but I have no idea how to go about that. Any help would be appreciated.