示例#1
0
    public async void Login()
    {
        var send = new KeyValueProtocol();

        send["username"] = Input("username").text;

        if (Input("password").text == PlayerPrefs.GetString("lastLoginToken"))
        {
            send["loginToken"] = Input("password").text;
            send["cmd"]        = "loginByToken";
        }
        else
        {
            send["password"] = StringTool.MD5(Input("password").text);
            send["cmd"]      = "login";
        }
        var receive = await DataHttpClient.PostAsync(DataServerUrl, send);

        if (receive["status"] == "成功")
        {
            PlayerPrefs.SetString("lastUsername", receive["username"]);
            PlayerPrefs.SetString("lastLoginToken", receive["loginToken"]);
            username   = send["username"];
            loginToken = receive["loginToken"];
            UnityEngine.SceneManagement.SceneManager.LoadScene("Main");
        }
        else
        {
            IDGUI.Log(receive["info"]);
            Input("username").text = "";
            Input("password").text = "";
        }
    }
 private void HandleMatchFight(KeyValueProtocol receive, KeyValueProtocol send)
 {
     if (CheckToken(receive))
     {
         string username = receive["username"];
         if (!clothes.ContainsKey(username))
         {
             send["status"] = "未创建角色";
         }
         else
         {
             FightServer server = GetWaitServer();
             if (server.fightRoom == null)
             {
                 server.fightRoom      = new FightRoom();
                 server.fightRoom.ip   = server.IP;
                 server.fightRoom.port = server.Port.ToString();
             }
             PlayerInfo pi = new PlayerInfo();
             pi.isReady   = false;
             pi.username  = username;
             pi.character = clothes[username];
             server.fightRoom.AddPlayer(pi);
             if (server.fightRoom.playerInfos.Count == 1)
             {
                 server.fightRoom.isFull = "true";
             }
             send["status"] = "成功";
         }
     }
     else
     {
         send["status"] = "匹配失败";
     }
 }
示例#3
0
    public void FreshCharacter(Character character, GameObject pos)
    {
        var renderer = pos.GetComponentInChildren <PeopleRenderer>();

        if (renderer == null)
        {
            var info = new KeyValueProtocol(character.info);
            renderer = Instantiate(posePeopleRefap, transform).GetComponent <PeopleRenderer>();
            renderer.clothingPath.Clear();
            renderer.clothingPath.Add("BodyMan");
            renderer.clothingPath.Add(ClothingPath(info, "Top"));
            renderer.clothingPath.Add(ClothingPath(info, "Bottom"));
            renderer.clothingPath.Add(ClothingPath(info, "Shoes"));
            renderer.transform.SetParent(pos.transform);
            renderer.transform.localPosition = Vector3.zero;
        }
        else
        {
            //renderer.clothingPath.Clear();
            //renderer.clothingPath.Add("BodyMan");
            //renderer.clothingPath.Add(ClothingPath(info, "Top"));
            //renderer.clothingPath.Add(ClothingPath(info, "Bottom"));
            //renderer.clothingPath.Add(ClothingPath(info, "Shoes"));
            //renderer.FreshMesh();
        }
    }
        private void HandleCreateCharacter(KeyValueProtocol receive, KeyValueProtocol send)
        {
            if (CheckToken(receive))
            {
                string username = receive["username"];
                if (clothes.ContainsKey(username))
                {
                    send["status"] = "创建失败,角色已存在";
                }
                else
                {
                    Character character = new Character();
                    character.Id = users.Count;
                    KeyValueProtocol cloth = new KeyValueProtocol();
                    cloth["Top"]    = "1";
                    cloth["Bottom"] = "1";
                    cloth["Shoes"]  = "1";
                    character.info  = cloth.GetString();

                    clothes[username] = character;

                    send["status"] = "成功";
                }
            }
            else
            {
                send["status"] = "验证失败";
            }
        }
示例#5
0
    KeyValueProtocol SendToken()
    {
        var send = new KeyValueProtocol();

        send["username"]   = username;
        send["loginToken"] = loginToken;
        return(send);
    }
示例#6
0
    public async void FastLogin()
    {
        if (PlayerPrefs.HasKey("last_username") && PlayerPrefs.HasKey("last_token"))
        {
        }
        var send = new KeyValueProtocol();

        send["cmd"] = "fastRegister";
        var receive = await DataHttpClient.PostAsync(DataServerUrl, send);
    }
示例#7
0
 public bool Success(KeyValueProtocol receive)
 {
     if (receive["status"] == "成功")
     {
         return(true);
     }
     else
     {
         IDGUI.Log(receive["info"]);
         return(false);
     }
 }
        private void HandleLoginByTokin(KeyValueProtocol receive, KeyValueProtocol send)
        {
            string username   = receive["username"];
            string loginToken = receive["loginToken"];

            if (users.ContainsKey(username) && users[username] == loginToken)
            {
                send["username"]   = username;
                send["loginToken"] = loginToken;
                send["status"]     = "成功";
            }
            else
            {
                send["status"] = "用户不存在";
            }
        }
 private void HandleReadFight(KeyValueProtocol receive, KeyValueProtocol send)
 {
     if (CheckToken(receive))
     {
         string      username = receive["username"];
         FightServer server   = GetServerByUserName(username);
         for (int i = 0; i < server.fightRoom.playerInfos.Count; i++)
         {
             server.fightRoom.playerInfos[i].isReady = true;
         }
         send["status"] = "成功";
     }
     else
     {
         send["status"] = "准备失败";
     }
 }
