public void ReqEndBattle(MsgPack packMsg) { RequestEndBattle data = packMsg._msg.reqEndBattle; NetMsg netMsg = new NetMsg { cmd = (int)MsgCommand.Cmd_RspEndBattle, }; //校验是否合法 if (data.bWin) { if (data.costTime > 20 && data.leftHp > 0) { MapCfg mapCfg = cfgSvc.GetMapCfgData(data.chapterID); PlayerData playerData = cacheSvc.GetPlayerDataBySession(packMsg._session); if (playerData != null && mapCfg != null) { TaskRewardSys.Instance.CalcTaskProgress(playerData, Constants.cTask_Copyer); playerData.coin += mapCfg.rewardCoin; playerData.critical += mapCfg.rewardCrystal; CommonTools.CalcExp(playerData, mapCfg.rewardExp); if (playerData.curChapter == data.chapterID) { playerData.curChapter += 1; } if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { netMsg.err = (int)ErroCode.Error_UpdateDB; } else { ResponseEndBattle rspData = new ResponseEndBattle { bWin = data.bWin, chapterID = data.chapterID, costTime = data.costTime, leftHp = data.leftHp, coin = playerData.coin, lv = playerData.lv, exp = playerData.exp, crystal = playerData.crystal, progress = playerData.curChapter }; netMsg.rspEndBattle = rspData; } } } } else { netMsg.err = (int)ErroCode.Error_ClientData; } packMsg._session.SendMsg(netMsg); }
public void UpdatePlayerDataOfBattleResult(ResponseEndBattle data) { PlayerData.coin = data.coin; PlayerData.lv = data.lv; PlayerData.exp = data.exp; PlayerData.crystal = data.crystal; PlayerData.curChapter = data.progress; }