using System; using System.Collections.Generic; namespace ET.Server { [FriendOf(typeof (MapReliveTimeComponent))] public static class MapReliveTimeComponentSystem { public class MapReliveTimeComponentAwakeSystem: AwakeSystem { protected override void Awake(MapReliveTimeComponent self) { Log.Info($"创建单位玩家复活组件..."); self.ReliveDatas = new List(); } } public class MapReliveTimeComponentUpdateSystem: UpdateSystem { protected override void Update(MapReliveTimeComponent self) { if (self.ReliveDatas.Count <= 0) { return; } for (int i = self.ReliveDatas.Count - 1; i >= 0; i--) { Struct.UnitPlayerReliveData data = self.ReliveDatas[i]; if (data == null) { continue; } if (TimeHelper.ServerNow() < data.ReliveTime) { continue; } // 复活(添加一个单位) Struct.MonsterUnit unit = new Struct.MonsterUnit(); unit.id = data.ID; unit.force = 1; unit.x = data.x; unit.y = data.y; unit.autoGuard = true; int objId = data.Map.AddUnits(unit, true).GetResult(); data.Map.AddUnitObjId(data.OpenId, objId); data.Map.AddUnitPlayer(data.OpenId, data.ID); self.ReliveDatas.Remove(data); } } } } }