private void OnClickTakeTask(int taskId)
    {
        CSPacketBase msg = new ReqTakeTaskReward {
            Rid = taskId
        };

        GameEntry.Net.SendMsg(msg);
    }
Ejemplo n.º 2
0
    public void ReqTakeTaskReward(MsgPack pack)
    {
        ReqTakeTaskReward data = pack.Msg.reqTakeTaskReward;

        GameMsg msg = new GameMsg()
        {
            cmd = (int)CMD.RspTakeTaskReward
        };

        PlayerData pd = cacheSvc.GetPlayerDataBySession(pack.Session);

        TaskRewardCfg  trc = cfgSvc.GetTaskRewardCfg(data.tid);
        TaskRewardData trd = CalcTaskRewardData(pd, data.tid);


        if (trd.prgs == trc.count && !trd.taked)
        {
            pd.coin += trc.coin;
            PECommon.CalcExp(pd, trc.exp);
            trd.taked = true;
            //更新任务进度数据
            CalcTaskArr(pd, trd);

            if (!cacheSvc.UpdatePlayerData(pd.id, pd))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspTakeTaskReward rspTakeTaskReward = new RspTakeTaskReward()
                {
                    coin    = pd.coin,
                    lv      = pd.lv,
                    exp     = pd.exp,
                    taskArr = pd.taskArr
                };
                msg.rspTakeTaskReward = rspTakeTaskReward;
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }

        pack.Session.SendMsg(msg);
    }
Ejemplo n.º 3
0
    public void ReqTakeTaskReward(PackMsg pack)
    {
        ReqTakeTaskReward data    = pack.msg.reqTakeTaskReward;
        ServerSession     session = pack.session;
        GameMsg           msg     = new GameMsg
        {
            cmd = (int)CMD.RspTakeTaskReward,
        };
        int        rewardID   = data.rid;
        PlayerData playerData = cacheSvc.GetPlayerDataCache(session);

        TaskRewardCfg  trc = cfgSvc.GetTaskRewardCfg(rewardID);
        TaskRewardData trd = GetTaskRewardData(playerData, rewardID);

        //安全验证
        if (trd.progress == trc.count && !trd.taked)
        {
            playerData.coin += trc.coin;
            PECommon.UpdateExp(playerData, trc.exp);
            trd.taked = true;
            //更新任务进度数据
            CalcTaskArr(playerData, trd);

            if (!cacheSvc.UpdatePlayerData(playerData.id, playerData))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg.rspTakeTaskReward = new RspTakeTaskReward
                {
                    coin    = playerData.coin,
                    exp     = playerData.exp,
                    lv      = playerData.lv,
                    hp      = playerData.hp,
                    taskArr = playerData.taskArr,
                };
                session.SendMsg(msg);
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }
    }
Ejemplo n.º 4
0
    public void ReqTakeTaskReward(MsgPack pack)
    {
        ReqTakeTaskReward data = pack.msg.reqTakeTaskReward;

        GameMsg msg = new GameMsg {
            cmd = (int)CMD.RspTakeTaskReward
        };

        PlayerData     playerData = cacheSvc.GetPlayerDataBySession(pack.session);
        TaskRewardCfg  trc        = cfgSvc.GetTaskRewardCfg(data.rid);
        TaskRewardData trd        = CalcTaskRewardData(playerData, data.rid);

        if (trd.prgs == trc.count && trd.isTakenReward == false)
        {
            playerData.coin += trc.coin;
            Common.CalcExp(playerData, trc.exp);
            trd.isTakenReward = true;

            // 更新任务进度数据
            CalcTaskArr(playerData, trd);

            if (cacheSvc.UpdatePlayerData(playerData.id, playerData) == true)
            {
                RspTakeTaskReward rspTakeTaskReward = new RspTakeTaskReward {
                    coin    = playerData.coin,
                    lv      = playerData.lv,
                    exp     = playerData.exp,
                    taskArr = playerData.taskArr
                };

                msg.rspTakeTaskReward = rspTakeTaskReward;
            }
            else
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }

        pack.session.SendMsg(msg);
    }
