private void DisconnetPlayer(NetIncomingMessage incmsg) { string playerName = incmsg.ReadString(); World w = serverCore.GetWorld(); DataBase db = serverCore.GetDataBase(); for (int i = 0; i < w.ships.Count; i++) { if (w.ships[i].shipName.Equals(playerName)) { incmsg.SenderConnection.Disconnect("bye"); //System.Threading.Thread.Sleep(100); ServerCore.LogAdd(playerName + " disconnected."); if (ServerCore.GetServerCore().GetServer().ConnectionsCount != 0) { NetOutgoingMessage outmsg = serverCore.CreateMessage(); outmsg.Write((byte)PacketType.Disconnect); outmsg.Write(playerName); ServerPacketSender.SendMessageToAll(outmsg); } db.SaveUser(playerName, w.ships[i]); w.ships.RemoveAt(i); i--; break; } } }
private void Message(NetIncomingMessage incmsg) { NetOutgoingMessage outmsg = serverCore.GetServer().CreateMessage(); outmsg.Write((byte)PacketType.Message); outmsg.Write(incmsg.ReadString()); outmsg.Write(incmsg.ReadString()); ServerPacketSender.SendMessageToAll(outmsg); }
public static void UpdatePlayers(World w, DataBase db) { for (int i = 0; i < w.ships.Count; i++) { w.ships[i].timeOut++; NetOutgoingMessage outmsg = server.CreateMessage(); outmsg.Write((byte)PacketType.Move); outmsg.Write(w.ships[i].shipName); outmsg.Write(w.ships[i].Position.X); outmsg.Write(w.ships[i].Position.Y); outmsg.Write(w.ships[i].Rotation); outmsg.Write(w.ships[i].velocity.X); outmsg.Write(w.ships[i].velocity.Y); outmsg.Write(w.ships[i].hull); outmsg.Write(w.ships[i].shield); ServerPacketSender.SendMessageToAll(outmsg); if (w.ships[i].timeOut > 180) { ServerCore.LogAdd(w.ships[i].shipName + " is timed out."); //System.Threading.Thread.Sleep(100); if (server.ConnectionsCount != 0) { outmsg = server.CreateMessage(); outmsg.Write((byte)PacketType.Disconnect); outmsg.Write(w.ships[i].shipName); SendMessageToAll(outmsg); } db.SaveUser(w.ships[i].shipName, w.ships[i]); w.ships.RemoveAt(i); i--; break; } } }