예제 #1
0
    /// <summary>
    /// Décode le message ClientServerDetail
    /// </summary>
    /// <param name="message">Message a décoder</param>
    /// <returns>Instance de l'endpoint</returns>
    public static GameNetworkEndpoint DecodeClientServerDetail(string message)
    {
        // On décode la chaine

        string[] data = GameNetworkParser.Parse(message);

        if (data == null || data.Length != 3)
        {
            return(null);
        }

        // Décodage

        int port;

        if (!int.TryParse(data[2], out port))
        {
            return(null);
        }

        GameNetworkEndpoint endpoint = new GameNetworkEndpoint(data[1], port);

        // On renvoi l'endpoint

        return(endpoint);
    }
예제 #2
0
    /// <summary>
    /// Récupère le type du message
    /// </summary>
    /// <param name="message">Message a décoder</param>
    /// <returns>Type du message</returns>
    public static GameMessageTypes FindType(string message)
    {
        // On décode la chaine

        string[] data = GameNetworkParser.Parse(message);

        if (data == null)
        {
            return(GameMessageTypes.Unknow);
        }

        // On détermine le type

        int type;

        if (!int.TryParse(data[0], out type))
        {
            return(GameMessageTypes.Unknow);
        }

        // On filtre le type

        if (type == 1)
        {
            return(GameMessageTypes.ClientServerDetail);
        }
        else if (type == 2)
        {
            return(GameMessageTypes.SendObjectInMailbox);
        }

        // Message inconnu

        return(GameMessageTypes.Unknow);
    }
예제 #3
0
    /// <summary>
    /// Décode le message SendObjectInMailbox
    /// </summary>
    /// <param name="message">Message a décoder</param>
    /// <returns>Objet en transit</returns>
    public static MailboxItems DecodeSendObjectInMailbox(string message)
    {
        // On décode la chaine

        string[] data = GameNetworkParser.Parse(message);

        if (data == null || data.Length != 2)
        {
            return(MailboxItems.None);
        }

        // Décodage

        int itemId;

        if (!int.TryParse(data[1], out itemId))
        {
            return(MailboxItems.None);
        }

        // On renvoi l'item

        if (itemId == 1)
        {
            return(MailboxItems.Menu);
        }
        else if (itemId == 2)
        {
            return(MailboxItems.Screeen);
        }
        else if (itemId == 3)
        {
            return(MailboxItems.Key1);
        }
        else if (itemId == 4)
        {
            return(MailboxItems.UsbKey);
        }
        else if (itemId == 5)
        {
            return(MailboxItems.Key2);
        }
        else if (itemId == 6)
        {
            return(MailboxItems.DoorHandle);
        }

        return(MailboxItems.None);
    }