Example #1
0
        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);
        }
Example #2
0
        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);
        }