Exemplo n.º 1
0
        void Handler_OnDisconnect(NetworkMessage netMsg)
        {
            PTPlayer player = PTPlayer.Find(netMsg.conn.connectionId);

            if (player != null)
            {
                players[player] = false;
            }
            string logText = player == null ? "OnDisconnected" : "OnDisconnected: " + player;

            PTDebug(logText);

            if (isTableTop)
            {
                try {
                    players.Remove(player);
                } catch { }
            }
            else
            {
                //Destroy(gameObject);

                /*
                 * Debug.Log("hostId=" + myClient.connection.hostId);
                 *
                 * myClient.connection.UnregisterHandler((short)PTEvent.Connect);
                 * myClient.connection.UnregisterHandler(MsgType.Disconnect);
                 * myClient.connection.UnregisterHandler((short)PTEvent.Data);
                 * myClient.connection.UnregisterHandler((short)PTEvent.Ready);
                 * myClient.connection.UnregisterHandler((short)PTEvent.ConfirmReadyReceived);
                 *
                 * myClient.connection.Disconnect();
                 * myClient.connection.Dispose();
                 * myClient.connection.ResetStats();
                 * myClient.connection.connectionId = -1;
                 *
                 * myClient.UnregisterHandler((short)PTEvent.Connect);
                 * myClient.UnregisterHandler(MsgType.Disconnect);
                 * myClient.UnregisterHandler((short)PTEvent.Data);
                 * myClient.UnregisterHandler((short)PTEvent.Ready);
                 * myClient.UnregisterHandler((short)PTEvent.ConfirmReadyReceived);
                 * myClient.ResetConnectionStats();
                 * myClient.Disconnect();
                 * myClient.Shutdown();
                 *
                 * NetworkClient.ShutdownAll();
                 * //NetworkTransport.RemoveHost(myClient.connection.hostId);
                 */


                players.Clear();
            }
            if (OnDisconnected != null)
            {
                PTMessage ptMsg = new PTMessage();
                ptMsg.senderName = isTableTop ? player.name : "PlayTable";
                ptMsg.gameName   = gameName;
                OnDisconnected(ptMsg);
            }
        }
Exemplo n.º 2
0
        void Handler_OnReadyReceived(NetworkMessage netMsg)
        {
            PTMessage msg = netMsg.ReadMessage <PTMessage>();

            PTDebug("OnReady: " + msg.ToString(true));
            PTPlayer player = PTPlayer.Find(msg.senderName);

            if (player != null)
            {
                players[player] = true;
            }
            if (OnReadyReceived != null)
            {
                OnReadyReceived(msg);
            }
            ConfirmReadyReceived(netMsg);
        }
Exemplo n.º 3
0
        void Handler_OnConnected(NetworkMessage netMsg)
        {
            PTMessage msg = netMsg.ReadMessage <PTMessage>();

            PTDebug("OnConnected: " + msg.ToString(true));

            PTPlayer player = PTPlayer.Find(netMsg.conn.connectionId);

            if (player != null)
            {
                players[player] = false;
            }
            else
            {
                PTPlayer newPlayer = new PTPlayer(msg.senderName, netMsg.conn.connectionId, null);
                players.Add(newPlayer, false);
            }

            if (isTableTop)
            {
                if (!acceptNewPlayer || players.Count >= maximumPlayer)
                {
                    //put the newly connected player in the wait queue
                    KeyValuePair <string, int> newPlayer = new KeyValuePair <string, int>(msg.senderName, netMsg.conn.connectionId);
                    waitQueue.Enqueue(newPlayer);
                }

                //Tell the sender client that this server has been connected
                PTMessage msgFromServer = new PTMessage();
                msgFromServer.senderName = playerName; NetworkServer.SendToClient(netMsg.conn.connectionId, (short)PTEvent.Connect, msgFromServer);
            }
            else
            {
            }

            //Invoke OnConnected Event
            if (OnConnected != null)
            {
                OnConnected(msg);
            }
        }
Exemplo n.º 4
0
        public static void Send <T>(string playerName, T data)
        {
            PTPlayer player = PTPlayer.Find(playerName);

            Send <T>(player, data);
        }