rott/kf_sources/KFMod/Classes/WeaponLocker.uc
2026-07-14 20:27:09 +07:00

82 lines
1.5 KiB
Ucode

class WeaponLocker extends Actor
placeable;
var() float TriggerRadius, TriggerHeight;
var bool bActive, bOpen;
var int OpenRefs;
simulated event PreBeginPlay()
{
local ShopVolume Shop;
super.PreBeginPlay();
foreach VisibleCollidingActors(class'ShopVolume', Shop, 1000)
{
Shop.MyTrader = self;
}
}
simulated event PostBeginPlay()
{
if( Level.NetMode!=NM_DedicatedServer )
LoopAnim('Idle');
}
function SetOpen(bool bToOpen)
{
switch(bToOpen)
{
case false:
OpenRefs--;
if(bOpen && OpenRefs == 0)
{
if( Level.NetMode!=NM_DedicatedServer )
LoopAnim('Idle');
bOpen=false;
}
break;
case true:
OpenRefs++;
if(!bOpen)
{
NetUpdateTime = Level.TimeSeconds - 1;
bClientTrigger = !bClientTrigger;
if( Level.NetMode!=NM_DedicatedServer )
ClientTrigger();
bOpen=true;
}
break;
}
}
simulated function AnimEnd( int Channel )
{
if( Level.NetMode!=NM_DedicatedServer )
LoopAnim('Idle');
}
simulated event ClientTrigger()
{
//PlayAnim('Gesture');
}
defaultproperties
{
TriggerRadius=150.000000
TriggerHeight=100.000000
bActive=True
DrawType=DT_Mesh
bReplicateAnimations=False
RemoteRole=ROLE_SimulatedProxy
Mesh=SkeletalMesh'KF_Soldier_Trip.ShopKeeper_Trip'
DrawScale=1.000000
CollisionRadius=15.000000
CollisionHeight=50.000000
bCollideActors=True
bCollideWorld=True
bBlockActors=True
bBlockKarma=True
bNetInitialRotation=True
bAlwaysRelevant=True
NetUpdateFrequency=0.2
}