///<summary> /// Write a Player Primitive (just data, no graphics) to outgoing server message ///</summary> public static void Write(this NetOutgoingMessage message, PlayerPrimitive playerPrim) { message.Write(playerPrim.Name); //XNAExtensions.Write(message, playerPrim.Position); message.Write(playerPrim.X); message.Write(playerPrim.Y); message.Write(playerPrim.UniqueId); }
///<summary> /// Read a Player Primitive ///</summary> public static PlayerPrimitive ReadPlayer(this NetIncomingMessage message) { PlayerPrimitive playerPrim = new PlayerPrimitive(); playerPrim.Name = message.ReadString(); //playerPrim.Position = XNAExtensions.ReadVector2(message); playerPrim.X = message.ReadInt32(); playerPrim.Y = message.ReadInt32(); playerPrim.UniqueId = message.ReadInt32(); return playerPrim; }
public void Start(Player player) { NetOutgoingMessage outmsg = mClient.CreateMessage(); mClient.Start(); PlayerPrimitive playerPrim = new PlayerPrimitive(); mClientsId = playerPrim.UniqueId; playerPrim.X = (int)player.Coordinates.X; playerPrim.Y = (int)player.Coordinates.Y; playerPrim.Name = "Quas"; outmsg.Write((byte)PacketTypes.Login); DataReadWrite.Write(outmsg, playerPrim); mClient.Connect(mHostIP, 7377, outmsg); Console.WriteLine("Client started"); Console.WriteLine("epic"); mPlayerList = new Dictionary<int, PlayerPrimitive>(); mUpdater = new System.Timers.Timer(50); mUpdater.Elapsed += new System.Timers.ElapsedEventHandler(UpdateElapsed); mUpdater.Enabled = true; WaitForStartingInfo(); }
private void UpdatePlayerList(NetIncomingMessage nim) { lock (mPlayerList) { mPlayerList.Clear(); int playerCount = 0; playerCount = nim.ReadInt32(); int npcCount = 0; npcCount = nim.ReadInt32(); for (int i = 0; i < playerCount; i++) { PlayerPrimitive player = new PlayerPrimitive(); nim.ReadAllProperties(player); if(player.UniqueId != ClientsUniqueId) Console.WriteLine("player: " + player.Name + " x: " + player.X + "; y: " + player.Y); mPlayerList.Add(player.UniqueId, player); } for (int i = 0; i < npcCount; i++) { PlayerPrimitive player = new PlayerPrimitive(); nim.ReadAllProperties(player); if (player.UniqueId != ClientsUniqueId) Console.WriteLine("player: " + player.Name + " x: " + player.X + "; y: " + player.Y); mPlayerList.Add(player.UniqueId, player); } } }