积分问题修复

This commit is contained in:
DESKTOP-SAJ6RKV\Administrator 2025-06-11 14:01:41 +08:00
parent a588b268bb
commit 8793df1b60

View File

@ -69,42 +69,51 @@ public class DataGameModelManager : GameBase.Singleton<DataGameModelManager>
// 总积分 // 总积分
long totalScore = DataGameSceneManager.Instance.ScoreAllValue; long totalScore = DataGameSceneManager.Instance.ScoreAllValue;
// 计算前三名分配
long firstScore = (long)(totalScore * 0.3f);
long secondScore = (long)(totalScore * 0.2f);
long thirdScore = (long)(totalScore * 0.1f);
// 计算剩余40%平分
long leftScore = totalScore - firstScore - secondScore - thirdScore;
int playerCount = us.Count; int playerCount = us.Count;
long avgScore = playerCount > 0 ? leftScore / playerCount : 0;
// 分配 if (playerCount == 1)
for (int i = 0; i < us.Count; i++)
{ {
var d = us[i]; // 只有一个玩家分配100%
long addScore = avgScore; us[0].m_Score += totalScore;
if (i == 0) long winScale = DataGameSceneManager.Instance.WinAllValue;
addScore += firstScore; Log.Debug("玩家{0},分配所得胜点:{1}", us[0].protCustMessageData.nickName, winScale);
else if (i == 1) us[0].m_AllWinCount = (int)winScale;
addScore += secondScore; }
else if (i == 2) else
addScore += thirdScore; {
// 计算前三名分配
long firstScore = (long)(totalScore * 0.3f);
long secondScore = (long)(totalScore * 0.2f);
long thirdScore = (long)(totalScore * 0.1f);
d.m_Score += addScore; // 计算剩余40%平分
long leftScore = totalScore - firstScore - secondScore - thirdScore;
long avgScore = playerCount > 0 ? leftScore / playerCount : 0;
// 分配胜点(如有特殊规则可在此处理) // 分配
if (i == 0) for (int i = 0; i < playerCount; i++)
{ {
long winScale = DataGameSceneManager.Instance.WinAllValue; var d = us[i];
Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale); long addScore = avgScore;
d.m_AllWinCount = (int)winScale; if (i == 0)
addScore += firstScore;
else if (i == 1)
addScore += secondScore;
else if (i == 2)
addScore += thirdScore;
d.m_Score += addScore;
// 分配胜点(如有特殊规则可在此处理)
if (i == 0)
{
long winScale = DataGameSceneManager.Instance.WinAllValue;
Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale);
d.m_AllWinCount = (int)winScale;
}
} }
} }
List<PostPlayRankData> rankInfos = new List<PostPlayRankData>(); List<PostPlayRankData> rankInfos = new List<PostPlayRankData>();
// 上报排行榜数据 // 上报排行榜数据
var allDatas = DataGameSceneManager.Instance.GetUnitPlayerDatas(); var allDatas = DataGameSceneManager.Instance.GetUnitPlayerDatas();