示例#10
0
    public async void Register()
    {
        var send = new KeyValueProtocol();

        send["username"] = Input("username").text;
        send["password"] = StringTool.MD5(Input("password").text);
        send["cmd"]      = "register";
        var receive = await DataHttpClient.PostAsync(DataServerUrl, send);

        if (receive["status"] == "成功")
        {
            Login();
        }
        else
        {
            IDGUI.Log(receive["info"]);
            Input("username").text = "";
            Input("password").text = "";
        }
    }
 private void HandleGetFightRoom(KeyValueProtocol receive, KeyValueProtocol send)
 {
     if (CheckToken(receive))
     {
         string      username = receive["username"];
         FightServer server   = GetServerByUserName(username);
         if (server != null)
         {
             send["fightRoom"] = JsonConvert.SerializeObject(server.fightRoom);
             send["status"]    = "成功";
         }
         else
         {
             send["status"] = "准备失败";
         }
     }
     else
     {
         send["status"] = "准备失败";
     }
 }
        private bool CheckToken(KeyValueProtocol receive)
        {
            string username   = receive["username"];
            string loginToken = receive["loginToken"];
            string outToken;

            if (users.TryGetValue(username, out outToken))
            {
                if (outToken.Equals(loginToken))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
        private void HandleGetCharacter(KeyValueProtocol receive, KeyValueProtocol send)
        {
            if (CheckToken(receive))
            {
                string usename = receive["username"];

                if (clothes.ContainsKey(usename))
                {
                    send["characters_count"] = "1";
                    send["character_info0"]  = clothes[usename].info;
                    send["character_id0"]    = clothes[usename].Id.ToString();
                    send["status"]           = "成功";
                }
                else
                {
                    send["status"] = "验证失败";
                }
            }
            else
            {
                send["status"] = "验证失败";
            }
        }
示例#14
0
    public async void Fresh()
    {
        character = await GameUser.user.GetCharacter();

        if (character != null)
        {
            var info = new KeyValueProtocol(character.info);
            if (characterView == null)
            {
                characterView = Instantiate(posePeopleRefap, transform).GetComponent <PeopleRenderer>();
                characterView.transform.localPosition = Vector3.zero;
                characterView.clothingPath.Clear();
                characterView.clothingPath.Add("BodyMan");
                characterView.clothingPath.Add(ClothingPath(info, "Top"));
                characterView.clothingPath.Add(ClothingPath(info, "Bottom"));
                characterView.clothingPath.Add(ClothingPath(info, "Shoes"));
            }
            else
            {
                characterView.clothingPath.Clear();
                characterView.clothingPath.Add("BodyMan");
                characterView.clothingPath.Add(ClothingPath(info, "Top"));
                characterView.clothingPath.Add(ClothingPath(info, "Bottom"));
                characterView.clothingPath.Add(ClothingPath(info, "Shoes"));
                characterView.FreshMesh();
            }
            playerGroup.SetActiveId(1);
        }
        else
        {
            if (characterView != null)
            {
                Destroy(characterView.gameObject);
            }
            playerGroup.SetActiveId(0);
        }
    }
        public override KeyValueProtocol ParseReceive(KeyValueProtocol receive)
        {
            var send = new KeyValueProtocol();

            Console.WriteLine("接收 " + receive.GetString());
            switch (receive["cmd"])
            {
            case "startGame":
                Data((db) =>
                {
                    var server       = GetServer();
                    server.fightRoom = JsonConvert.DeserializeObject <FightRoom>(receive["fightRoom"]);
                    send["ip"]       = server.ip;
                    send["port"]     = server.port;
                }
                     );
                send["status"] = "成功";
                break;

            default:
                break;
            }
            return(send);
        }
示例#16
0
    public string ClothingPath(KeyValueProtocol receive, string clothing)
    {
        var id = int.Parse(receive[clothing]) % 3 + 1;

        return(clothing + id);
    }
        public override KeyValueProtocol ParseReceive(KeyValueProtocol receive)
        {
            var send = new KeyValueProtocol();

            Console.WriteLine("接收 " + receive.GetString());
            string cmd = receive["cmd"];

            switch (cmd)
            {
            case "register":
                string username = receive["username"];
                string pwd      = receive["password"];
                if (string.IsNullOrEmpty(username) || string.IsNullOrEmpty(pwd))
                {
                    send["status"] = "用户名或者密码为空";
                }
                else
                {
                    if (users.ContainsKey(username))
                    {
                        send["status"] = "用户名已被注册";
                    }
                    else
                    {
                        users[username] = pwd;
                        send["status"]  = "成功";
                    }
                }
                break;

            case "login":
                HandleLogin(receive, send);
                break;

            case "loginByToken":
                HandleLoginByTokin(receive, send);
                break;

            case "createCharacter":
                HandleCreateCharacter(receive, send);
                break;

            case "getCharacter":
                HandleGetCharacter(receive, send);
                break;

            case "matching":
                HandleMatchFight(receive, send);
                break;

            case "getFightRoom":
                HandleGetFightRoom(receive, send);
                break;

            case "switchReady":
                HandleReadFight(receive, send);
                break;

            default:
                Console.WriteLine("not handle command : " + cmd);
                break;
            }
            return(send);
        }