问题描述:
一局打完后,显示的计分项应该为抢杠,但是实际显示的是平胡。
查找客户端程序,从低到顶寻找调用层次,没有发现代码的问题。
root_scene:
case ScenePredefineName.GameRoom:
{
newScene = new GameRoomLayer();
this.m_CurrentSceneName = scene_name;
}
game_room:
g_ScorePointTypeDef.QiangGang = 25;
GameRoomLayer
onReceiveMessage:
onReceiveMessage : function(action, msg) {
..
var msgData = JSON.parse(msg);
..
var scores = msgData["u" + userId].score;
..
37,28,6,34,3,3,9,0,4,41,11,1,42,28,2,45,23,1,46,24,2,47,4,1,47,14,2,47,24,2,31,1,1
for (var j = 0; j < scores.length / 3; ++j)
{
var sp = {};
sp.ScorePointType = scores[j * 3];
sp.ScorePointCardID = scores[j * 3 + 1];
sp.ScorePoint = scores[j * 3 + 2];
playerData.ScorePoints.push(sp);
}
this.m_dataRoundResult.PlayerData[i] = playerData;
}
showRoundResult : function (){
var uiRoundResult = new RoundResultLayer();
uiRoundResult.setData(this.m_dataRoundResult);
}
round_result:
setData : function (resultData){
resultNode.setData(playerData, resultData.PlayerData[i], resultData.FanPaiJi);
}
player_round_result:
setData : function (playerData, resultData, fanpaiji)
createScorePoints : function (resultData, fanpaiji, listview)
this.sortScorePoints(scores);
score.setData(scores[i].ScorePointType, scores[i].ScorePointCardID, scores[i].ScorePoint, fanpaiji, resultData.WinType);
resultData.ScorePoints[i]
score_point:
setData : function (scoreType, cardId, value, fanpai, winType)
this.m_NameNode.setString(this.getScoreTypeName(scoreType, cardId));
getScoreTypeName : function(scoreType, winType)
case g_ScorePointTypeDef.QiangGang:
var n = Point();
Owner.AddFinalPoint(Type(), n);
//if (WinType != WinType.None || ShowPingHu)
Owner.AddRoundPointList(new Tuple<PointType, int, int>(PointType.PaiXing, (int)WinType, n), IsJi());
Victim.AddFinalPoint(Type(), -n);
//Victim.AddRoundPointList(Type(), 1, -n, IsJi());
Victim.AddRoundPointList(new Tuple<PointType, int, int>(PointType.PaiXing, (int)WinType, -n), IsJi());
Owner.tongji[1]++;
Victim.tongji[2]++;
问题可能出现在客户端或者服务器端,首先应该做的是打一局游戏,判断服务器端传入的数据是否有问题。
打了一局,发现服务器传入的计分类型有问题,是服务器的问题。