namespace ET { [ActorMessageHandler] public class G2M_UserOffLineHandler : AMActorHandler { protected override async ETTask Run(Scene scene, G2M_UserOffLine message) { try { Unit unit = MapUnitComponent.Instance.Get(message.Id); if (!unit) { Log.Info($"unit == null where id = {message.Id} when offLine"); return; } Team team = TeamComponent.Instance.Get(unit.TeamLeaderId); if (team == null) { Log.Error($"team == null where {unit}"); }else if (team.TeamState == TeamState.Fight) { unit.IsOffline = true; team.AddOffLineId(unit); return; } MapUnitComponent.Instance.OffLine(unit.Id); await Game.EventSystem.Publish(new EventType.UnitOffline { unit = unit }); await ETTask.CompletedTask; } catch (System.Exception e) { Log.Error(e); } } } }