using CoreGame; namespace CoreGame.Render { public class Trigger_NoMovementTime : TriggerBase { // self.fParam1 触发计时器(开始不移动的时间) // triggerCfg.Param1 未移动时长大于X秒触发,万分比,10000代表1秒 // 到达时长后若继续不动则每帧接着触发 public override void OnEvent(TriggerSpec self, int eventId, object param1) { // param1 == null时为人物移动了 if (self.param1.floatVal <= 0f || param1 == null) { self.param1.floatVal = GameTime.GetRenderTime(); } if (GameTime.GetRenderTime() - self.param1.floatVal >= triggerCfg.param1 * 0.0001f) { OnTrigger(self, eventId, param1); } } public override void Init(TriggerSpec self) { RegEntityEvent(self, ClientEvent.NoMovementTime); } public override void UnInit(TriggerSpec self) { UnRegEntityEvent(self, ClientEvent.NoMovementTime); } } }