Chu or Ch85us2001 does scripting and is member of the GB community. His forum is at this address.
Chus Mod Forum
I think I know what the cause is. Try looking at Morrowind scripting for dummies. I think it has the answer you are looking for in the sample script.
EDIT: This may help
[QUOTE=MSFD]How local scripts are executed
Every script that is attached to an Object or an NPC (local script) is executed every frame the game displays on screen while the cell with the object is active (indoors only the cell the NPC is currently in is active, outdoors the PC’s cell and all adjacent cells are active). So the complete script (not just one line of it) is executed 10-60 times a second or however fast your computer runs the game! It is best to imagine every local script wrapped in a big “while-loop”:
while (Object is in active Cell)
[Your script code]
endwhile
This is the reason why the following script spits out a continuous stream of messages (if attached to an Object or NPC in the same cell as the player). Try it, if you want:
Code: Select all
Begin Message_script
MessageBox “Thousands of useless Messages”
End Message_script
This example is relatively harmless, but imagine what happens if you would use a line of code that adds an item to the players inventory, or places a monster next to him, etc.!
For this reason, “Do Once” constructions are very essential and something you will probably use a lot while scripting for Morrowind. So, let's go on with our tutorial script: we need to declare a variable and use it to make sure the message is only displayed once. Change the script to the following:
Code: Select all
Begin my_first_script
Short controlvar
If ( OnActivate == 1 )
If ( controlvar == 0)
MessageBox "Voiceless it cries, wingless flutters, toothless bites, mouthless mutters. What is it?", "Bat", "Old woman", "Wind", "Wraith"
Set controlvar to 1
endif
endif
End
(Please note that the MessageBox command should be in one line in the editor!)
"Short controlvar" declares a new variable I called "controlvar", of type short. For the moment it's enough to know that this is variable that will contain integers (whole positive or negative numbers). A variable is a "placeholder" that can take on different values. The if command we already know, the set command is new, but simple enough – it sets our variable that had the value 0 before (all variables start out at zero when declared) to 1. This, in connection with the if ( controlvar == 0 ) command provides a do-once condition – the next frame the script is executed after the variable was set to 1 the if condition will be false and the message box will not be displayed again.
[/QUOTE]
You may need the whole document. You can find it at planet elder scrolls.
[url="http://www.gamebanshee.com/forums/the-elder-scrolls-iii-morrowind-29/tel-uvirith-86692.html"]Uvirith Awakes[/url] - Please leave comments, all help is appreciated.