Ejemplo n.º 1
0
    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;
            }
        }
    }
Ejemplo n.º 2
0
    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);
    }
Ejemplo n.º 3
0
    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;
            }
        }
    }