From f9d62e1eecca0bd99a0941d04ba47959938ba61f Mon Sep 17 00:00:00 2001 From: "DESKTOP-SAJ6RKV\\Administrator" Date: Thu, 15 May 2025 16:35:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E7=BB=93=E7=AE=97=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/AssetRaw/UI/UIGameEndForm.prefab | 6 +- .../HotFix/GameLogic/Actor/ActorHItem.cs | 5 + .../GameLogic/Manager/DataGameModelManager.cs | 306 +++++------------- .../GameLogic/Manager/DataGameSceneManager.cs | 2 +- .../HotFix/GameLogic/UI/UIGameEndForm.cs | 51 +++ 5 files changed, 148 insertions(+), 222 deletions(-) diff --git a/UnityProject/Assets/AssetRaw/UI/UIGameEndForm.prefab b/UnityProject/Assets/AssetRaw/UI/UIGameEndForm.prefab index 8b82c13c..4d80f4ac 100644 --- a/UnityProject/Assets/AssetRaw/UI/UIGameEndForm.prefab +++ b/UnityProject/Assets/AssetRaw/UI/UIGameEndForm.prefab @@ -1533,10 +1533,10 @@ RectTransform: - {fileID: 6210458413926239589} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0.5, y: 0.5} - m_AnchorMax: {x: 0.5, y: 0.5} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 1, y: 1} m_AnchoredPosition: {x: 0, y: 0} - m_SizeDelta: {x: 100, y: 100} + m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} --- !u!223 &9028738046421714771 Canvas: diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs index a39a15dd..88b25303 100644 --- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs +++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Actor/ActorHItem.cs @@ -110,6 +110,11 @@ namespace GameLogic return data; } + public List GetUnitPlayerDatas() + { + return m_ListUnitPlayDatas; + } + public double GetAllPower() { return m_AllPush; diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs index c14e523a..bb2cf2ff 100644 --- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs +++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameModelManager.cs @@ -10,19 +10,7 @@ public class DataGameModelManager : GameBase.Singleton #region 游戏结算上报 public void C2S_GameRankEnd() { - //if (EventConts.gameStateType == GameStateType.团队赛) - //{ - // GameRankEnd(); - //} - //else if (EventConts.gameStateType == GameStateType.个人赛) - //{ - // OneGameRankEnd(); - //} - //else - //{ - // Log.Error("结算异常,不支持的模式:{0}", EventConts.gameStateType); - // return; - //} + GameRankEnd(); // 比例瓜分积分池 DataGameSceneManager.Instance.ScoreAllValue = (int)(DataGameSceneManager.Instance.ScoreAllValue * 0.3f); @@ -34,223 +22,105 @@ public class DataGameModelManager : GameBase.Singleton UpLoadScoreData(); } - /// - /// 个人赛结算逻辑 - /// - private void OneGameRankEnd() - { - // var datas = DataGameSceneManager.Instance.GetAllRankUnityPlayerData(); - // datas.Sort((a, b) => - // { - // if (a.GetIndexRankUnityData().m_Score > b.GetIndexRankUnityData().m_Score) - // { - // return -1; - // } - // else - // { - // return 1; - // } - // }); - - //List rankInfos = new List(); - - // for (int i = 0; i < datas.Count; i++) - // { - // var d = datas[i].GetIndexRankUnityData(); - // int scale = EventConts.allScoreScale[i >= EventConts.allScoreScale.Length - 1 ? EventConts.allScoreScale.Length - 1 : i]; - // long scoreScale = (long)(DataGameSceneManager.Instance.ScoreAllValue * (scale / 100.0f)); - - // // Log.Debug("玩家{0},分配所得积分:{1},当前玩家排名:{2}", d.protCustMessageData.nickName, scoreScale, i); - - // // 增加玩家当局积分 - // d.m_Score += scoreScale; - - // // 分配胜点 - // if (i < 3) - // { - // // Use Math.Ceiling to round up the winScale - // long winScale = (long)Math.Ceiling(DataGameSceneManager.Instance.WinAllValue * (EventConts.allWinScale[i] / 100.0f)); - // Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale); - // d.m_AllWinCount = (int)winScale; - // } - // } - - // // 上报排行榜数据 - // var allDatas = DataGameSceneManager.Instance.GetUnitPlayerDatas(); - // foreach (var item in allDatas) - // { - // PostPlayRankData postPlayRankData = new PostPlayRankData(); - // postPlayRankData.uid = item.Key; - // postPlayRankData.name = item.Value.protCustMessageData.nickName; - // postPlayRankData.score = item.Value.m_Score; - // postPlayRankData.pay = 0; - // //postPlayRankData.winCount = item.Value.m_AllWinCount; - // postPlayRankData.extData1 = item.Value.m_AllWinCount.ToString(); - // // Log.Debug($"上传排行榜胜点数据:{postPlayRankData.name}====>{postPlayRankData.winCount}"); - // postPlayRankData.avatar = item.Value.protCustMessageData.imgURL; - // // postPlayRankData.extraInfo = item.Value.m_PlayGameInfoData != null ? item.Value.m_PlayGameInfoData.ToJson() : ""; - // postPlayRankData.exp = item.Value.protCustMessageData.rankRo.exp; - // postPlayRankData.lv = item.Value.protCustMessageData.rankRo.lv; - // rankInfos.Add(postPlayRankData); - // } - - // rankInfos.Sort((a, b) => - // { - // if (a.score > b.score) - // { - // return -1; - // } - // else - // { - // return 1; - // } - // }); - - // Log.Debug($"上传排行榜数据:{rankInfos.ToJson()}"); - // string m_Json = EventConts.PlatformType == PlatformType.None ? HttpSendHelper.HttpPostRequest(EventConts.UploadScoreTest, rankInfos.ToJson()) : HttpSendHelper.HttpPostRequest(EventConts.UploadScore, rankInfos.ToJson()); - // Log.Debug($"收到排行榜数据:{m_Json}"); - - - // PlayRankRootData playRankRootData = JsonHelper.Deserialize(m_Json); - // if (playRankRootData != null && playRankRootData.code == 200) - // { - // // // 清理礼物队列 - // // DataGameManager.Instance.m_VipItemDatas.Clear(); - // // DataGameManager.Instance.m_GiftItemDatas.Clear(); - - // // 打开结算界面 - // object[] objects = new object[2]; - // objects[0] = GameRankType.当局排行榜; - // objects[1] = playRankRootData.data; - // GameModule.UI.ShowUI(objects); - // } - // else - // { - // UITip.ShowMessageBox("排行榜结算异常,请联系管理员!!Code:" + playRankRootData.code, MessageShowType.TwoButton, () => - // { - - // }, () => - // { - - // }); - // } - } - /// /// 团队赛结算分配 /// private void GameRankEnd() { - // var datas = DataGameSceneManager.Instance.GetTeamActors(); - // List actors = new List(); - // foreach (var item in datas) - // { - // actors.Add(item.Value); - // } - // // 排序 - // actors.Sort((a, b) => - // { - // if (a.GetAllPlayerScore() > b.GetAllPlayerScore()) - // { - // return -1; - // } - // else - // { - // return 1; - // } - // }); + var datas = DataGameSceneManager.Instance.OnCheckWinTeam(); - // // 获取获胜阵营玩家数据 - // var us = actors[0].GetUnitPlayerDatas(); - - // // 分配 - // for (int i = 0; i < us.Count; i++) - // { - // var d = us[i]; - // int scale = EventConts.allScoreScale[i >= EventConts.allScoreScale.Length ? EventConts.allScoreScale.Length - 1 : i]; - // long scoreScale = (long)(DataGameSceneManager.Instance.ScoreAllValue * (scale / 100.0f)); - - // //Log.Debug("玩家{0},分配所得积分:{1}", d.protCustMessageData.nickName, scoreScale); - - // // 增加玩家当局积分 - // d.m_Score += scoreScale; - - // // 分配胜点 - // //if (i < 3) - // //{ - // // // Use Math.Ceiling to round up the winScale - // // long winScale = (long)Math.Ceiling(DataGameSceneManager.Instance.WinAllValue * (EventConts.allWinScale[i] / 100.0f)); - // // Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale); - // // d.m_AllWinCount = (int)winScale; - // //} - // if (i == 0 ) - // { - // // Use Math.Ceiling to round up the winScale - // long winScale = DataGameSceneManager.Instance.WinAllValue; - // Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale); - // d.m_AllWinCount = (int)winScale; - // } - // } - - // List rankInfos = new List(); - // // 上报排行榜数据 - // var allDatas = DataGameSceneManager.Instance.GetUnitPlayerDatas(); - // foreach (var item in allDatas) - // { - // PostPlayRankData postPlayRankData = new PostPlayRankData(); - // postPlayRankData.uid = item.Key; - // postPlayRankData.name = item.Value.protCustMessageData.nickName; - // postPlayRankData.score = item.Value.m_Score; - // postPlayRankData.pay = 0; - // postPlayRankData.winCount = item.Value.m_AllWinCount; - // //postPlayRankData.useClientData = "1"; - // postPlayRankData.avatar = item.Value.protCustMessageData.imgURL; - // postPlayRankData.exp = item.Value.protCustMessageData.rankRo.exp; - // postPlayRankData.lv = item.Value.protCustMessageData.rankRo.lv; - // rankInfos.Add(postPlayRankData); - // } - - // rankInfos.Sort((a, b) => - // { - // if (a.score > b.score) - // { - // return -1; - // } - // else - // { - // return 1; - // } - // }); - - // Log.Debug($"上传排行榜数据:{rankInfos.ToJson()}"); - // string m_Json = EventConts.PlatformType == PlatformType.None ? HttpSendHelper.HttpPostRequest(EventConts.UploadScoreTest, rankInfos.ToJson()) : HttpSendHelper.HttpPostRequest(EventConts.UploadScore, rankInfos.ToJson()); - // Log.Debug($"收到排行榜数据:{m_Json}"); + // 获取获胜阵营玩家数据 + var us = datas.GetUnitPlayerDatas(); - // PlayRankRootData playRankRootData = JsonHelper.Deserialize(m_Json); - // if (playRankRootData != null && playRankRootData.code == 200) - // { - // // // 清理礼物队列 - // // DataGameManager.Instance.m_VipItemDatas.Clear(); - // // DataGameManager.Instance.m_GiftItemDatas.Clear(); + // 分配 + for (int i = 0; i < us.Count; i++) + { + var d = us[i]; + int scale = EventConts.allScoreScale[i >= EventConts.allScoreScale.Length ? EventConts.allScoreScale.Length - 1 : i]; + long scoreScale = (long)(DataGameSceneManager.Instance.ScoreAllValue * (scale / 100.0f)); - // // 打开结算界面 - // object[] objects = new object[2]; - // objects[0] = GameRankType.当局排行榜; - // objects[1] = playRankRootData.data; - // GameModule.UI.ShowUI(objects); - // } - // else - // { - // UITip.ShowMessageBox("排行榜结算异常,请联系管理员!!Code:" + playRankRootData.code, MessageShowType.TwoButton, () => - // { + //Log.Debug("玩家{0},分配所得积分:{1}", d.protCustMessageData.nickName, scoreScale); - // }, () => - // { + // 增加玩家当局积分 + d.m_Score += scoreScale; - // }); - // } + // 分配胜点 + //if (i < 3) + //{ + // // Use Math.Ceiling to round up the winScale + // long winScale = (long)Math.Ceiling(DataGameSceneManager.Instance.WinAllValue * (EventConts.allWinScale[i] / 100.0f)); + // Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale); + // d.m_AllWinCount = (int)winScale; + //} + if (i == 0) + { + // Use Math.Ceiling to round up the winScale + long winScale = DataGameSceneManager.Instance.WinAllValue; + Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale); + d.m_AllWinCount = (int)winScale; + } + } + + List rankInfos = new List(); + // 上报排行榜数据 + var allDatas = DataGameSceneManager.Instance.GetUnitPlayerDatas(); + foreach (var item in allDatas) + { + PostPlayRankData postPlayRankData = new PostPlayRankData(); + postPlayRankData.uid = item.Key; + postPlayRankData.name = item.Value.protCustMessageData.nickName; + postPlayRankData.score = item.Value.m_Score; + postPlayRankData.pay = 0; + postPlayRankData.winCount = item.Value.m_AllWinCount; + //postPlayRankData.useClientData = "1"; + postPlayRankData.avatar = item.Value.protCustMessageData.imgURL; + postPlayRankData.exp = item.Value.protCustMessageData.rankRo.exp; + postPlayRankData.lv = item.Value.protCustMessageData.rankRo.lv; + rankInfos.Add(postPlayRankData); + } + + rankInfos.Sort((a, b) => + { + if (a.score > b.score) + { + return -1; + } + else + { + return 1; + } + }); + + Log.Debug($"上传排行榜数据:{rankInfos.ToJson()}"); + string m_Json = EventConts.PlatformType == PlatformType.None ? HttpSendHelper.HttpPostRequest(EventConts.UploadScoreTest, rankInfos.ToJson()) : HttpSendHelper.HttpPostRequest(EventConts.UploadScore, rankInfos.ToJson()); + Log.Debug($"收到排行榜数据:{m_Json}"); + + + PlayRankRootData playRankRootData = JsonHelper.Deserialize(m_Json); + if (playRankRootData != null && playRankRootData.code == 200) + { + // // 清理礼物队列 + // DataGameManager.Instance.m_VipItemDatas.Clear(); + // DataGameManager.Instance.m_GiftItemDatas.Clear(); + + // 打开结算界面 + object[] objects = new object[2]; + objects[0] = GameRankType.当局排行榜; + objects[1] = playRankRootData.data; + GameModule.UI.ShowUI(objects); + } + else + { + UITip.ShowMessageBox("排行榜结算异常,请联系管理员!!Code:" + playRankRootData.code, MessageShowType.TwoButton, () => + { + + }, () => + { + + }); + } } diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs index 488a0c3e..5509344b 100644 --- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs +++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/Manager/DataGameSceneManager.cs @@ -872,7 +872,7 @@ namespace GameLogic /// /// 确认获胜阵营 /// - private ActorHItem OnCheckWinTeam() + public ActorHItem OnCheckWinTeam() { m_TeamSortList.Sort((a, b) => { diff --git a/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs b/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs index cab31099..deeeaedf 100644 --- a/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs +++ b/UnityProject/Assets/GameScripts/HotFix/GameLogic/UI/UIGameEndForm.cs @@ -42,8 +42,59 @@ namespace GameLogic #region ¼ private void OnClick_CloseBtn() { + MoveGameLoaclRank(); } #endregion + + protected override void OnCreate() + { + base.OnCreate(); + + + ShowUIData(); + + + // һʱ + GameModule.Timer.AddTimer((e) => + { + + MoveGameLoaclRank(); + + }, 5); + + } + + private void ShowUIData() + { + GameEndData gameEndData = UserData as GameEndData; + + m_tmp_PlayerName.text = gameEndData.m_WinTeamName; + m_tmp_SbyrPlayerName.text = gameEndData.m_SbyrPlayerName; + m_tmp_ZjgxPlayerNAME.text = gameEndData.m_ZjgxPlayerName; + m_tmp_TzhsPlayerName.text = gameEndData.m_TzhsPlayerName; + m_tmp_DzzwPlayerName.text = gameEndData.m_DzzwPlayerName; + m_tmp_WinPlayerName.text = gameEndData.m_WinPlayerName; + + + } + + + /// + /// ǰ + /// + private void MoveGameLoaclRank() + { + + + // ý + DataGameModelManager.Instance.C2S_GameRankEnd(); + + //// ʾ + + //GameModule.UI.CloseUI(); + + + } } }