User:Cipscis/Testing
From GECK
This page is where I write down results of my tests that I don't think are ready to be recorded on the Wiki yet for some reason. I'm recording this here hoping that someone who sees it can help me to understand just what exactly is going on.
Disappearing Weapons
This bug seems to be caused by calling AddItem in an Effect Script
Reneer recently posted a thread on the GECK Forum detailing a bug where adding a token via a scripted explosion seems to cause NPC's weapons to disappear.
A fix has been found, but at the moment I have no idea what might be causing the bug so there isn't really anywhere in the Wiki that I think I can put it, so I'm mentioning it here until the cause is found.
The fix was to create an unscripted token and add/remove it in the scripted token's OnAdd block:
ref rContainer
Begin OnAdd
set rContainer to GetContainer
rContainer.AddItem UnscriptedToken 1 1
rContainer.RemoveItem UnscriptedToken 1 1
End
RemoveMe
I've just been testing RemoveMe, mainly to see if it has any exploitable peculiarities, and I've come across something that I think is quite odd indeed. I've been using a script to move a visible token back and forth between an Actor and the player every couple of seconds, and it's resulted in some pretty weird stuff. Here is the script that I've been using:
ScriptName TestSCRIPT float fTimer ref rContainer short sIsOnPlayer short sTemp Begin OnAdd set rContainer to GetContainer set sIsOnPlayer to rContainer.GetIsReference player set rContainer to GetContainer set sTemp to rContainer.GetIsReference player PrintToConsole "OnAdd %.0f Is On Player %.0f" sIsOnPlayer sTemp End Begin GameMode if fTimer < 2 if fTimer == 0 set rContainer to GetContainer set sTemp to rContainer.GetIsReference player PrintToConsole "RemoveMe Successful %.0f Is On Player %.0f" sIsOnPlayer sTemp endif set fTimer to fTimer + GetSecondsPassed else set rContainer to GetContainer set sTemp to rContainer.GetIsReference player PrintToConsole "Timer Elapsed %.0f Is On Player %.0f" sIsOnPlayer sTemp set sIsOnPlayer to sIsOnPlayer == 0 set fTimer to 0 if sIsOnPlayer RemoveMe player else if TestActorRef.GetInSameCell player == 0 TestActorRef.MoveTo player endif RemoveMe TestActorRef endif endif End Begin OnDrop set rContainer to GetContainer set sTemp to rContainer.GetIsReference player PrintToConsole "OnDrop %.0f Is On Player %.0f" sIsOnPlayer sTemp End Begin OnEquip set rContainer to GetContainer set sTemp to rContainer.GetIsReference player PrintToConsole "OnEquip %.0f Is On Player %.0f" sIsOnPlayer sTemp End Begin OnUnequip set rContainer to GetContainer set sTemp to rContainer.GetIsReference player PrintToConsole "OnUnequip %.0f Is On Player %.0f" sIsOnPlayer sTemp End
Here is the console output that I get back, including the lines that I entered manually:
player.AddItem 01000ea6 1 ; 01000ea6 is the FormID of the scripted token OnAdd 1 Is On Player 1 RemoveMe Successful 1 Is On Player 1 Timer Elapsed 1 Is On Player 1 RemoveMe Successful 0 Is On Player 0 Timer Elapsed 0 Is On Player 0 OnAdd 1 Is On Player 1 RemoveMe Successful 1 Is On Player 1 OnDrop 1 Is On Player 1 OnUnequip 1 Is On Player 1 Timer Elapsed 1 Is On Player 1
At the end of this, the token is in the TestActor's inventory, and the script seems to have just stopped running. If anyone has any idea why this is, I'd love to hear it.
MatchFaceGeometry
The parameter listed on this function's page as "MatchPercent" doesn't seem to act in the way it's described. Instead, it seems that it affects the severity with which the Actor's face geometry is changed.
I'll be looking into this when I get the time to test it more thoroughly, but it may be that MatchFaceGeometry can't actually be used to match face geometry...

