public void RefreshUI(TaskRewardCfg trf, TaskRewardData trc) { rewardID = trf.ID; txtName.text = trf.taskName; txtExp.text = trf.exp.ToString(); txtCoin.text = "金币 " + trf.coin.ToString(); txtPrg.text = trc.progress + "/" + trf.count; float pec = trc.progress * 1.0f / trf.count; proVal.fillAmount = pec; bool taked = trc.taked; if (taked == false) { compTrans.gameObject.SetActive(false); if (trf.count != trc.progress) { takeBtn.interactable = false; } else { takeBtn.interactable = true; } } else { takeBtn.interactable = false; compTrans.gameObject.SetActive(true); } }
public void CalcTaskPrgs(int tid) { TaskRewardCfg trd = resSvc.GetTaskRewardCfg(tid); string[] taskInfo = new string[5]; for (int i = 0; i < PlayerData.TaskArr.Length; i++) { taskInfo = PlayerData.TaskArr[i].Split('|'); //1|0|0 if (int.Parse(taskInfo[0]) == tid) { if (int.Parse(taskInfo[1])>=trd.count) { taskInfo[1] = trd.count.ToString(); break; } else { int index = int.Parse(taskInfo[1]); index += 1; taskInfo[1] = index.ToString(); } PlayerData.TaskArr[i]= taskInfo[0] + "|" + taskInfo[1] + "|" + taskInfo[2]; NetTask netTask = new NetTask(); break; } } }
public PshTaskPrgs GetTaskPrgs(PlayerData pd, int tid) { TaskRewardData trd = CalcTaskRewardData(pd, tid); TaskRewardCfg trc = cfgSvc.GetTaskRewardCfg(tid); if (trd.prgs < trc.count) { trd.prgs += 1; // 更新任务进度 CalcTaskArr(pd, trd); return(new PshTaskPrgs { taskArr = pd.taskArr }); //ServerSession session = cacheSvc.GetOnlineServerSessions(pd.id); //if (session != null) //{ // session.SendMsg(new GameMsg // { // cmd = (int)CMD.PshTaskPrgs, // pshTaskPrgs = new PshTaskPrgs // { // taskArr = pd.taskArr // } // }); //} } else { return(null); } }
public void CalcTaskProgress(PlayerData playerData, int taskId) { TaskData taskData = CalcTaskRewardData(playerData, taskId); TaskRewardCfg taskDataCfg = configSvc.GetTaskRewardData(taskId); if (taskData.progress < taskDataCfg.count) { taskData.progress += 1; UpdateTaskProgress(playerData, taskData); //告诉客户端 ServerSession session = cacheSvc.GetSessionByPlayerID(playerData.id); if (session != null) { session.SendMsg(new NetMsg { cmd = (int)MsgCommand.Cmd_PshTaskProgress, pshTaskProgress = new PushTaskProgress { taskArr = playerData.taskReward } }); } } }
public void CalcTaskPrgs(PlayerData pd, int tid) { TaskRewardData trd = CalcTaskRewardData(pd, tid); TaskRewardCfg trc = cfgSvc.GetTaskRewardCfg(tid); if (trd.prgs < trc.count) { trd.prgs += 1; //更新任务进度 CalcTaskArr(pd, trd); ServerSession session = cacheSvc.GetOnlineServerSession(pd.id); if (session != null) { session.SendMsg(new GameMsg() { cmd = (int)CMD.PshTaskPrgs, pshTaskPrgs = new PshTaskPrgs() { taskArr = pd.taskArr } }); } } }
private void InitTaskRewardCfgData(string xmlPath) { TextAsset xmlText = Resources.Load <TextAsset>(xmlPath); if (!xmlText) { CommonTools.Log("xml file: " + PathDefine.cPath_RandomNameCfg + "not exits!", LogType.LogType_Error); return; } //开始解析xml文件 XmlDocument doc = new XmlDocument(); doc.LoadXml(xmlText.text); XmlNodeList nodeList = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodeList.Count; i++) { XmlElement element = nodeList[i] as XmlElement; if (element.GetAttributeNode("ID") == null) { continue; } int id = Convert.ToInt32(element.GetAttributeNode("ID").InnerText); TaskRewardCfg taskData = new TaskRewardCfg { ID = id, }; #region 遍历解析 foreach (XmlElement elem in nodeList[i].ChildNodes) { switch (elem.Name) { case "taskName": taskData.taskName = elem.InnerText; break; case "count": taskData.count = int.Parse(elem.InnerText); break; case "coin": taskData.coin = int.Parse(elem.InnerText); break; case "exp": taskData.exp = int.Parse(elem.InnerText); break; } } #endregion dictTaskRewardCfgData.Add(id, taskData); } }
/// <summary> /// 更新玩家数据的任务进度 /// </summary> /// <param name="pd">玩家数据</param> /// <param name="tid">进度id</param> public void CalcTaskPrgs(PlayerData pd, int tid) { TaskRewardData trd = CalcTaskRewardData(pd, tid); //获得玩家当前任务信息 TaskRewardCfg trc = cfgSvc.GetTaskRewardCfgData(tid); //获得任务模板 if (trd.prgs < trc.count) { //更新任务进度 trd.prgs++; CalcUpdatePlayerTaskArr(pd, trd); ServerSession session = cacheSvc.GetOnlineServerSession(pd.id); if (session != null) { session.SendMsg( new GameMsg { cmd = (int)CMD.PshTaskPrgs, pshTaskPrgs = new PshTaskPrgs { taskArr = pd.taskArr } } ); } } }
public void CalcTaskPrgs(PlayerData pd, int rid) { TaskRewardData trd = TaskSys.instance.GetTaskRewardData(pd, rid); TaskRewardCfg trcfg = CfgSvc.Instance.GetTaskRewardCfg(rid); if (trd.prgs < trcfg.count) { trd.prgs += 1; CalcTaskArr(pd, trd); ServerSession session = CacheSvc.Instance.GetServerSessionByID(pd.id); if (session != null) { GameMsg msg = new GameMsg { cmd = (int)CMD.PshTaskPrgs, pshTaskPrgs = new PshTaskPrgs { taskArr = pd.taskArr } }; session.SendMsg(msg); } } }
public TaskRewardCfg GetTaskRewardCfg(int id) { TaskRewardCfg trc = null; taskRewardDic.TryGetValue(id, out trc); return(trc); }
public void RefreshUI() { curTaskDataList.Clear(); verticalScrollBar.GetComponent <Scrollbar>().value = 1; for (int i = 0; i < itemGroupTrans.childCount; i++) { Destroy(itemGroupTrans.GetChild(i).gameObject); } List <TaskRewardData> todoList = new List <TaskRewardData>(); List <TaskRewardData> waitDoneList = new List <TaskRewardData>(); List <TaskRewardData> doneList = new List <TaskRewardData>(); for (int i = 0; i < playerData.taskArr.Length; i++) { string[] taskInfo = playerData.taskArr[i].Split('|'); TaskRewardData data = new TaskRewardData { ID = int.Parse(taskInfo[0]), progress = int.Parse(taskInfo[1]), taked = taskInfo[2].Equals("1"), }; if (data.taked == false) { if (data.progress == resSvc.GetTaskRewardCfg(data.ID).count) { waitDoneList.Add(data); } else { todoList.Add(data); } } else { doneList.Add(data); } } //将未完成任务、待领取任务与已完成任务按顺序加入列表 curTaskDataList.AddRange(waitDoneList); curTaskDataList.AddRange(todoList); curTaskDataList.AddRange(doneList); for (int j = 0; j < curTaskDataList.Count; j++) { GameObject itemTask = resSvc.LoadPrefab(PathDefine.ItemTaskPrefab); itemTask.transform.SetParent(itemGroupTrans); itemTask.transform.localPosition = Vector3.zero; itemTask.transform.localScale = Vector3.one; itemTask.name = "itemTask_" + j; TaskRewardData data = curTaskDataList[j]; TaskRewardCfg trf = resSvc.GetTaskRewardCfg(data.ID); itemTask.GetComponent <ItemTask>().RefreshUI(trf, data); } }
private void InitTaskRewardCfg(string path) { TextAsset xml = Resources.Load <TextAsset>(path); if (xml == false) { Debug.LogError(GetType() + "/InitTaskRewardCfg()/xml file:" + path + " not exist"); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); TaskRewardCfg trc = new TaskRewardCfg { ID = ID }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "taskName": trc.taskName = e.InnerText; break; case "coin": trc.coin = int.Parse(e.InnerText); break; case "exp": trc.exp = int.Parse(e.InnerText); break; case "count": trc.count = int.Parse(e.InnerText); break; } } taskRwdDic.Add(ID, trc); } } }
public TaskRewardCfg GetTaskRewardCfg(int ID) { TaskRewardCfg taskRewardCfg = null; if (taskRewardCfgDic.TryGetValue(ID, out taskRewardCfg)) { return(taskRewardCfg); } return(null); }
public TaskRewardCfg GetTaskRewardCfg(int id) { TaskRewardCfg taskRewardCfg = null; if (taskRewardCfgDicts.TryGetValue(id, out taskRewardCfg)) { return(taskRewardCfg); } return(null); }
public TaskRewardCfg GetTaskRewardCfg(int id) { TaskRewardCfg trc = null; if (taskDic.TryGetValue(id, out trc)) { return(trc); } return(null); }
public TaskRewardCfg GetTaskRewardCfg(int id) { TaskRewardCfg agc = null; if (taskRewardDic.TryGetValue(id, out agc)) { return(agc); } return(agc); }
private void LoadAssetSucessCallBack(string assetName, object asset, float duration, object userData) { GameObject go = asset as GameObject; int index = -1; if (!go || !int.TryParse(userData.ToString(), out index)) { Debug.LogError("Sprite:" + assetName + "资源不存在"); } else { go = Instantiate(go); go.transform.SetParent(scrollTrans); go.transform.localPosition = Vector3.zero; go.transform.localScale = Vector3.one; go.name = "taskItem_" + index; TaskRewardData trd = trdLst[index]; TaskRewardCfg trf = GameEntry.Res.GetTaskRewardCfg(trd.ID); SetText(GetTrans(go.transform, "txtName"), trf.taskName); SetText(GetTrans(go.transform, "txtPrg"), trd.prgs + "/" + trf.count); SetText(GetTrans(go.transform, "txtExp"), "奖励: 经验" + trf.exp); SetText(GetTrans(go.transform, "txtCoin"), "金币" + trf.coin); Image imgPrg = GetTrans(go.transform, "prgBar/prgVal").GetComponent <Image>(); float prgVal = trd.prgs * 1.0f / trf.count; imgPrg.fillAmount = prgVal; Button btnTake = GetTrans(go.transform, "btnTake").GetComponent <Button>(); btnTake.onClick.AddListener(() => { ClickTakeBtn(go.name); }); Transform transComp = GetTrans(go.transform, "imgComp"); if (trd.taked) { btnTake.interactable = false; SetActive(transComp); } else { SetActive(transComp, false); if (trd.prgs == trf.count) { btnTake.interactable = true; } else { btnTake.interactable = false; } } GameEntry.Resource.UnloadAsset(asset); } }
public TaskRewardCfg GetTaskRewardCfg(int id) { TaskRewardCfg cfg = null; if (taskRewardCfgDic.TryGetValue(id, out cfg)) { return(cfg); } NETCommon.Log("获取 TaskRewardCfg 失败,ID:" + id); return(null); }
/// <summary> /// 获取任务奖励 /// </summary> /// <param name="id"></param> /// <returns></returns> public TaskRewardCfg GetTaskRewardData(int id) { TaskRewardCfg data = null; if (_dictTaskRewardCfgData.TryGetValue(id, out data)) { return(data); } return(null); }
private void InitTaskRewardCfg(string assetName, object asset, float duration, object userData) { TextAsset xml = asset as TextAsset; if (!xml) { PECommon.Log("xml file:" + assetName + " not exist", LogType.Error); } else { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml.text); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); TaskRewardCfg trc = new TaskRewardCfg { ID = ID }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "taskName": trc.taskName = e.InnerText; break; case "count": trc.count = int.Parse(e.InnerText); break; case "exp": trc.exp = int.Parse(e.InnerText); break; case "coin": trc.coin = int.Parse(e.InnerText); break; } } taskRewareDic.Add(ID, trc); } } GameEntry.Resource.UnloadAsset(asset); }
private void ClickTakeBtn(string name) { string[] nameArr = name.Split('_'); int index = int.Parse(nameArr[1]); int taskId = trdLst[index].ID; m_TaskFormData.OnClickTakeTask(taskId); TaskRewardCfg trc = GameEntry.Res.GetTaskRewardCfg(trdLst[index].ID); int coin = trc.coin; int exp = trc.exp; GameEntry.UI.AddTips(Constants.Color("获得奖励:", TxtColor.Blue) + Constants.Color(" 金币 +" + coin + " 经验 +" + exp, TxtColor.Green)); }
public override void OnOperationResponse(OperationResponse operationResponse) { if (operationResponse.ReturnCode == (byte)ReturnCode.Success) { TaskRewardCfg trc = ResSvc.Instance.GetTaskRewardCfg(_tid); GameRoot.AddTips("任务奖励领取成功!金币+" + trc.coin + "--经验+" + trc.exp); ComTools.CalcExp(trc.exp); } NetGetPlayerData netGetPlayerData2 = new NetGetPlayerData(PlayerData.playerID, LoadPlayeDataOverCode.RefreshUIByTaskWnd); NetSvc.Instance.RemoveRequest(this); }
private void InitTaskCfgData() { XmlDocument xmlDocument = new XmlDocument(); xmlDocument.Load("D:\\UNITY\\DarkGod\\Assets\\Resources\\ResCfgs\\taskreward.xml"); XmlNodeList xmlNodeList = xmlDocument.SelectSingleNode("root")?.ChildNodes; for (int i = 0; i < xmlNodeList?.Count; i++) { XmlElement xmlElement = xmlNodeList[i] as XmlElement; if (xmlElement?.GetAttributeNode("ID") == null) { continue; } int id = Convert.ToInt32(xmlElement.GetAttributeNode("ID")?.InnerText); TaskRewardCfg taskCfg = new TaskRewardCfg { Id = id }; foreach (XmlElement e in xmlNodeList[i].ChildNodes) { switch (e.Name) { case "coin": taskCfg.Coin = int.Parse(e.InnerText); break; case "exp": taskCfg.Exp = int.Parse(e.InnerText); break; case "count": taskCfg.Count = int.Parse(e.InnerText); break; case "diamond": taskCfg.Diamond = int.Parse(e.InnerText); break; } } taskDictionary.Add(id, taskCfg); } PeRoot.Log("TaskRewardCfg Init Done.||日常任务数据配置."); }
public void ReqTaskReward(MsgPack msgPack) { ReqTaskReward data = msgPack.msg.reqTaskReward; GameMsg msg = new GameMsg() { cmd = (int)CMD.RspTaskReward }; PlayerData pd = cacheSvc.GetPlayerDataBySession(msgPack.session); //获得任务模板 TaskRewardCfg trc = cfgSvc.GetTaskRewardCfgData(data.taskId); //获得玩家当前任务信息 TaskRewardData trd = CalcTaskRewardData(pd, data.taskId); if ((trd.prgs == trc.count) && (!trd.taked)) { //任务进度完成,且奖励未被领取 pd.coin += trc.coin; PECommon.CalExp(pd, trc.exp); trd.taked = true; CalcUpdatePlayerTaskArr(pd, trd); if (!cacheSvc.UpdataPlayerData(pd.id, pd)) { //数据库写入失败 msg.err = (int)ErrorCode.UpdateDBError; } else { msg.rspTaskReward = new RspTaskReward { coin = pd.coin, exp = pd.exp, lv = pd.lv, taskArr = pd.taskArr }; } } else { //客户端数据异常 msg.err = (int)ErrorCode.ClientDataError; } msgPack.session.SendMsg(msg); }
private void InitTaskRewardCfgData() { //开始解析xml文件 XmlDocument doc = new XmlDocument(); doc.Load(@"..\..\..\Configs\taskreward.xml"); XmlNodeList nodeList = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodeList.Count; i++) { XmlElement element = nodeList[i] as XmlElement; if (element.GetAttributeNode("ID") == null) { continue; } int id = Convert.ToInt32(element.GetAttributeNode("ID").InnerText); TaskRewardCfg taskData = new TaskRewardCfg { ID = id, }; #region 遍历解析 foreach (XmlElement elem in nodeList[i].ChildNodes) { switch (elem.Name) { case "count": taskData.count = int.Parse(elem.InnerText); break; case "coin": taskData.coin = int.Parse(elem.InnerText); break; case "exp": taskData.exp = int.Parse(elem.InnerText); break; } } #endregion _dictTaskRewardCfgData.Add(id, taskData); } }
private void InitTaskRewardCfg(string path) { XmlDocument doc = new XmlDocument(); doc.Load(path); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); TaskRewardCfg trc = new TaskRewardCfg { ID = ID }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "count": trc.count = int.Parse(e.InnerText); break; case "coin": trc.coin = int.Parse(e.InnerText); break; case "exp": trc.exp = int.Parse(e.InnerText); break; } } taskRewardDic.Add(ID, trc); } Common.Log("TaskReward Cfg Init Done."); }
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); }
private void InitTaskRewardCfg(string path) { XmlNodeList nodList = null; if (TryGetRootNodeList(path, out nodList)) { for (int i = 0; i < nodList.Count; i++) { XmlElement ele = nodList[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); TaskRewardCfg rec = new TaskRewardCfg() { ID = ID }; foreach (XmlElement e in nodList[i].ChildNodes) { switch (e.Name) { case "taskName": rec.taskName = e.InnerText; break; case "count": rec.count = int.Parse(e.InnerText); break; case "coin": rec.coin = int.Parse(e.InnerText); break; case "exp": rec.exp = int.Parse(e.InnerText); break; } } taskRewardCfgDic.Add(ID, rec); } } }
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; } }
private void InitTaskRewardCfg() { XmlDocument doc = new XmlDocument(); doc.Load(@"D:\GitDirectory\暗黑战神\Assets\Resources\ResCfgs\taskreward.xml"); XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes; for (int i = 0; i < nodLst.Count; i++) { XmlElement ele = nodLst[i] as XmlElement; if (ele.GetAttributeNode("ID") == null) { continue; } int ID = Convert.ToInt32(ele.GetAttributeNode("ID").InnerText); TaskRewardCfg trc = new TaskRewardCfg() { id = ID }; foreach (XmlElement e in nodLst[i].ChildNodes) { switch (e.Name) { case "taskName": trc.taskName = e.InnerText; break; case "coin": trc.coin = int.Parse(e.InnerText); break; case "exp": trc.exp = int.Parse(e.InnerText); break; case "count": trc.count = int.Parse(e.InnerText); break; } } TaskDic.Add(ID, trc); } }
public void ReqTaskDataTake(MsgPack packMsg) { RequestTaskReward data = packMsg._msg.reqTaskReward; NetMsg netMsg = new NetMsg { cmd = (int)MsgCommand.Cmd_RspTaskReward, }; PlayerData playerData = cacheSvc.GetPlayerDataBySession(packMsg._session); TaskRewardCfg taskDataCfg = configSvc.GetTaskRewardData(data.taskId); TaskData taskData = CalcTaskRewardData(playerData, data.taskId); if (taskData.progress == taskDataCfg.count && !taskData.bTaked) { playerData.coin += taskDataCfg.coin; CommonTools.CalcExp(playerData, taskDataCfg.exp); taskData.bTaked = true; //更新任务进度数据 UpdateTaskProgress(playerData, taskData); //更新数据库 if (!cacheSvc.UpdatePlayerData(playerData.id, playerData)) { netMsg.err = (int)ErroCode.Error_UpdateDB; } else { ResponseTaskReward rspData = new ResponseTaskReward { coin = playerData.coin, lv = playerData.lv, exp = playerData.exp, taskArr = playerData.taskReward }; netMsg.rspTaskReward = rspData; } } else { netMsg.err = (int)ErroCode.Error_ClientData; } packMsg._session.SendMsg(netMsg); }