PlayerReliveTimeComponentSystem.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using System;
  2. namespace ET.Server
  3. {
  4. [FriendOf(typeof (PlayerReliveTimeComponent))]
  5. public static class PlayerReliveTimeComponentSystem
  6. {
  7. public class PlayerReliveTimeComponentAwakeSystem: AwakeSystem<PlayerReliveTimeComponent, WNPlayer>
  8. {
  9. protected override void Awake(PlayerReliveTimeComponent self, WNPlayer player)
  10. {
  11. Log.Info($"创建玩家复活倒计时组件...");
  12. self.ReliveTime = TimeHelper.ServerNow() + 5000;
  13. self.Player = player;
  14. }
  15. }
  16. public class PlayerReliveTimeComponentUpdateSystem: UpdateSystem<PlayerReliveTimeComponent>
  17. {
  18. protected override void Update(PlayerReliveTimeComponent self)
  19. {
  20. if (!(TimeHelper.ServerNow() - self.ReliveTime > 5000) || self.ReliveTime == 0)
  21. {
  22. return;
  23. }
  24. // 设置时间
  25. self.ReliveTime = 0;
  26. // 复活
  27. self.Player.GetXmdsManager().revivePlayer(self.Player.GetId().ToString(), self.Player.Map.ReliveData(ReliveType.NOW));
  28. // 复活后销毁组件
  29. self.Dispose();
  30. }
  31. }
  32. }
  33. }