积分问题修复
This commit is contained in:
parent
a588b268bb
commit
8793df1b60
@ -69,42 +69,51 @@ public class DataGameModelManager : GameBase.Singleton<DataGameModelManager>
|
||||
|
||||
// 总积分
|
||||
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;
|
||||
long avgScore = playerCount > 0 ? leftScore / playerCount : 0;
|
||||
|
||||
// 分配
|
||||
for (int i = 0; i < us.Count; i++)
|
||||
if (playerCount == 1)
|
||||
{
|
||||
var d = us[i];
|
||||
long addScore = avgScore;
|
||||
if (i == 0)
|
||||
addScore += firstScore;
|
||||
else if (i == 1)
|
||||
addScore += secondScore;
|
||||
else if (i == 2)
|
||||
addScore += thirdScore;
|
||||
// 只有一个玩家,分配100%
|
||||
us[0].m_Score += totalScore;
|
||||
long winScale = DataGameSceneManager.Instance.WinAllValue;
|
||||
Log.Debug("玩家{0},分配所得胜点:{1}", us[0].protCustMessageData.nickName, winScale);
|
||||
us[0].m_AllWinCount = (int)winScale;
|
||||
}
|
||||
else
|
||||
{
|
||||
// 计算前三名分配
|
||||
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;
|
||||
Log.Debug("玩家{0},分配所得胜点:{1}", d.protCustMessageData.nickName, winScale);
|
||||
d.m_AllWinCount = (int)winScale;
|
||||
var d = us[i];
|
||||
long addScore = avgScore;
|
||||
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>();
|
||||
// 上报排行榜数据
|
||||
var allDatas = DataGameSceneManager.Instance.GetUnitPlayerDatas();
|
||||
|
Loading…
x
Reference in New Issue
Block a user