コード例 #1
0
ファイル: CfgService.cs プロジェクト: WhitePetal/ARPG
        public TaskRewardCfg GetTaskRewardCfg(int id)
        {
            TaskRewardCfg cfg = null;

            if (taskRewardCfgDic.TryGetValue(id, out cfg))
            {
                return(cfg);
            }
            NETCommon.Log("获取 TaskRewardCfg 失败,ID:" + id);
            return(null);
        }
コード例 #2
0
        public PshTaskPrgs CalcTaskPrg(PlayerData pd, int id)
        {
            TaskRewardData trd = CalcTaskRewardData(pd, id);
            TaskRewardCfg  cfg = cfgService.GetTaskRewardCfg(id);
            PshTaskPrgs    psh = null;

            if (trd.prgs < cfg.count)
            {
                ++trd.prgs;
                CalcTaskArr(pd, trd);
                psh = new PshTaskPrgs
                {
                    taskAr = pd.taskArr
                };
            }
            return(psh);
        }
コード例 #3
0
ファイル: CfgService.cs プロジェクト: WhitePetal/ARPG
        private void InitTaskCfg()
        {
            XmlDocument doc = new XmlDocument();

            doc.Load(@"F:\Unity\ARPG\Assets\Plugins\Editor\RawConfig\taskreward.xml");
            XmlNode root = doc.SelectSingleNode("root");

            foreach (XmlElement item in root.ChildNodes)
            {
                if (item.GetAttributeNode("ID") == null)
                {
                    continue;
                }
                int           id  = int.Parse(item.GetAttributeNode("ID").InnerText);
                TaskRewardCfg cfg = new TaskRewardCfg();
                cfg.ID = id;
                foreach (XmlElement ele in item.ChildNodes)
                {
                    string value = ele.InnerText;
                    switch (ele.Name)
                    {
                    case "taskName":
                        cfg.taskName = value;
                        break;

                    case "exp":
                        cfg.exp = int.Parse(value);
                        break;

                    case "coin":
                        cfg.coin = int.Parse(value);
                        break;

                    case "count":
                        cfg.count = int.Parse(value);
                        break;
                    }
                }
                taskRewardCfgDic.Add(id, cfg);
            }
        }
コード例 #4
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);
        }