处理结算逻辑
This commit is contained in:
parent
267d66869c
commit
f9d62e1eec
@ -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:
|
||||
|
@ -110,6 +110,11 @@ namespace GameLogic
|
||||
return data;
|
||||
}
|
||||
|
||||
public List<UnitPlayerData> GetUnitPlayerDatas()
|
||||
{
|
||||
return m_ListUnitPlayDatas;
|
||||
}
|
||||
|
||||
public double GetAllPower()
|
||||
{
|
||||
return m_AllPush;
|
||||
|
@ -10,19 +10,7 @@ public class DataGameModelManager : GameBase.Singleton<DataGameModelManager>
|
||||
#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<DataGameModelManager>
|
||||
UpLoadScoreData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 个人赛结算逻辑
|
||||
/// </summary>
|
||||
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<PostPlayRankData> rankInfos = new List<PostPlayRankData>();
|
||||
|
||||
// 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<PlayRankRootData>(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<UIGameRankForm>(objects);
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// UITip.ShowMessageBox("排行榜结算异常,请联系管理员!!Code:" + playRankRootData.code, MessageShowType.TwoButton, () =>
|
||||
// {
|
||||
|
||||
// }, () =>
|
||||
// {
|
||||
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 团队赛结算分配
|
||||
/// </summary>
|
||||
private void GameRankEnd()
|
||||
{
|
||||
// var datas = DataGameSceneManager.Instance.GetTeamActors();
|
||||
// List<Actor> actors = new List<Actor>();
|
||||
// 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<PostPlayRankData> rankInfos = new List<PostPlayRankData>();
|
||||
// // 上报排行榜数据
|
||||
// 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<PlayRankRootData>(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<UIGameRankForm>(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<PostPlayRankData> rankInfos = new List<PostPlayRankData>();
|
||||
// 上报排行榜数据
|
||||
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<PlayRankRootData>(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<UIGameRankForm>(objects);
|
||||
}
|
||||
else
|
||||
{
|
||||
UITip.ShowMessageBox("排行榜结算异常,请联系管理员!!Code:" + playRankRootData.code, MessageShowType.TwoButton, () =>
|
||||
{
|
||||
|
||||
}, () =>
|
||||
{
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -872,7 +872,7 @@ namespace GameLogic
|
||||
/// <summary>
|
||||
/// 确认获胜阵营
|
||||
/// </summary>
|
||||
private ActorHItem OnCheckWinTeam()
|
||||
public ActorHItem OnCheckWinTeam()
|
||||
{
|
||||
m_TeamSortList.Sort((a, b) =>
|
||||
{
|
||||
|
@ -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;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 前往结算界面
|
||||
/// </summary>
|
||||
private void MoveGameLoaclRank()
|
||||
{
|
||||
|
||||
|
||||
// 调用结算分配
|
||||
DataGameModelManager.Instance.C2S_GameRankEnd();
|
||||
|
||||
//// 显示结算界面
|
||||
|
||||
//GameModule.UI.CloseUI<UIGameEndForm>();
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user