OK, I'll try and help
One: You're not defining Button properly-- usually, what I do is something like this :
If ( Part == 1 ) MessageBox" Some Text", "option one", "option Two" Set Part to 2ElseIf ( Part == 2 ) Set Button to ( GetButtonPressed + 1 ); <-- This Returns the Button; I add a +1, as the first button is "0", so this just makes it easier if you're running through it quickly If ( Button == 1 ) ;Do something Elseif ( Button == 2 ) ; Do Something Else EndIfEndIf
And so on.
What this does is the following:
1. First Run, hits Part 1, and presents a message box. Finishes the Script, doing nothing else.
2. Second Run, hits Part 2, and checks the Button Variable, and reacts to it, doing nothing else.
3. Third Run, hits Part 3, and does what it must
4. and so on
GetButtonPressed returns the LAST button pressed in a Menu, for ONE Time-- i.e., if you ran "GetButtonPressed" 100 times, the first would read a number between 0 - 9 (you can only have 10 buttons at a time), and the other 99 would be -1.
Defining the NPC is easy-- you can just use a Variable, again
In your spell, use something like :
Set BaseTarget to GetSelfSet MyQuest.NPCTarget to BaseTarget
On Actors-- be careful editing them: a lot of effects edit the BASE Record, rather than the Instance of the Record, meaning all versions will spawn the same (such as if you add an Ability to an NPC)