public static PlayerOperationData GetDataFromJson(string json) { PlayerOperationData data = new PlayerOperationData(); JsonData jsonData = JsonMapper.ToObject(json); data.clickAccuracy = float.Parse(jsonData.TryGetString("clickAccuracy")); data.clickScore = int.Parse(jsonData.TryGetString("clickScore")); data.clickNumber = int.Parse(jsonData.TryGetString("clickNumber")); data.clickAccuracy = int.Parse(jsonData.TryGetString("rightNumber")); data.wrongNumber = int.Parse(jsonData.TryGetString("wrongNumber")); data.wholeScore = int.Parse(jsonData.TryGetString("wholeScore")); JsonData readingData = jsonData["readingData"]; for (int i = 0; i < readingData.Count; i++) { data.m_ReadingData.Add(PlayerReadingData.GetReadingDataFromJsonData(readingData[i])); } return(data); }
public void GameFinish() { m_Status = GameStatus.Finish; AudioController.Play("applause"); if (m_WrongNum == 0) { AudioController.Play("combo_perfect"); } if (m_Life > 0) { AnalysisManager.Instance.OnEvent("100002", null, StaticData.LevelID.ToString(), "完成游戏"); AnalysisManager.Instance.OnEvent("100001", null, StaticData.LevelID.ToString(), m_Life.ToString()); AnalysisManager.Instance.OnLevelCompleted(StaticData.LevelID.ToString()); } else { AnalysisManager.Instance.OnEvent("100002", null, StaticData.LevelID.ToString(), "完成游戏"); AnalysisManager.Instance.OnEvent("100001", null, StaticData.LevelID.ToString(), "空血通关"); AnalysisManager.Instance.OnLevelFailed(StaticData.LevelID.ToString(), "没血通关"); } // 记录成绩 SelfPlayerLevelData.TempRankIncrement = SelfPlayerLevelData.CurRank; Debug.LogWarning(" 记录成绩 = " + SelfPlayerLevelData.TempRankIncrement); Debug.Log("<======记录舞蹈数据 boss战舞蹈数据为空 ======>"); // 打开UI if (CorePlayData.BossLife > 0) { m_ProcessData = null; SelfPlayerRoleTitleData.Instance.UpdateRoleTitleCount(50002); } else { SelfPlayerRoleTitleData.Instance.UpdateRoleTitleCount(50001); PlayerOperationData operData = new PlayerOperationData(); operData.wholeScore = m_Score; operData.clickAccuracy = (float)m_CorrectNum / m_AllWordNum; operData.clickNumber = m_AllWordNum; operData.clickScore = m_Score - (int)(m_SumVoiceScore * CorePlaySettings.Instance.m_VoiceRightPoint); operData.wrongNumber = m_WrongNum; operData.rightNumber = m_CorrectNum; operData.m_ReadingData = CorePlayData.PlayerReadingData; //临时测试上传操作过程数据 m_ProcessData = operData.GetJson(); } SaveDataUtils.Save <SelfPlayerRoleTitleData>(); DancingWordAPI.Instance.UpDateServerRoleTitleInfo(SelfPlayerRoleTitleData.RoleTitleList); SaveResultToLocal(m_Life); int grade = SetLevel.setLevel(SelfPlayerLevelData.CurAccuracy); SelfPlayerData.Instance.AddExpAndSaveToLocal(grade); // 关录音 XunFeiSRManager.Instance.StopListen(); MicManager.Instance.StopRecord(); LoginRpcProxy.getInstance().SaveLevelVoices(MicManager.Instance.voiceDic); PageManager.Instance.CurrentPage.GetComponent <CorePlayPage>().HidePauseButton(); if (CorePlayData.BossLife > 0) { PageManager.Instance.CurrentPage.GetNode <WinNode>().Open(); } else { HttpHandler.UploadScore(ServerDataCallback, true); m_AlreadyRuning = false; LoadStage(); } }
void ServerDataCallback() { OnReceive_ScoreData(); if (!m_AlreadyRuning) { StopCoroutine(LoadStageData()); m_AlreadyRuning = true; //从服务器获取的真实数据 int songMax = m_SongMaxScoreInfo.MaxScore; int clickMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.ClickScorePercent); int voiceMax = (int)(m_SongMaxScoreInfo.MaxScore * m_SongMaxScoreInfo.VoiceScorePercent); DancerInfo left = new DancerInfo(); DancerInfo right = new DancerInfo(); if (!string.IsNullOrEmpty(SelfPlayerLevelData.TempOtherLevelProcessData)) { JsonData otherPlayers = JsonMapper.ToObject(SelfPlayerLevelData.TempOtherLevelProcessData); JsonData leftJson = otherPlayers[0]; JsonData rightJson = otherPlayers[1]; if (int.Parse(leftJson.TryGetString("Country")) == China) { left.m_Country = DancerInfo.Country.China; } else { left.m_Country = DancerInfo.Country.America; } left.ModelID = RoleModelConfig.Instance.GetNameById(int.Parse(leftJson.TryGetString("ModelId"))); left.Name = leftJson.TryGetString("UserName"); left.FaceID = RoleEmotionConfig.Instance.GetNameById(int.Parse(leftJson.TryGetString("EmotionId"))); left.PlayerID = leftJson.TryGetString("uid"); PlayerOperationData leftOperation = PlayerOperationData.GetDataFromJson(leftJson.TryGetString("Process")); left.WholeScore = leftOperation.wholeScore; left.ClickScore = leftOperation.clickScore; left.VoiceScore = left.WholeScore - left.ClickScore; left.WholeRankingPercent = (float)left.WholeScore / songMax; left.ClickScorePercent = (float)left.ClickScore / clickMax; left.VoiceScorePercent = (float)left.VoiceScore / voiceMax; if (int.Parse(rightJson.TryGetString("Country")) == China) { right.m_Country = DancerInfo.Country.China; } else { right.m_Country = DancerInfo.Country.America; } right.ModelID = RoleModelConfig.Instance.GetNameById(int.Parse(rightJson.TryGetString("ModelId"))); right.Name = leftJson.TryGetString("UserName"); right.FaceID = RoleEmotionConfig.Instance.GetNameById(int.Parse(rightJson.TryGetString("EmotionId"))); right.PlayerID = rightJson.TryGetString("uid"); PlayerOperationData rightOperation = PlayerOperationData.GetDataFromJson(rightJson.TryGetString("Process")); right.WholeScore = rightOperation.wholeScore; right.ClickScore = rightOperation.clickScore; right.VoiceScore = right.WholeScore - right.ClickScore; right.WholeRankingPercent = (float)right.WholeScore / songMax; right.ClickScorePercent = (float)right.ClickScore / clickMax; right.VoiceScorePercent = (float)right.VoiceScore / voiceMax; } else { if (m_SelfWinner) { left = GetNPCDancer(false, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache); right = GetNPCDancer(false, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache); } else { int temp = UnityEngine.Random.Range(0, 2); if (temp == 0) { left = GetNPCDancer(true, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache); right = GetNPCDancer(false, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache); } else { left = GetNPCDancer(false, m_Score, DancerInfo.Country.China, DancerInfo.Sex.Female, songMax, clickMax, m_TempTypeCache); right = GetNPCDancer(true, m_Score, DancerInfo.Country.America, DancerInfo.Sex.Male, songMax, clickMax, m_TempTypeCache); } } } stageManager.CreateDancer(left, StageManager.DancerPos.Left); stageManager.CreateDancer(right, StageManager.DancerPos.Right); stageManager.CreateDancerActionData(); } }