public IEnumerator LoginGame(string access_token) { //string temp = $"http://api.tianyuonline.cn/api/extendaccount?sid={access_token}&passwd=wuditianyu&types=1&cv=1.0.1&udid={SystemInfo.deviceUniqueIdentifier}&mc=2000"; string temp = string.Format("http://api.tianyuonline.cn/api/extendaccount?sid={0}&passwd=wuditianyu&types=1&cv=1.0.1&udid={1}&mc=2000" , access_token, SystemInfo.deviceUniqueIdentifier); WWW nwww = new WWW(temp); /******拉选服前*********/ yield return(nwww); if (nwww.isDone && string.Empty != nwww.text) { string text = nwww.text; object jsonobj = Jsontext.ReadeData(text); if (jsonobj != null) { Dictionary <string, object> aobj = (Dictionary <string, object>)jsonobj; if (aobj != null) { Debug.Log("1111111"); } else { Debug.Log("22222"); } } } else { Debug.Log("333333"); } }
public void IOSGameGameCenterVerifySuccess(string result) { PrintLog("gamecenterlogincallback:" + result); Dictionary <string, object> dict = (Dictionary <string, object>)Jsontext.ReadeData(result); //string url = HttpUtility.UrlEncode("publicKeyUrl"); //PrintLog($"encode后的url {url}"); //System.Text.StringBuilder stringbuilder = Jsontext.WriteData(dict); //stringbuilder.Append("\0"); //PrintLog($"要发送的json {stringbuilder.ToString()}"); string sigEncode = HttpUtility.UrlEncode((string)dict["signature"]); dict["signature"] = sigEncode; System.Text.StringBuilder sb = Jsontext.WriteData(dict); sb.Append("\0"); // TODO 向游戏服务器发送请求登录消息 [2020/1/18 14:40:41 BingLau] StartCoroutine(LoginGame(sb.ToString())); }
//http请求登陆消息 public IEnumerator Login() { string[] arg = { account.text, passWord.text, }; // { account.text, passWord.text, }; string temp; // = string.Format( url , arg ); if (DataDefine.isOutLine) { temp = DataDefine.LoginOutLineUrl + "?account=" + account.text + "&passwd=" + passWord.text + "&types=" + 1 + "&cv=" + DataDefine.ClientVersion + "&udid=" + SystemInfo.deviceUniqueIdentifier + "&mc=" + DataDefine.mainchannel; } else { temp = DataDefine.LoginUrl + "?account=" + account.text + "&passwd=" + passWord.text + "&types=" + 1 + "&cv=" + DataDefine.ClientVersion + "&udid=" + SystemInfo.deviceUniqueIdentifier + "&mc=" + DataDefine.mainchannel; } nwww = new WWW(temp); yield return(nwww); if (nwww == null || !this.nwww.isDone) { yield return(nwww); } string text = nwww.data; Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text); if (aobj != null) { byte corde = byte.Parse(aobj["ret"].ToString()); string message = aobj["desc"].ToString(); if (aobj.ContainsKey("actime")) { serverMgr.GetInstance().SetCreateAccountTime(aobj["actime"].ToString(), false); } if (corde == 1) { UIPromptBox.Instance.ShowLabel(message); } else { Hide(); Control.HideGUI(this.GetUIKey()); serverMgr.GetInstance().SetMobile(long.Parse(aobj["account"].ToString())); // Dictionary<string, object>[] data = (Dictionary<string, object>[])aobj["host"]; //InitServerList(data); //serverMgr.GetInstance().gamedata.Load(account.value) serverMgr.GetInstance().SetAccount(account.text);//SetAccount(account.text); serverMgr.GetInstance().SetPassword(passWord.text); // Control.ShowGUI(UIPanleID.UI_SelectServer, EnumOpenUIType.DefaultUIOrSecond); StartLandingShuJu.GetInstance().ServerList(); serverMgr.GetInstance().saveData(); } } }
/// <summary> /// 发送ping包 /// </summary> /// <param name="data"></param> public void AsyncSendPing() { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.PING); CWritePacket writePacket = new CWritePacket(NetProtocol.PING); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); m_Client.BeginSend(writePacket.GetPacketByte(), writePacket.GetPacketByte().Length, new AsyncCallback(SendCallback), null); }
public IEnumerator Register() { string[] arg = { account.text, password.text, DataDefine.ClientVersion, SystemInfo.deviceUniqueIdentifier, DataDefine.mainchannel.ToString() }; string temp;// = string.Format( url , arg ); if (DataDefine.isOutLine) { temp = string.Format(DataDefine.RegistOutLineUrl, arg); } else { temp = string.Format(DataDefine.RegistLineUrl, arg); } this.nwww = new WWW(temp); yield return(nwww); if (this.nwww == null || !this.nwww.isDone) { yield return(nwww); } string text = this.nwww.text; Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text); byte corde = byte.Parse(aobj["ret"].ToString()); string message = aobj["desc"].ToString(); print("值" + corde); if (corde == 1) { //UIPromptBox.Instance.ShowLabel(message); Control.ShowGUI(UIPanleID.UIPromptBox, EnumOpenUIType.DefaultUIOrSecond, false, message); } else { // Dictionary<string , object> data = ( Dictionary<string , object> ) aobj [ "data" ]; // Dictionary<string, object>[] serverarr = (Dictionary<string, object>[])aobj["host"]; // InitServerList(serverarr); Control.HideGUI(this.GetUIKey()); serverMgr.GetInstance().SetAccount(account.text); //SetAccount(account.text); serverMgr.GetInstance().SetPassword(password.text); serverMgr.GetInstance().SetMobile(long.Parse(aobj["account"].ToString())); // Control.ShowGUI(GameLibrary.UI_SelectServer); StartLandingShuJu.GetInstance().ServerList(); // serverMgr.GetInstance().saveData(); } }
/// <summary> /// 登录游戏 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputLogin(string account) { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.LOGIN_REQ); packet.Add("account", account); CWritePacket writePacket = new CWritePacket(NetProtocol.LOGIN_REQ); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
/// <summary> /// 参加匹配 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputMatch(int matchType) { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.MATCH_REQ); packet.Add("playerId", GameData.m_CurrentRoleId); packet.Add("matchType", matchType); CWritePacket writePacket = new CWritePacket(NetProtocol.MATCH_REQ); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
//获取服务器列表 public IEnumerator LoadServerlist() { long[] arg = { serverMgr.GetInstance().GetMobile(), 1 }; string temp;// = string.Format( url , arg ); if (DataDefine.isOutLine) { //temp = DataDefine.ServerListOutLineUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString() + "&cv=" + DataDefine.ClientVersion+"&mc="+1002; temp = DataDefine.ServerListOutLineUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString() + "&cv=" + DataDefine.ClientVersion + "&mc=" + 1002; } else { temp = DataDefine.ServerListUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString() + "&cv=" + DataDefine.ClientVersion + "&mc=" + 1002; } this.mWWW = new WWW(temp); yield return(mWWW); if (this.mWWW == null || !this.mWWW.isDone) { yield return(mWWW); } string text = this.mWWW.data; if (this.mWWW.error == null) { //读json串 Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text); int ret = int.Parse(aobj["ret"].ToString()); if (ret == 0) { Dictionary <string, object> servernew = aobj["new"] as Dictionary <string, object>; Dictionary <string, object>[] serverarr = aobj["host"] as Dictionary <string, object>[]; Dictionary <string, object> serverlast = aobj["last"] as Dictionary <string, object>; if (null != serverlast) { GetServedrDate(serverlast); } else { GetServedrDate(servernew); } SetServerList(serverarr); // UISelectServer.Instance.InitServerList(); } } }
/// <summary> /// 准备操作 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputReady() { IDictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.READY); packet.Add("playerId", GameData.m_CurrentRoleId); packet.Add("heroId", GameData.m_HeroId); packet.Add("mobaKey", GameData.m_MobaKey); CWritePacket writePacket = new CWritePacket(NetProtocol.READY); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
public IEnumerator VersionLoad() { long[] arg = { serverMgr.GetInstance().GetMobile(), 1 }; string temp;// = string.Format( url , arg ); if (DataDefine.isOutLine) { temp = DataDefine.outserverip + "version.txt";//DataDefine.ServerListOutLineUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString(); } else { temp = DataDefine.inserverip + "version.txt";//DataDefine.ServerListUrl + "?account=" + serverMgr.GetInstance().GetMobile().ToString() + "&types=" + 2.ToString(); } nWWW = new WWW(temp); yield return(nWWW); if (nWWW == null || !nWWW.isDone) { yield return(nWWW); } string text = nWWW.data; if (nWWW.error == null) { Dictionary <string, object> aobj = (Dictionary <string, object>)Jsontext.ReadeData(text); string serverversion = aobj["version"].ToString(); //string[] items = text.Split('='); if (serverversion.Equals(DataDefine.version)) { // Debug.Log("版本一致"+ items[1]+"==>"+ DataDefine.version); if (UIPromptBox.Instance != null) { UIPromptBox.Instance.Hide(); } } else { //if (UIPromptBox.Instance != null) //{ // UIPromptBox.Instance.ShowLabel("您的版本号与服务器不一致,请更新新包"); //} Control.ShowGUI(UIPanleID.UIPromptBox, EnumOpenUIType.DefaultUIOrSecond, false, "您的版本号与服务器不一致,请更新新包"); // Debug.Log("版本不一致" + items[1] + "==>" + DataDefine.version); } } }
void Send(Dictionary <string, object> newpacket, CWritePacket packet) { System.Text.StringBuilder stringbuilder = Jsontext.WriteData(newpacket); stringbuilder.Append("\0"); string json_s = stringbuilder.ToString(); if (DataDefine.isEFS == 1) { //加密处理 json_s = packet.Compress(json_s, DataDefine.datakey); } packet.WriteString(json_s); // Debug.Log( json_s ); SendPacket(packet, C2SMessageType.Active); }
public void ReadData() { string tempstr = ReadString(); object obj = Jsontext.ReadeData(tempstr); if (obj == null) { return; } data = obj as Dictionary <string, object>; if (data != null) { if (data.ContainsKey("msgid")) { m_nPacketID = data.TryGetUint("msgid"); } } }
public void LoadJsonArr(string jsonString) { object[] json = Jsontext.ReadeData(jsonString) as object[]; for (int i = 0; i < json.Length; i++) { Dictionary <string, object> node = (Dictionary <string, object>)json[i]; long typeId = long.Parse(node["id"].ToString()); if (mDataNodeList == null) { mDataNodeList = new Dictionary <long, T>(); } if (!mDataNodeList.ContainsKey(typeId)) { T dataNode = new T(); // LitJson.JsonMapper.ToObject<T>(strLine,false); dataNode.parseJson(node); mDataNodeList.Add(typeId, dataNode); } } }
public void LoadJson(string jsonString) { Dictionary <string, object> json = (Dictionary <string, object>)Jsontext.ReadeData(jsonString); foreach (string jsonnode in json.Keys) { // Dictionary<string, object> nodelist = (Dictionary<string, object>)json[jsonnode]; long typeId = long.Parse(jsonnode); if (mDataNodeList == null) { mDataNodeList = new Dictionary <long, T>(); } if (!mDataNodeList.ContainsKey(typeId)) { T dataNode = new T(); // LitJson.JsonMapper.ToObject<T>(strLine,false); dataNode.parseJson(json[jsonnode]); mDataNodeList.Add(typeId, dataNode); } } }
public void LoadJson(string jsonString) { Dictionary <string, object> json = (Dictionary <string, object>)Jsontext.ReadeData(jsonString); foreach (string jsonnode in json.Keys) { long typeId = 0; typeId = long.Parse(jsonnode); jsonNode = jsonnode; if (mDataNodeList == null) { mDataNodeList = new Dictionary <long, T>(); } if (!mDataNodeList.ContainsKey(typeId)) { T dataNode = new T(); dataNode.ParseJson(json[jsonnode]); mDataNodeList.Add(typeId, dataNode); } } }
protected void PacketDictAndSend(UInt32 msgID, Dictionary <string, object> newpacket, C2SMessageType c2sType = C2SMessageType.PASVWait) { CWritePacket packet = new CWritePacket(msgID); System.Text.StringBuilder stringbuilder = Jsontext.WriteData(newpacket); stringbuilder.Append("\0"); string json_s = stringbuilder.ToString(); if (DataDefine.isEFS == 1) { //加密处理 json_s = packet.Compress(json_s, DataDefine.datakey); } packet.WriteString(json_s); if (DataDefine.isLogMsgDetail) { Debug.Log("Send msgDetail: " + json_s); } SendPacket(packet, c2sType); }
/// <summary> /// 输入操作 /// </summary> /// <param name="cmd"></param> /// <param name="parameter"></param> public CWritePacket InputCmd(Cmd cmd, string parameter = null) { FrameKeyData frameKeyData = new FrameKeyData(); frameKeyData.m_KeyDataList = new List <KeyData>(); KeyData data = new KeyData(); data.m_RoleId = GameData.m_CurrentRoleId; data.m_Cmd = (int)cmd; data.m_Parameter = parameter; frameKeyData.m_KeyDataList.Add(data); Dictionary <string, object> packet = new Dictionary <string, object>(); packet.Add("msgid", NetProtocol.SYNC_KEY); packet.Add("roleid", GameData.m_CurrentRoleId); packet.Add("mobaKey", GameData.m_MobaKey); packet.Add("keydatalist", frameKeyData.m_KeyDataList); CWritePacket writePacket = new CWritePacket(NetProtocol.SYNC_KEY); StringBuilder builder = Jsontext.WriteData(packet); string json_Str = builder.ToString(); writePacket.WriteString(json_Str); return(writePacket); }
/// <summary> /// 获取排行榜信息 /// </summary> /// <param name="packet"></param> /// <returns></returns> public bool RankListHandle(CReadPacket packet) { Debug.Log("ranklist返回"); Dictionary <string, object> data = packet.data; int resolt = int.Parse(data["ret"].ToString()); if (resolt == 0) { int currentValue = 0; int currentRank = 0; int yesterdayRank = 0; currentRank = int.Parse(data["myRank"].ToString());//自己的当前排名 playerData.GetInstance().playerRankData.rankListType = (RankListType)data["typeid"]; if (data["rInfo"] != null) { object[][] rankInfoList = data["rInfo"] as object[][]; switch ((RankListType)data["typeid"]) { //case RankListType.Fight: // playerData.GetInstance().playerRankData.fightList.Clear(); // break; //case RankListType.StarSum: // playerData.GetInstance().playerRankData.starSumList.Clear(); // break; //case RankListType.DiamondUser: // playerData.GetInstance().playerRankData.diamondUserList.Clear(); // break; //case RankListType.BestFourPersons: // playerData.GetInstance().playerRankData.bestFourPersonsList.Clear(); // break; //case RankListType.Fortune: // playerData.GetInstance().playerRankData.fortuneList.Clear(); // break; //case RankListType.YesterdayRank: // playerData.GetInstance().playerRankData.yesterdayList.Clear(); // break; case RankListType.Level: if (playerData.GetInstance().playerRankData.levelList.Count >= 20) { playerData.GetInstance().playerRankData.levelList.Clear(); } break; case RankListType.RealTimeRank: if (playerData.GetInstance().playerRankData.realTimeRankList.Count >= 20) { playerData.GetInstance().playerRankData.realTimeRankList.Clear(); } break; default: break; } for (int i = 0; i < rankInfoList.Length; i++) { RankListData rankListData = new RankListData(); if (int.Parse(rankInfoList[i][1].ToString()) != 0) { rankListData.currentRank = int.Parse(rankInfoList[i][0].ToString());//当前排名 rankListData.playerId = int.Parse(rankInfoList[i][1].ToString()); rankListData.name = rankInfoList[i][2].ToString(); rankListData.iconId = long.Parse(rankInfoList[i][3].ToString()); rankListData.iconBoxId = long.Parse(rankInfoList[i][4].ToString()); rankListData.rankValue = int.Parse(rankInfoList[i][5].ToString()); //战斗力 rankListData.playerLv = int.Parse(rankInfoList[i][6].ToString()); //角色等级 } if (!string.IsNullOrEmpty(rankInfoList[i][7].ToString())) { string arenas = rankInfoList[i][7].ToString(); object [] aa = Jsontext.ReadeData(arenas) as object[]; for (int j = 0; j < aa.Length; j++) { string[] str = aa[j] as string[]; RankHeroList heroList = new RankHeroList(); heroList.iconId1 = long.Parse(str[0]); heroList.lv = int.Parse(str[1]); heroList.star = int.Parse(str[2]); heroList.iconIdFrame = int.Parse(str[3]); rankListData.arenaHeroList.Add(heroList); } } switch ((RankListType)data["typeid"]) { //case RankListType.Fight: // playerData.GetInstance().playerRankData.fightList.Add(rankListData); // playerData.GetInstance().playerRankData.fight = currentValue; // playerData.GetInstance().playerRankData.fightCurrentRank = currentRank; // playerData.GetInstance().playerRankData.fightYesterdayRank = yesterdayRank; // break; //case RankListType.StarSum: // playerData.GetInstance().playerRankData.starSumList.Add(rankListData); // playerData.GetInstance().playerRankData.startSum = currentValue; // playerData.GetInstance().playerRankData.starttSumCurrentRank = currentRank; // playerData.GetInstance().playerRankData.starttSumYesterday = yesterdayRank; // break; //case RankListType.DiamondUser: // playerData.GetInstance().playerRankData.diamondUserList.Add(rankListData); // break; //case RankListType.BestFourPersons: // playerData.GetInstance().playerRankData.bestFourPersonsList.Add(rankListData); // playerData.GetInstance().playerRankData.bestfourCurrentRank = currentRank; // playerData.GetInstance().playerRankData.bestfourYesterday = yesterdayRank; // break; //case RankListType.Fortune: // playerData.GetInstance().playerRankData.fortuneList.Add(rankListData); // break; //case RankListType.YesterdayRank: // playerData.GetInstance().playerRankData.yesterdayList.Add(rankListData); // playerData.GetInstance().playerRankData.yestterday = currentValue; // playerData.GetInstance().playerRankData.yestterdayCurrentRank = currentRank; // playerData.GetInstance().playerRankData.yestterday_yes = yesterdayRank; // break; case RankListType.Level: playerData.GetInstance().playerRankData.levelList.Add(rankListData); playerData.GetInstance().playerRankData.lv = currentValue; playerData.GetInstance().playerRankData.lvCurrentRank = currentRank; playerData.GetInstance().playerRankData.lvYesterday = yesterdayRank; break; case RankListType.RealTimeRank: playerData.GetInstance().playerRankData.realTimeRankList.Add(rankListData); playerData.GetInstance().playerRankData.realTime = currentValue; playerData.GetInstance().playerRankData.realTimeCurrentRank = currentRank; playerData.GetInstance().playerRankData.realTimeYesterday = yesterdayRank; break; default: break; } } int intCount = 20 / 4; int page = 20 % 4; if (page != 0) { intCount++; } playerData.GetInstance().playerRankData.page = intCount; // RankListManage.GetInstace().GetRankListData((int)playerData.GetInstance().playerRankData.rankListType); } return(true); } else { // Debug.Log(string.Format("返回信息失败:{0}", data["desc"].ToString())); Debug.Log("获取排行榜列表失败"); return(false); } }
public CReadPacket(byte[] bData) : base(0, 0) { if (bData != null) { m_bDataList = bData; m_nPacketLen = (short)(ReadShort()); // m_nPacketID = (ushort)ReadShort(); string tempstr = ReadString(); if (tempstr.Length != m_nPacketLen) { int exit = 0; int npos = tempstr.IndexOf('{'); if (npos == -1) { Debug.Log(tempstr); Debug.Log("json串不全"); m_nPacketID = 0; return; } string subLeft = tempstr; string subRight = tempstr; while (npos != -1) { npos = subLeft.IndexOf('{'); subLeft = subLeft.Substring(npos + 1); if (npos != -1) { exit += 1; } npos = subRight.IndexOf("}"); subRight = subRight.Substring(npos + 1); if (npos != -1) { exit -= 1; } } if (exit != 0) { // Debug.LogError("json串不全"); m_nPacketID = 0; return; } } if (tempstr == "" || tempstr == "\n" || tempstr == "\r\n" || tempstr == "\r") { Debug.LogError("消息为空"); return; } //JsonReader reader = new JsonReader(tempstr); object obj = Jsontext.ReadeData(tempstr); data = obj as Dictionary <string, object>; m_nPacketID = ushort.Parse(data["msgid"].ToString()); // m = uint.Parse(data["msgid"].ToString()); // if(DataDefine.isLogMsgDetail && DataDefine.filterWalkMsg(mID)) // Debug.Log("Recieve msgDetail: " + tempstr); } }