public TaskRewardCfg GetTaskRewardCfg(int id) { TaskRewardCfg cfg = null; if (taskRewardCfgDic.TryGetValue(id, out cfg)) { return(cfg); } NETCommon.Log("获取 TaskRewardCfg 失败,ID:" + id); return(null); }
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); }
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); } }
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); }