public void InitPlayerRanksScreen(List <PlayerReplayModel> playerReplays, PlayerReplayModel currentPlayerReplay) { foreach (Transform playerRow in PlayerRanksScreen.transform.Find("Players")) { Destroy(playerRow.gameObject); } playerReplays.Add(currentPlayerReplay); playerReplays.Sort((x, y) => y.ReplayTime.CompareTo(x.ReplayTime)); for (int i = 0; i < playerReplays.Count; i++) { PlayerRowController playerRow = (PlayerRowController)Instantiate(PlayerRow); playerRow.SetPlayerRow((i + 1) + ". " + playerReplays[i].UserName, GetTimeText(playerReplays[i].ReplayTime)); if (currentPlayerReplay == playerReplays[i]) { playerRow.MarkRowAsPlayer(); } playerRow.transform.SetParent(PlayerRanksScreen.transform.Find("Players"), false); } WaitScreen.SetActive(false); PlayerRanksScreen.SetActive(true); }
//SELECT Users.UserName, Levels.LevelName, ReplayTime, ReplayData FROM Replays //INNER JOIN Users ON Users.Id = Replays.UserId //INNER JOIN Levels ON Levels.Id = Replays.LevelId //WHERE Levels.LevelName = 'test' ORDER BY ReplayTime ASC LIMIT 26; public IEnumerator GetPlayerReplaysServer(string levelName, int numOfReplays, Action <List <PlayerReplayModel> > action) { string hash = Md5Sum(levelName + secretKey); List <PlayerReplayModel> replays = new List <PlayerReplayModel>(); WWW GetReplaysPost = new WWW(GetReplaysUrl + "levelName=" + WWW.EscapeURL(levelName) + "&hash=" + hash + "&numOfReplays=" + numOfReplays); Debug.Log(GetReplaysPost.url); yield return(GetReplaysPost); if (GetReplaysPost.error == null) { Debug.Log(GetReplaysPost.text); foreach (JSONNode replay in JSON.Parse(GetReplaysPost.text)) { string playerReplayJson = replay.ToString().Replace("\\", String.Empty); playerReplayJson = playerReplayJson.ToString().Replace("\"[{", "[{"); playerReplayJson = playerReplayJson.ToString().Replace("}]\"", "}]"); PlayerReplayModel newPlayerReplayModel = JsonUtility.FromJson <PlayerReplayModel> (playerReplayJson); replays.Add(newPlayerReplayModel); } action(replays); } else { replays = new List <PlayerReplayModel>(); action(replays); } }
public void StartRecording() { _playerPlayback = new PlayerReplayModel(); _timeStarted = Time.time; _timePassed = 0.0f; _recording = true; AddState(_timePassed); }
void PlayerCaught() { if (_gameOn) { _gameOn = false; Level.SetSectionCreator(Bug.Bug); PlayerReplayModel currentReplay = Player.PlayerCompleted(_levelName, GrappleUI.Timer); GrappleUI.InitPlayerRanksScreen(_replays, currentReplay); GrappleUI.StopTimer(); Invoke("ShowEndScreen", 2.0f); } }
public PlayerReplayModel DoneRecording(string levelName, float replayTime) { AddState(_timePassed); _recording = false; PlayerReplayModel playerReplayModel = new PlayerReplayModel(PlayerPrefs.GetString(Constants.USERNAME_KEY), levelName, replayTime, _playerPlayback.ReplayData); PlayerReplay.Instance.StartCoroutine(PlayerReplay.SavePlayerPlayback(playerReplayModel, (Success) => { // placeholder if needed })); return(playerReplayModel); }
IEnumerator ReleaseGhosts() { while (true) { GhostPlaybackController ghostPlayback = (GhostPlaybackController)Instantiate(GhostPlayback); ghostPlayback.transform.SetParent(GhostHolder.transform); ghostPlayback.SetPlayerReplayModel(_replays[0]); _ghostPlaybacks.Add(ghostPlayback); ghostPlayback.StartPlayGhostPlayback(); PlayerReplayModel tempPlayerReplayModel = new PlayerReplayModel(_replays[0].UserName, _replays[0].LevelName, _replays[0].ReplayTime, _replays[0].ReplayData); _replays.RemoveAt(0); _replays.Add(tempPlayerReplayModel); yield return(new WaitForSeconds(_ghostReleaseInterval)); } }
public IEnumerator AddReplay(PlayerReplayModel playerReplay, Action <bool> action) { string hash = Md5Sum(playerReplay.UserName + secretKey); var encoding = new System.Text.UTF8Encoding(); string playerReplayJson = JsonUtility.ToJson(playerReplay); JSONNode replayJsonNode = JSON.Parse(playerReplayJson); //byte[] postData = encoding.GetBytes(replayJsonNode["ReplayData"].ToString()); UnityWebRequest www = UnityWebRequest.Post(AddReplayURL + "userName="******"&hash=" + hash + "&levelName=" + playerReplay.LevelName + "&replayTime=" + playerReplay.ReplayTime, replayJsonNode["ReplayData"].ToString()); //WWW ReplayPost = new WWW(AddReplayURL + "userName="******"&hash=" + hash + "&levelName=" + playerReplay.LevelName + "&replayTime=" + playerReplay.ReplayTime, postData); yield return(www.SendWebRequest()); if (www.error == null) { action(true); } else { action(false); } }
void Awake() { _player = transform.parent.GetComponent <PlayerController>(); _playerPlayback = new PlayerReplayModel(); }
public void SetPlayerReplayModel(PlayerReplayModel playerReplayModel) { _playerReplayModel = playerReplayModel; _ghostPlayer.Username.text = _playerReplayModel.UserName; }