예제 #1
0
 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);
             }
         });
     }
 }
예제 #2
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);
     });
 }