public void SetPlayerDataByTaskPrgs(PshTaskPrgs data) { playerData.taskArr = data.taskArr; }
public void ReqStrong(MsgPack pack) { ReqStrong data = pack.msg.reqStrong; GameMsg msg = new GameMsg { cmd = (int)CMD.RspStrong }; PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.session); int curtStartLv = pd.strongArr[data.pos]; StrongCfg nextSd = CfgSvc.Instance.GetStrongCfg(data.pos, curtStartLv + 1); PshTaskPrgs pshTaskPrgs = null; //条件判断 if (pd.lv < nextSd.minlv) { msg.err = (int)ErrorCode.LackLevel; } else if (pd.coin < nextSd.coin) { msg.err = (int)ErrorCode.LackCoin; } else if (pd.crystal < nextSd.crystal) { msg.err = (int)ErrorCode.LackCrystal; } else { //任务进度数据更新 pshTaskPrgs = TaskSys.Instance.GetPshTaskPrgs(pd, 3); //资源扣除 pd.coin -= nextSd.coin; pd.crystal -= nextSd.crystal; pd.strongArr[data.pos] += 1; //增加属性 pd.hp += nextSd.addhp; pd.ad += nextSd.addhurt; pd.ap += nextSd.addhurt; pd.addef += nextSd.adddef; pd.apdef += nextSd.adddef; } //更新数据库 if (!cacheSvc.UpdatePlayerData(pd.id, pd)) { msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspStrong = new RspStrong { coin = pd.coin, crystal = pd.crystal, hp = pd.hp, ad = pd.ad, ap = pd.ap, addef = pd.addef, apdef = pd.apdef, strongArr = pd.strongArr, }; //并包处理 msg.pshTaskPrgs = pshTaskPrgs; pack.session.SendMsg(msg); } }
public void PshTaskPrgs(GameMsg msg) { PshTaskPrgs data = msg.val as PshTaskPrgs; GameRoot.Instance.SetPlayerDataByTask(data); }
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); // 任务进度数据更新 PshTaskPrgs pshTaskPrgs = TaskSys.Instance.GetTaskPrgs(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 { RspFBFightEnd rspFBFighten = 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 = rspFBFighten; msg.pshTaskPrgs = pshTaskPrgs; } } } else { msg.err = (int)ErrorCode.ClientDataError; } pack.session.SendMsg(msg); }
public static void SetPlayerDataByTaskPsh(PshTaskPrgs data) { PlayerData.TaskArr.SetRepeated <string>(data.TaskArr); }