Exemple #1
0
        public Game(Banshee _p, string mappath, int port = 6112)
        {
            p         = _p;
            entryKey  = (uint)new Random().Next();
            gameState = GameState.LOBBY;

            gameMap = new Map(mappath);
            slots   = gameMap.Slots.ToArray();

            randomseed = (uint)GetTimeMS();

            broadcastAddr = new IPEndPoint(IPAddress.Broadcast, 6112);
            tcpServer     = new TcpListener(IPAddress.Any, 6112);
            tcpServer.Server.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, 1);
            tcpServer.Start();

            x31CREATEGAME pkt = new x31CREATEGAME();

            pkt.product = "W3XP";
            pkt.version = 30;
            pkt.gameId  = id;
            p.sendUDPPacket(pkt, broadcastAddr);

            lobbyThread = new Thread(refreshThread);
            lobbyThread.Start();

            tcpThread = new Thread(listenTCP);
            tcpThread.Start();

            gameThread = new Thread(tickloop);
            gameThread.Start();
        }
Exemple #2
0
        public static void initUDP()
        {
            packets[0x2F] = new x2fREQUESTGAME();

            packets[0x30] = new x30GAMEDETAILS();
            packets[0x31] = new x31CREATEGAME();
            packets[0x32] = new x32REFRESHGAME();
        }