public static PlayerStatus fgo_followerlist(PlayerStatus ps) { var table = new Hashtable { { "ac", "action" }, { "key", "followerlist" }, { "deviceid", FgoMain.get_device_id() }, { "os", FgoMain.get_os() }, { "ptype", FgoMain.get_ptype() }, { "usk", FgoMain.get_usk(ps.uid) }, { "umk", "" }, { "rgsid", 1001 }, { "rkchannel", FgoMain.get_rkchannel() }, { "userId", ps.uid }, { "appVer", FgoMain.get_game_version() }, { "dateVer", FgoMain.get_date_ver() }, { "lastAccessTime", FgoMain.get_timestamp_fgo() }, { "try", "" }, { "developmentAuthCode", FgoMain.get_developmentAuthCode() }, { "refresh", 1 }, { "userAgent", 1 }, { "dataVer", FgoMain.get_data_ver() } }; var response = JObject.Parse(FgoMain.convert_response(NetworkAPI.CreatePostHttpResponse(FgoMain.get_main_address("ac"), table))); var resCode = FgoMain.parse_rescode(response); var usk = response["response"][0]["usk"].ToString(); FgoMain.calc_usk(ps.uid, usk); if (resCode != "00") { ps.uid = response["response"][0]["fail"].ToString(); return(ps); } var follower = new Dictionary <string, FollowerServant[]>(); foreach (var jToken in (JArray)response["cache"]["updated"]["userFollower"][0]["followerInfo"]) { var jt = (JObject)jToken; var ja = (JArray)jt["userSvtLeaderHash"]; var fs = new FollowerServant[ja.Count]; for (var i = 0; i < fs.Length; i++) { fs[i].equipId = ja[i]["equipTarget1"]["svtId"].ToString(); fs[i].equipMax = int.Parse(ja[i]["equipTarget1"]["limitCount"].ToString()) == 4 ? true : false; } follower.Add(jt["userId"].ToString(), fs); } ps.followerList = follower; return(ps); }
public static PlayerStatus fgo_home(PlayerStatus ps) { var table = new Hashtable { { "ac", "home" }, { "deviceid", FgoMain.get_device_id() }, { "os", FgoMain.get_os() }, { "ptype", FgoMain.get_ptype() }, { "usk", FgoMain.get_usk(ps.uid) }, { "umk", "" }, { "rgsid", 1001 }, { "rkchannel", FgoMain.get_rkchannel() }, { "userId", ps.uid }, { "appVer", FgoMain.get_game_version() }, { "dateVer", FgoMain.get_date_ver() }, { "lastAccessTime", FgoMain.get_timestamp_fgo() }, { "try", "" }, { "developmentAuthCode", FgoMain.get_developmentAuthCode() }, { "dataVer", FgoMain.get_data_ver() } }; var response = JObject.Parse(FgoMain.convert_response(NetworkAPI.CreatePostHttpResponse(FgoMain.get_main_address("ac"), table))); var resCode = FgoMain.parse_rescode(response); var usk = ""; if (response["response"][0]["usk"] != null) { usk = response["response"][0]["usk"].ToString(); FgoMain.calc_usk(ps.uid, usk); } if (resCode != "00") { ps.uid = response["response"][0]["fail"].ToString(); return(ps); } ps.uid = response["cache"]["replaced"]["userGame"][0]["userId"].ToString(); ps.actRecoverAt = int.Parse(response["cache"]["replaced"]["userGame"][0]["actRecoverAt"].ToString()); ps.actMax = int.Parse(response["cache"]["replaced"]["userGame"][0]["actMax"].ToString()); ps.lv = int.Parse(response["cache"]["replaced"]["userGame"][0]["lv"].ToString()); ps.exp = int.Parse(response["cache"]["replaced"]["userGame"][0]["exp"].ToString()); ps.qp = int.Parse(response["cache"]["replaced"]["userGame"][0]["qp"].ToString()); ps.costMax = int.Parse(response["cache"]["replaced"]["userGame"][0]["costMax"].ToString()); ps.freeStone = int.Parse(response["cache"]["replaced"]["userGame"][0]["freeStone"].ToString()); ps.chargeStone = int.Parse(response["cache"]["replaced"]["userGame"][0]["chargeStone"].ToString()); var item = new Dictionary <string, int>(); foreach (JObject jt in (JArray)response["cache"]["replaced"]["userItem"]) { if (jt["num"].ToString() == "0") { continue; } item.Add(jt["itemId"].ToString(), int.Parse(jt["num"].ToString())); } ps.itemList = item; var info = new Dictionary <string, string>(); var follower = new Dictionary <string, FollowerServant[]>(); foreach (JObject jt in (JArray)response["cache"]["updated"]["userFollower"][0]["followerInfo"]) { var ja = (JArray)jt["userSvtLeaderHash"]; var fs = new FollowerServant[ja.Count]; for (var i = 0; i < fs.Length; i++) { fs[i].equipId = ja[i]["equipTarget1"]["svtId"].ToString(); fs[i].equipMax = int.Parse(ja[i]["equipTarget1"]["limitCount"].ToString()) == 4 ? true : false; } follower.Add(jt["userId"].ToString(), fs); info.Add(jt["userName"].ToString(), jt["userId"].ToString()); } ps.followerList = follower; ps.followerInfo = info; var player = new Dictionary <string, PlayerServant>(); foreach (JObject jt in (JArray)response["cache"]["replaced"]["userSvt"]) { var ps2 = new PlayerServant(); ps2.isLock = jt["isLock"].ToString() == "1" ? true : false; ps2.svtId = jt["svtId"].ToString(); player.Add(jt["id"].ToString(), ps2); } ps.servantList = player; return(ps); }