public static void SetPlayerActive(EPlayer eplr) { if (MapManager.GetMapFromUUID(eplr.MapUUID, out var map) && eplr.MapUUID != Guid.Empty) { EternalLand.OnlineEPlayer.ForEach(e => { if (e != eplr) { e.tsp.SendData(PacketTypes.PlayerActive, "", eplr.Index, map.Player.Contains(e.ID) ? 1 : 0); eplr.SendData(PacketTypes.PlayerActive, "", e.Index, map.Player.Contains(e.ID) ? 1 : 0); } }); } else //eplr 回到主世界 { EternalLand.OnlineEPlayer.ForEach(e => { if (e != eplr) { e.tsp.SendData(PacketTypes.PlayerActive, "", eplr.Index, e.MapUUID == eplr.MapUUID ? 1 : 0); eplr.SendData(PacketTypes.PlayerActive, "", e.Index, e.MapUUID == eplr.MapUUID ? 1 : 0); } }); } }
public async static void UpdateInfoToOtherPlayers(EPlayer eplr) { await Task.Run(() => { SetPlayerActive(eplr); Thread.Sleep(1000); if (eplr.IsInAnotherWorld) { eplr.Map.GetAllPlayers().ForEach(e => { if (e != eplr) { eplr.SendData(PacketTypes.PlayerUpdate, "", e.Index); e.SendData(PacketTypes.PlayerUpdate, "", eplr.Index); } }); //NetMessage.SendData(13, -1, eplr.Index, null, eplr.Index); } else { EternalLand.OnlineEPlayerWhoInMainMap.ForEach(e => { if (e != eplr) { eplr.SendData(PacketTypes.PlayerUpdate, "", e.Index); e.SendData(PacketTypes.PlayerUpdate, "", eplr.Index); } }); //NetMessage.SendData(13, -1, eplr.Index, null, eplr.Index); } SetCharacter(eplr); SetBag(eplr); SetBuff(eplr); Thread.Sleep(500); }); }