コード例 #1
0
        private void OnGetScore(byte[] data, LeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequest)
        {
            string scoreData = System.Text.Encoding.UTF8.GetString(data);

            bool cancelRequest = false;

            if (asyncRequest != null)
            {
                asyncRequest.CancelHandler = delegate(HMAsyncRequest request)
                {
                    cancelRequest = true;
                };
            }
            int playerScoreIndex = -1;
            List <LeaderboardsModel.LeaderboardScore> leaders = PassLeaderBoardInfo(scoreData, ref playerScoreIndex);

            if (leaders.Count > 0)
            {
                if (cancelRequest == false)
                {
                    OkCompletionHandler(completionHandler, leaders.ToArray(), playerScoreIndex, asyncRequest);
                }
                else
                {
                    FailCompletionHandler(completionHandler, asyncRequest);
                }
            }
            else
            {
                FailCompletionHandler(completionHandler, asyncRequest);
            }
        }
コード例 #2
0
        public IEnumerator GetScoreRoutine(string url, LeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequestd, Action <byte[], LeaderboardsModel.GetScoresCompletionHandler, string, HMAsyncRequest> callback)
        {
            using (var www = new WWW(url))
            {
                yield return(www);

                callback.Invoke(www.bytes, completionHandler, leaderboadID, asyncRequestd);
            }
        }
コード例 #3
0
        public static void GetScore(string url, LeaderboardsModel.GetScoresCompletionHandler completionHandler, string leaderboadID, HMAsyncRequest asyncRequestd, Action <byte[], LeaderboardsModel.GetScoresCompletionHandler, string, HMAsyncRequest> callback)
        {
            if (_instance == null)
            {
                _instance = new GameObject("temp").AddComponent <GetCustomScoreBehaviour>();
            }

            _instance.StartCoroutine(_instance.GetScoreRoutine(url, completionHandler, leaderboadID, asyncRequestd, callback));
        }
コード例 #4
0
 private void FailCompletionHandler(LeaderboardsModel.GetScoresCompletionHandler handler, HMAsyncRequest request)
 {
     if (request != null)
     {
         if (handler != null)
         {
             handler(LeaderboardsModel.GetScoresResult.Failed, new LeaderboardsModel.LeaderboardScore[0], 0);
         }
     }
 }
コード例 #5
0
 private void OkCompletionHandler(LeaderboardsModel.GetScoresCompletionHandler handler, LeaderboardsModel.LeaderboardScore[] leaders, int playerScoreIndex, HMAsyncRequest request)
 {
     if (request != null)
     {
         if (handler != null)
         {
             handler(LeaderboardsModel.GetScoresResult.OK, leaders.ToArray(), playerScoreIndex);
         }
     }
 }
コード例 #6
0
        public override void GetScores(string leaderboadId, int count, int fromRank, LeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, LeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);

                switch (scope)
                {
                case LeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId + "&steamId=" + SteamUser.GetSteamID().m_SteamID.ToString(), completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case LeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                base.GetScores(leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler);
            }
        }
コード例 #7
0
        public override void GetScores(string leaderboadId, int count, int fromRank, LeaderboardsModel.ScoresScope scope, string referencePlayerId, HMAsyncRequest asyncRequest, LeaderboardsModel.GetScoresCompletionHandler completionHandler)
        {
            var leaderBoardsModel = PersistentSingleton <LeaderboardsModel> .instance;

            if (leaderboadId.Contains("∎"))
            {
                leaderboadId = FormatLeaderBoard(leaderboadId);

                switch (scope)
                {
                case LeaderboardsModel.ScoresScope.AroundPlayer:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId + "&steamId=" + Global.playerId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;

                case LeaderboardsModel.ScoresScope.Global:
                    GetCustomScoreBehaviour.GetScore("http://scoresaber.com/getscores.php?id=" + leaderboadId, completionHandler, leaderboadId, asyncRequest, OnGetScore);
                    break;
                }
            }
            else
            {
                try
                {
                    CallNonStaticFunctionDynamically("OculusPlatformLeaderboardsHandler", "Assembly-CSharp", "GetScores",
                                                     new Type[] { typeof(string), typeof(int), typeof(int), typeof(LeaderboardsModel.ScoresScope),
                                                                  typeof(string), typeof(HMAsyncRequest), typeof(LeaderboardsModel.GetScoresCompletionHandler) },
                                                     new object[] { leaderboadId, count, fromRank, scope, referencePlayerId, asyncRequest, completionHandler });
                }
                catch (Exception ex)
                {
                    Global.Log(ex.ToString());
                }
            }
        }