Пример #1
0
 public void SetPlayerDataByTaskPrgs(PshTaskPrgs data)
 {
     playerData.taskArr = data.taskArr;
 }
Пример #2
0
    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);
        }
    }
Пример #3
0
    public void PshTaskPrgs(GameMsg msg)
    {
        PshTaskPrgs data = msg.val as PshTaskPrgs;

        GameRoot.Instance.SetPlayerDataByTask(data);
    }
Пример #4
0
    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);
    }
Пример #5
0
 public static void SetPlayerDataByTaskPsh(PshTaskPrgs data)
 {
     PlayerData.TaskArr.SetRepeated <string>(data.TaskArr);
 }