Okay, some more details on this one.
I can reproduce it 100% of the time like this:
Testcase:
1. Log in
2. 'ADD 0x100a
or...
2b. 'ADD 0x1070
3. Doubleclick on the archery butte/training dummy a couple of times
4. 'SAVE
So it would appear that it's related to something in archerybutte.js and trainingdummy.js.
Common for both seems to be use of
TriggerEvent to run an event in a different scriptfile, where a tag is applied to the character using
SetTag. This is then retrieved again using
GetTag in the original scriptfile (archerybutte.js/trainingdummy.js in this case) after the event in the other script is done.
This can also be reproduced by pasting the following into any other JavaScript we have (and replacing pUser with what's appropriate in the script you paste it into):
Code: Select all
TriggerEvent( 2500, "getWeaponType", pUser );
var weaponType = pUser.GetTag( "weaponType" );
Trigger the script you pasted this code into, then do a worldsave afterwards. Guaranteed crash. To see what happens during the TriggerEvent bit, check js\server\data\weapontypes.js.
We have other scripts that make use of TriggerEvent without crashing the server (the clock-script, for instance, scriptid 5014), and we also have scripts that make use of SetTag and GetTag without crashing.
But the combination of TriggerEvent, SetTag in external script and then GetTag in original script somehow seems to trigger the crash all the time for me.
This bug is probably the same as
this one from June 2007.