public void OnEntry()
    {
        if (MatchServerIP == "")
        {
            // Aucune IP n'a été transmise. On le signal sur la console puis on revient au menu principal.

            BloodAndBileEngine.Debugger.Log("IP du MatchServer invalide... retour au menu principal.", UnityEngine.Color.red);
            Client.ChangeState(new MainMenuState());
            return;
        }
        else
        {
            ClientConnectionsManager.AddConnection("MatchServer", MatchServerConnectionID);

            NetworkHandlers = new BloodAndBileEngine.Networking.HandlersManager();
            InputHandlers   = new BloodAndBileEngine.InputHandlersManager();

            // Handlers

            BloodAndBileEngine.Networking.NetworkSocket.RegisterOnDisconnectionCallback(OnConnectionLost);
            BloodAndBileEngine.Networking.NetworkSocket.RegisterOnConnectionEstablishedCallback(OnConnectionEstablished);
            NetworkHandlers.Add <BloodAndBileEngine.Networking.NetworkMessage>(20001, OnMatchStarted);
            NetworkHandlers.Add <BloodAndBileEngine.Networking.NetworkMessages.ConditionCheckResponseMessage>(60001, OnAuthentificationResponseReceived);

            ConnectToMatchServer(); // Lancement de la connexion au Match Server.
        }
    }
    void OnDisconnected(int coID)
    {
        // On vérifie si la déconnexion concerne le Master Server (probablement oui).
        int masterServerConnectionID = ClientConnectionsManager.GetConnectionIDFromName("MasterServer");

        if (masterServerConnectionID == -1 || masterServerConnectionID == coID)  // Il faut vérifier s'il est égal à -1 car la méthode dans le ClientConnectionsManager qui pourrait retirer l'ID "MasterServer" a peut être déjà été appelée.
        {
            Debugger.Log("Déconnecté du Master Server ! Retour au menu Login !", UnityEngine.Color.red);
            Client.ChangeState(new LoginState());
        }
    }
 public void OnEntry()
 {
     NetworkHandlers = new BloodAndBileEngine.Networking.HandlersManager();
     InputHandlers   = new InputHandlersManager();
     BloodAndBileEngine.Networking.NetworkSocket.RegisterOnDisconnectionCallback(OnDisconnected);
     InputHandlers.Add("StartMatchmaking", StartMatchmaking);
     if (ClientConnectionsManager.GetConnectionIDFromName("MasterServer") == -1)
     {
         BloodAndBileEngine.Debugger.Log("Pas de connexion à un Master Server ! Retour au LoginState...", UnityEngine.Color.red);
         Client.ChangeState(new LoginState());
     }
 }
 void OnConnectionLost(int coID)
 {
     // Si la connexion vers le Master Server a été perdue avant que l'on recoive les IPs, alors on revient au menu principal.
     if (coID == ClientConnectionsManager.GetConnectionIDFromName("MasterServer") || ClientConnectionsManager.GetConnectionIDFromName("MasterServer") == -1)
     {
         if (IPsReceived == false)
         {
             BloodAndBileEngine.Debugger.Log("ERREUR - Connexion au Master Server perdue avant de recevoir la liste des IPs... retour au menu principal.", UnityEngine.Color.red);
             Client.ChangeState(new MainMenuState());
         }
     }
 }
Beispiel #5
0
    /**
     * <summary> Réponse à l'authentification. </summary>
     */
    void OnAuthentificationResponse(NetworkMessageInfo info, BloodAndBileEngine.Networking.NetworkMessages.ConditionCheckResponseMessage message)
    {
        if (message.Accepted)
        {
            Debugger.Log("Authentification au Master Server acceptée !");
            ClientConnectionsManager.AddConnection("MasterServer", info.ConnectionID);

            // Mise à jour des informations client.

            Client.Username = Username;

            // Transition vers le "MainMenuState".
            Client.ChangeState(new MainMenuState());
        }
        else
        {
            Debugger.Log("Authentification au Master Server refusée ! Raison : " + message.Reason, UnityEngine.Color.red);
            NetworkSocket.Disconnect(info.ConnectionID); // On se déconnecte du master server.
        }
    }
    public void OnEntry()
    {
        NetworkHandlers = new BloodAndBileEngine.Networking.HandlersManager();

        NetworkHandlers.Add <BloodAndBileEngine.Networking.NetworkMessages.IPListMessage>(40000, OnMatchServersListReceived);

        BloodAndBileEngine.Networking.NetworkSocket.RegisterOnDisconnectionCallback(OnConnectionLost);

        int masterServerCoID = ClientConnectionsManager.GetConnectionIDFromName("MasterServer");

        if (masterServerCoID > 0)
        {
            BloodAndBileEngine.Debugger.Log("Début de recherche d'un MatchServer...");
            SendMatchServersListRequest(masterServerCoID);
        }
        else
        {
            BloodAndBileEngine.Debugger.Log("Pas de connexion au Master Server... retour à l'écran Login.", UnityEngine.Color.red);
            Client.ChangeState(new LoginState());
        }
    }