Usually this heads to an Engine.Mover error and mover mainly might stay open hanging with a Toucher vanished without calling UnTrigger- depends on situation, of course. Indeed this is dumb setup. These movers are always TriggerOpenTimed with bTriggerOnceOnly. I've done mods switching the movers like that with no issues. You should do the same if you want to recover some maps from dust. Even doors open by dispatchers with the same setup are doing sucks - switching them will make them nice. Other normal doors types TriggerControl for creatures are developing errors when creature is killed in trigger's radius. I've done something for this case - works for majority of normal maps and MH as well. Install an actor tracker for these doors and let it handle mover when gets triggered. Else it might be checking while door is open if something is still in certain radius, and then close door if nothing stays there.
Barbie wrote: but this value is ignored in state
TriggerControl (see also that
state in Wiki).
False - Apology for ruining Wiki spree but Wiki has some troubles as I can see so far... I think I was talking about these movers already... Perhaps Wiki has to be fixed too.
Nothing is more easy than checking code directly
Code: Select all
state() TriggerControl
{
function bool HandleDoor(pawn Other)
{
return HandleTriggerDoor(Other);
}
function Trigger( actor Other, pawn EventInstigator )
{
numTriggerEvents++;
SavedTrigger = Other;
Instigator = EventInstigator;
if ( SavedTrigger != None )
SavedTrigger.BeginEvent();
GotoState( 'TriggerControl', 'Open' );
}
function UnTrigger( actor Other, pawn EventInstigator )
{
numTriggerEvents--;
if ( numTriggerEvents <=0 )
{
numTriggerEvents = 0;
SavedTrigger = Other;
Instigator = EventInstigator;
SavedTrigger.BeginEvent();
GotoState( 'TriggerControl', 'Close' );
}
}
function BeginState()
{
numTriggerEvents = 0;
}
Open:
if ( DelayTime > 0 )
{
bDelaying = true;
Sleep(DelayTime);
}
DoOpen();
FinishInterpolation();
FinishedOpening();
SavedTrigger.EndEvent();
if( bTriggerOnceOnly ) //Myth burned and buried
GotoState(''); //like that - it simply changes itself to a NON STATE
Stop;
Close:
DoClose();
FinishInterpolation();
FinishedClosing();
}
Yeah, like that... mover goes borked when doesn't have EventInstigator - which is Pawn not a crap, then reaction is unexpected around an Accessed None.
For completing stage if you want I'll setup a small map with such a mover "bTriggerOnceOnly" and you'll see what it does when gets triggered ONCE by Player. It stays open.