Ejemplo n.º 5
0
        public void ReqTakeTaskReward(MsgPack pack)
        {
            ReqTakeTaskReward data = pack.msg.reqTakeTask;

            GameMsg msg = new GameMsg
            {
                cmd = (int)CMD.RspTakeTaskReward
            };

            PlayerData pd = cacheSev.GetPlayerDataBySession(pack.session);

            TaskRewardCfg  cfg = cfgService.GetTaskRewardCfg(data.id);
            TaskRewardData trd = CalcTaskRewardData(pd, data.id);

            if (trd.prgs != cfg.count || trd.take)
            {
                msg.err = (int)ErrorCode.TakeTaskError;
                pack.session.SendMsg(msg);
                return;
            }

            pd.coin += cfg.coin;
            NETCommon.CalcExp(pd, cfg.exp);
            trd.take = true;
            CalcTaskArr(pd, trd);
            if (!cacheSev.UpdatePlayerData(pd))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
                pack.session.SendMsg(msg);
                return;
            }
            msg.rspTakeTask = new RspTakeTaskReward
            {
                coin    = pd.coin,
                exp     = pd.exp,
                lv      = pd.lv,
                taskArr = pd.taskArr
            };
            pack.session.SendMsg(msg);
        }
Ejemplo n.º 6
0
    public void ReqTakeTaskReward(MsgPack pack)
    {
        ReqTakeTaskReward data = (ReqTakeTaskReward)pack.msg;

        SCPacketBase msg = new RspTakeTaskReward();
        PlayerData   pd  = cacheSvc.GetPlayerDataBySession(pack.session);

        TaskRewardCfg  trc = cfgSvc.GetTaskRewardCfg(data.Rid);
        TaskRewardData trd = CalcTaskRewardData(pd, data.Rid);

        if (trd.prgs == trc.count && !trd.taked)
        {
            pd.Coin += trc.coin;
            KDCommon.CalcExp(pd, trc.exp);
            trd.taked = true;
            //更新任务进度数据
            CalcTaskArr(pd, trd);

            if (!cacheSvc.UpdatePlayerData(pd.Id, pd))
            {
                msg.error = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                RspTakeTaskReward rspTakeTaskReward = new RspTakeTaskReward {
                    Coin = pd.Coin,
                    Lv   = pd.Lv,
                    Exp  = pd.Exp,
                };
                rspTakeTaskReward.TaskArr.SetRepeated <string>(pd.TaskArr);
                msg = rspTakeTaskReward;
            }
        }
        else
        {
            msg.error = (int)ErrorCode.ClientDataError;
        }
        pack.session.SendMsg(msg);
    }
Ejemplo n.º 7
0
    public void ReqTakeTaskReward(MsgPack pack)
    {
        ReqTakeTaskReward data = pack.msg.reqTakeTaskReward;
        GameMsg           msg  = new GameMsg
        {
            cmd = (int)CMD.RspTakeTaskReward,
        };
        PlayerData     pd    = CacheSvc.Instance.GetPlayerDataBySession(pack.session);
        TaskRewardCfg  trcfg = CfgSvc.Instance.GetTaskRewardCfg(data.rid);
        TaskRewardData trd   = GetTaskRewardData(pd, data.rid);

        if (trd.prgs == trcfg.count && !trd.taked)
        {
            pd.coin += trcfg.coin;
            PECommon.CalcExp(pd, trcfg.exp);
            trd.taked = true;
            CalcTaskArr(pd, trd);

            if (!CacheSvc.Instance.UpdatePlayerData(pd.id, pd, pack.session))
            {
                msg.err = (int)ErrorCode.UpdateDBError;
            }
            else
            {
                msg.rspTakeTaskReward = new RspTakeTaskReward
                {
                    coin    = pd.coin,
                    exp     = pd.exp,
                    lv      = pd.lv,
                    taskArr = pd.taskArr,
                };
            }
        }
        else
        {
            msg.err = (int)ErrorCode.ClientDataError;
        }
        pack.session.SendMsg(msg);
    }