public void ReqFBFightEnd(MsgPack pack) { ReqFBFightEnd data = pack.msg.reqFBFightEnd; GameMsg msg = new GameMsg { cmd = (int)CMD.RspFBFightEnd }; // 校验战斗是否合法 if (data.win == true) { if (data.costtime > 0 && data.resthp > 0) { // 根据对应副本ID获取奖励 MapCfg rd = cfgSvc.GetMapCfg(data.fbId); PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session); // 任务进度更新 TaskSys.Instance.CalcTaskPrgs(pd, 2); pd.coin += rd.coin; pd.crystal += rd.exp; Common.CalcExp(pd, rd.exp); if (pd.fuben == data.fbId) { pd.fuben += 1; } // 更新数据库 if (cacheSvc.UpdatePlayerData(pd.id, pd) == false) { msg.err = (int)ErrorCode.UpdateDBError; } else { RspFBFightEnd rspFBFightEnd = new RspFBFightEnd { win = data.win, fbId = data.fbId, resthp = data.resthp, costtime = data.costtime, coin = pd.coin, lv = pd.lv, exp = pd.exp, crystal = pd.crystal, fuben = pd.fuben }; msg.rspFBFightEnd = rspFBFightEnd; } } } else { msg.err = (int)ErrorCode.ClientDataError; } pack.session.SendMsg(msg); }
/// <summary> /// 胜利后请求结算,失败不需要 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EndBattle(object sender, GameEventArgs e) { EndBattleEventArgs ne = e as EndBattleEventArgs; GameEntry.UI.CloseUIForm(UIFormId.PlayerCtrlForm); GameEntry.UI.RmvAllHpItemInfo(); if (ne.IsWin) { double endTime = GameEntry.Timer.GetNowTime(); //发送结算战斗请求 //TODO CSPacketBase msg = new ReqFBFightEnd { Win = ne.IsWin, Fbid = m_Fbid, Resthp = ne.RestHP, Costtime = (int)(endTime - m_StartTime) }; GameEntry.Net.SendMsg(msg); } else { SetBattleEndWndState(FBEndType.Lose); } }
public void ReqFBFightEnd(MsgPack pack) { ReqFBFightEnd data = pack.msg.reqFBFightEnd; GameMsg msg = new GameMsg { cmd = (int)CMD.RspFBFightEnd, }; //校验战斗是否合法 if (data.win) { if (data.costtime > 0 && data.resthp > 0) { //根据副本ID获取到相应的奖励 MapCfg rd = cfgSvc.GetMapCfg(data.fbid); PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session); //任务进度数据更新 msg.pshTaskPrgs = TaskSys.Instance.GetPshTaskPrgs(pd, 2); pd.coin += rd.coin; pd.crystal += rd.crystal; PECommon.CalcExp(pd, rd.exp); if (pd.fuben == data.fbid) { pd.fuben += 1; } if (!cacheSvc.UpdatePlayerData(pd.id, pd)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspFBFightEnd = new RspFBFightEnd { win = data.win, fbid = data.fbid, resthp = data.resthp, costtime = data.costtime, coin = pd.coin, lv = pd.lv, exp = pd.exp, crystal = pd.crystal, fuben = pd.fuben, }; } } } else { msg.err = (int)ErrorCode.ClientDataError; } pack.session.SendMsg(msg); }
public void ReqFBFightEnd(MsgPack pack) { ReqFBFightEnd data = (ReqFBFightEnd)pack.msg; SCPacketBase msg = new RspFBFightEnd(); //校验战斗是否合法 if (data.Win) { if (data.Costtime > 0 && data.Resthp > 0) { //根据副本ID获取相应奖励 MapCfg rd = cfgSvc.GetMapCfg(data.Fbid); PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session); //任务进度数据更新 TaskSys.Instance.CalcTaskPrgs(pd, 2); pd.Coin += rd.coin; pd.Crystal += rd.crystal; KDCommon.CalcExp(pd, rd.exp); if (pd.Fuben == data.Fbid) { pd.Fuben += 1; } if (!cacheSvc.UpdatePlayerData(pd.Id, pd)) { msg.error = (int)ErrorCode.UpdateDBError; } else { RspFBFightEnd rspFBFight = new RspFBFightEnd { Win = data.Win, Fbid = data.Fbid, Resthp = data.Resthp, Costtime = data.Costtime, Coin = pd.Coin, Lv = pd.Lv, Exp = pd.Exp, Crystal = pd.Crystal, Fuben = pd.Fuben }; msg = rspFBFight; } } } else { msg.error = (int)ErrorCode.ClientDataError; } pack.session.SendMsg(msg); }
public void ReqFBFightEnd(PackMsg pack) { ReqFBFightEnd data = pack.msg.reqFBFightEnd; ServerSession session = pack.session; GameMsg msg = new GameMsg { cmd = (int)(CMD.RspFBFFightEnd), }; PlayerData playerData = cacheSvc.GetPlayerDataCache(session); MapCfg mapCfg = cfgSvc.GetMapCfg(data.fbid); if (data.isWin) { if (data.costTime > 0 && data.restHp > 0) { TaskSys.Instance.CalcTaskProgs(playerData, 2); PECommon.UpdateExp(playerData, mapCfg.exp); playerData.coin += mapCfg.coin; playerData.crystal += mapCfg.crystal; if (data.fbid == playerData.fuben) { playerData.fuben++; } if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { msg.err = (int)ErrorCode.UpdateDBError; } else { RspFBFightEnd rspFBFightEnd = new RspFBFightEnd { isWin = data.isWin, fbid = data.fbid, restHp = data.restHp, costTime = data.costTime, exp = playerData.exp, lv = playerData.lv, coin = playerData.coin, crystal = playerData.crystal, fuben = playerData.fuben, }; msg.rspFBFightEnd = rspFBFightEnd; } } } else { msg.err = (int)ErrorCode.UpdateDBError; } session.SendMsg(msg); }
public void ReqFBFightEnd(MsgPack pack) { ReqFBFightEnd data = pack.msg.reqFBFightEnd; GameMsg msg = new GameMsg { cmd = (int)CMD.RspFBFightEnd, }; //校验战斗结果是否合法 if (data.iswin) { if (data.costtime > 10 && data.resthp > 0) { //根据副本ID获取奖励数据 MapCfg mapcfg = CfgSvc.Instance.GetMapCfg(data.fbid); PlayerData pd = CacheSvc.Instance.GetPlayerDataBySession(pack.session); pd.coin += mapcfg.coin; pd.crystal += mapcfg.crystal; PECommon.CalcExp(pd, mapcfg.exp); if (pd.mission == data.fbid) { pd.mission++; } if (!CacheSvc.Instance.UpdatePlayerData(pd.id, pd, pack.session)) { msg.err = (int)ErrorCode.UpdateDBError; } else { RspFBFightEnd rspFBFightEnd = new RspFBFightEnd { iswin = data.iswin, fbid = data.fbid, resthp = data.resthp, costtime = data.costtime, coin = pd.coin, lv = pd.lv, exp = pd.exp, crystal = pd.crystal, fuben = pd.mission, }; msg.rspFBFightEnd = rspFBFightEnd; //更新任务进度数据 TaskSys.Instance.CalcTaskPrgs(pd, 2); } } else { msg.err = (int)ErrorCode.ClientDataError; } } else { msg.err = (int)ErrorCode.ClientDataError; } pack.session.SendMsg(msg); }