Beispiel #1
0
    public static ReturnObject getSave()
    {
        string url         = "https://byteme.online/api/save/";
        bool   result      = false;
        string result_text = "";

        UnityWebRequest request = UnityWebRequest.Get(url);

        request.SetRequestHeader("Authorization", string.Concat("Token ", token));
        request.SetRequestHeader("Content-Type", "application/json");
        request.SetRequestHeader("topsecret", "Mcjdan,dryd.ugjtgo.oekrpat!");


        request.Send();

        int limit   = 3000;
        int counter = 0;

        while ((!request.isDone || !request.downloadHandler.isDone) && counter != limit)
        {
            //Keep looping until the request finishes or errors
            System.Threading.Thread.Sleep(1);
            counter++;
        }

        print(limit + " " + counter);
        if (request.isError || counter == limit)
        {
            return(new ReturnObject(false, "Could not connect to server"));
        }

        if (request.responseCode == 200)
        {
            string json = request.downloadHandler.text;
            print(json);

            JSONObject obj   = new JSONObject(json);
            long       count = obj.GetField("count").i;

            if (count == 1)
            {
                JSONObject saveData = obj.GetField("results");
                print(saveData [0].ToString());
                JSONPlayer jsonPlayer = JsonUtility.FromJson <JSONPlayer> (saveData[0].ToString());
                jsonPlayer.setPlayerStats(FindObjectOfType(typeof(Player)) as Player);

                string   formatted_time = jsonPlayer.time;
                string[] splitted       = formatted_time.Split(':');
                int      hours          = int.Parse(splitted [0]) * 3600;
                int      minutes        = int.Parse(splitted [1]) * 60;
                int      seconds        = int.Parse(splitted [2]);

                time   = hours + minutes + seconds;
                result = true;
            }
            else
            {
                Player player = FindObjectOfType(typeof(Player)) as Player;
                player.SetHealth(Player.defaultHealth);
                player.SetDamage(Player.defaultDamage);
                player.SetSpeed(Player.defaultSpeed);
                player.SetDefense(Player.defaultDefense);
                player.SetNextLevel(1);
                player.SetKillCounter(0);
                result = true;
            }
        }
        else
        {
            print(request.responseCode);
            result_text = request.responseCode + ": could not connect to server";
            result      = false;
        }

        return(new ReturnObject(result, result_text));
    }