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"] = "匹配失败"; } }
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"] = "验证失败"; } }
KeyValueProtocol SendToken() { var send = new KeyValueProtocol(); send["username"] = username; send["loginToken"] = loginToken; return(send); }
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); }
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"] = "准备失败"; } }
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"] = "验证失败"; } }
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); }
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); }