public override void Info(object obj) { if (obj == null) { } else { vo = (EveryTaskData)obj; } }
void QianWang() { //如果当前玩家正在采集或者送信 读进度条就返回 TaskOperation.Single().clearEvent(); if (taskData.taskType == TaskClass.Reward) { if (Singleton <SceneManage> .Instance.Current == EnumSceneID.UI_MajorCity01 || Singleton <SceneManage> .Instance.Current == EnumSceneID.LGhuangyuan) { //UIActivities.Instance.ChangeIndex(1); //Control.ShowGUI(GameLibrary.UIActivities); EveryTaskData data = playerData.GetInstance() .taskDataList.itList.Find( x => x.state == (int)TaskProgress.Accept);//|| x.state == (int)TaskProgress.Complete if (data != null && data.state == (int)TaskProgress.Accept) { UIActivitiesManager.Instance.RewardTaskOperate(data); } } if (Singleton <SceneManage> .Instance.Current == EnumSceneID.UI_MajorCity01) { EveryTaskData data = playerData.GetInstance() .taskDataList.itList.Find( x => x.state == (int)TaskProgress.Complete);//|| x.state == (int)TaskProgress.Complete if (data != null && data.state == (int)TaskProgress.Complete) { Control.ShowGUI(UIPanleID.UIActivities, EnumOpenUIType.OpenNewCloseOld, false, 1); } } if (Singleton <SceneManage> .Instance.Current == EnumSceneID.LGhuangyuan) { EveryTaskData data = playerData.GetInstance() .taskDataList.itList.Find( x => x.state == (int)TaskProgress.Complete);//|| x.state == (int)TaskProgress.Complete if (data != null && data.state == (int)TaskProgress.Complete) { Control.ShowGUI(UIPanleID.UITooltips, EnumOpenUIType.DefaultUIOrSecond, false, "请返回主城,提交悬赏任务"); } } } else { if (taskData.taskItem.tasknode.Level <= playerData.GetInstance().selfData.level) { //追踪的时候需要掉接口 TaskOperation.Single().SetCurrentTaskItem(taskItem); } else { Control.ShowGUI(UIPanleID.UITooltips, EnumOpenUIType.DefaultUIOrSecond, false, "需战队等级达到" + taskData.taskItem.tasknode.Level + "级才可领取"); } } }
/// <summary> /// 创建人物追的数据 /// </summary> /// <param name="voo"></param> /// <returns></returns> public TaskData CreatTaskData(EveryTaskData voo) { this.vo = voo; TaskData taskData = new TaskData(); taskData.taskState = TaskProgress.Accept; taskData.taskType = TaskClass.Reward; taskData.title = "[悬]:" + voo.taskName; taskData.content = Singleton <UIActivitiesManager> .Instance.GetTaskItemType(voo, voo.type); return(taskData); }
/// <summary> /// 处理悬赏人任务列表数据 /// </summary> /// <param name="data"></param> public void RewardListHandler(Dictionary <string, object> data) { if (data.ContainsKey("misinfo")) { object[] mState = data["misinfo"] as object[]; if (mState != null) { playerData.GetInstance().taskDataList.itList.Clear(); if (data.ContainsKey("rtms")) { playerData.GetInstance().taskDataList.getCount = int.Parse(data["rtms"].ToString()); } if (data.ContainsKey("utms")) { playerData.GetInstance().taskDataList.refreshCount = int.Parse(data["utms"].ToString()); } for (int i = 0; i < mState.Length; i++) { EveryTaskData taskData = new EveryTaskData(); object[] lt = mState[i] as object[]; taskData.id = int.Parse(lt[1].ToString()); taskData.countIndex = int.Parse(lt[5].ToString()); taskData.state = int.Parse(lt[4].ToString()); taskData.star = int.Parse(lt[10].ToString()); if (taskData.id != 0) { if (FSDataNodeTable <RewardTaskNode> .GetSingleton().DataNodeList.ContainsKey(taskData.id)) { RewardTaskNode dailyTasksNode = FSDataNodeTable <RewardTaskNode> .GetSingleton().FindDataByType(taskData.id); taskData.count = dailyTasksNode.count; taskData.des = dailyTasksNode.des; taskData.taskListDes = dailyTasksNode.taskListdes; taskData.iconName = dailyTasksNode.iconName; taskData.taskName = dailyTasksNode.taskName; taskData.useprops_id = dailyTasksNode.useprops_id; taskData.type = dailyTasksNode.type; taskData.taskTarget = dailyTasksNode.task_target; taskData.mapId = dailyTasksNode.mapId; playerData.GetInstance().taskDataList.itList.Add(taskData); } } } //if (Singleton<SceneManage>.Instance.Current == EnumSceneID.UI_MajorCity01 && UITaskTracker.instance.IsShow() || Singleton<SceneManage>.Instance.Current == EnumSceneID.LGhuangyuan && UITaskTracker.instance.IsShow()) //{ // UITaskTracker.instance.GetRewardData(); //} } } }
/// <summary> /// 获取悬赏任务 /// </summary> public void GetRewardData() { EveryTaskData data = playerData.GetInstance() .taskDataList.itList.Find( x => x.state == (int)TaskProgress.Accept || x.state == (int)TaskProgress.Complete); if (data != null) { TaskData td = UIActivitiesManager.Instance.CreatTaskData(data); ChangeTaskList(td, TaskListHandleType.AddOrUpdata); } else { TaskData td = taskDataList.Find(x => x.taskType == TaskClass.Reward); ChangeTaskList(td, TaskListHandleType.Delet); } }
/// <summary> /// 用于任务追踪执行操作 /// </summary> /// <param name="vo"></param> public void RewardTaskOperate(EveryTaskData vo) { switch ((TaskType)vo.type) { case TaskType.Dialogue: break; case TaskType.PassCopy: break; case TaskType.Collect: TaskAutoTraceManager._instance.MoveToTargetPosition(vo.taskTarget, TaskMoveTarget.MoveToCollectPos, vo.mapId); break; case TaskType.UpgradeSkillLv: break; case TaskType.UpgradeHeroEquipLv: break; case TaskType.KillMonster: TaskAutoTraceManager._instance.MoveToTargetPosition(vo.taskTarget, TaskMoveTarget.MoveToMonsterPos, vo.mapId); break; case TaskType.KillDropSth: break; case TaskType.knapsackItem: break; case TaskType.NamedPComplete: //TaskAutoTraceManager._instance.MoveToTargetPosition(vo.taskTarget, TaskMoveTarget.MoveToNpc, vo.mapId); TaskOperation.Single().MoveToNpc((int)vo.taskTarget, TaskOperation.MoveToNpcType.RewardSendLetter); break; case TaskType.KillTempMonster: break; case TaskType.KillPerson: break; } }
private void RewardOpenUseItemPanel(long npcid) { EveryTaskData data = playerData.GetInstance().taskDataList.itList.Find(x => (TaskType)x.type == TaskType.NamedPComplete); if (data != null) { for (int i = 0; i < playerData.GetInstance().taskDataList.itList.Count; i++) { if (playerData.GetInstance().taskDataList.itList[i].state == (int)TaskProgress.Accept) { data = playerData.GetInstance().taskDataList.itList[i]; Debug.Log("展示使用道具面板"); //UITaskUseItemPanel.Instance.SetTaskID(data.useprops_id, TaskClass.Reward); //Control.ShowGUI(GameLibrary.UITaskUseItemPanel); object[] tempObj = new object[] { data.useprops_id, TaskClass.Reward }; Control.ShowGUI(UIPanleID.UITaskUseItemPanel, EnumOpenUIType.DefaultUIOrSecond, false, tempObj); return; } } } }
void Update() { if (isStart) { progressBar.currentValue += 1 / dutiaoTime * Time.deltaTime * progressBar.maxValue; //progressBar.currentValue += 1 / 2.0f * Time.deltaTime * progressBar.maxValue; if (progressBar.currentValue >= progressBar.maxValue) { progressBar.currentValue = progressBar.maxValue; isStart = false; if (this.taskPBType == TaskProgressBarType.Collect) { for (int i = 0; i < playerData.GetInstance().taskDataList.itList.Count; i++) { if (playerData.GetInstance().taskDataList.itList[i].type == (int)TaskType.Collect) { long id = UIActivitiesManager.Instance.GetCollectItemID( playerData.GetInstance().taskDataList.itList[i].taskTarget); if (id == collectgoodsID) { ClientSendDataMgr.GetSingle().GetTaskSend().SendCompleteGatherTask(C2SMessageType.Active, i, collectgoodsID, 1, 1);//采集一次 就获得一个采集物品 TaskManager.Single().isCollecting = false; } } } foreach (int id in TaskManager.Single().TaskToCaijiDic.Keys) { if (TaskManager.Single().TaskToCaijiDic[id].opt4 == collectgoodsID) { //if (TaskManager.Single().TaskItemCountsDic.ContainsKey(collectgoodsID)) //{ // Debug.LogError(TaskManager.Single().TaskItemCountsDic[collectgoodsID] + "...." + TaskManager.Single().TaskToCaijiDic[id].opt5); // //有采集任务,但是采集数量已经够了 也不进行采集 // if (TaskManager.Single().TaskItemCountsDic[collectgoodsID] < TaskManager.Single().TaskToCaijiDic[id].opt5) // { // Debug.Log("再次采集:发送采集协议"); // ClientSendDataMgr.GetSingle().GetTaskSend().SendCompleteGatherTask(C2SMessageType.Active, TaskManager.Single().TaskToCaijiDic[id].taskId, TaskManager.Single().TaskToCaijiDic[id].opt4, 1);//采集一次 就获得一个采集物品 // } // else // { // Debug.Log("采集数量已满足"); // } //} //else//还没有采集数量的时候肯定发 //{ // Debug.Log("第一次采集:发送采集协议"); // ClientSendDataMgr.GetSingle().GetTaskSend().SendCompleteGatherTask(C2SMessageType.Active, TaskManager.Single().TaskToCaijiDic[id].taskId, TaskManager.Single().TaskToCaijiDic[id].opt4, 1);//采集一次 就获得一个采集物品 //} Debug.Log("第一次采集:发送采集协议"); ClientSendDataMgr.GetSingle().GetTaskSend().SendCompleteGatherTask(C2SMessageType.Active, TaskManager.Single().TaskToCaijiDic[id].taskId, TaskManager.Single().TaskToCaijiDic[id].opt4, 1, 0);//采集一次 就获得一个采集物品 TaskManager.Single().isCollecting = false; } if (TaskManager.Single().TaskToCaijiDic[id].opt6 == collectgoodsID) { Debug.Log("第一次采集:发送采集协议"); ClientSendDataMgr.GetSingle().GetTaskSend().SendCompleteGatherTask(C2SMessageType.Active, TaskManager.Single().TaskToCaijiDic[id].taskId, TaskManager.Single().TaskToCaijiDic[id].opt6, 1, 0);//采集一次 就获得一个采集物品 TaskManager.Single().isCollecting = false; } } } else if (this.taskPBType == TaskProgressBarType.SendLetter) { if (taskClass == TaskClass.Main) { if (fubenTaskData != null) { if (TaskManager.NpcTaskListDic.ContainsKey((int)fubenTaskData.opt5)) { int taskID = 0; foreach (int key in TaskManager.NpcTaskListDic[(int)fubenTaskData.opt5].Keys) { taskID = key; } Debug.Log("发送给予信件协议"); ClientSendDataMgr.GetSingle().GetTaskSend().ClickNpc((int)fubenTaskData.opt5, taskID, TaskManager.NpcTaskListDic[(int)fubenTaskData.opt5][taskID].parm0, 0); } } } else if (taskClass == TaskClass.Reward) { EveryTaskData data = playerData.GetInstance().taskDataList.itList.Find(x => (TaskType)x.type == TaskType.NamedPComplete); if (data != null) { for (int i = 0; i < playerData.GetInstance().taskDataList.itList.Count; i++) { if (playerData.GetInstance().taskDataList.itList[i].state == (int)TaskProgress.Accept) { ClientSendDataMgr.GetSingle().GetTaskSend().ClickNpc(0, 0, 0, 2); } } } } } Control.HideGUI(this.GetUIKey()); //Hide(); ClearData(); } } }
/// <summary> /// 处理日常任务的数据 /// </summary> /// <param name="data"></param> public void DailyHandler(Dictionary <string, object> data) { playerData.GetInstance().taskDataList.itemList.Clear(); object[] missionlist = data["misinfo"] as object[]; //读取日常列表的所有数据 foreach (var value in FSDataNodeTable <DailyTasksNode> .GetSingleton().DataNodeList.Values) { EveryTaskData taskData = new EveryTaskData(); taskData.released = value.released; if (taskData.released != 0) { taskData.unlockSystem = value.unlockSystem; if (taskData.unlockSystem == 0) { taskData.id = value.id; taskData.active = value.active; taskData.count = value.count; taskData.state = 0; taskData.countIndex = 0; taskData.activeIndex = 0; taskData.des = value.des; taskData.deblockingDes = ""; taskData.iconName = value.iconName; taskData.leave_for = value.leave_for; taskData.scriptId = value.scriptId; taskData.type = value.type; taskData.open = 0; taskData.taskName = value.taskName; playerData.GetInstance().taskDataList.itemList.Add(taskData); } else { if (FSDataNodeTable <UnLockFunctionNode> .GetSingleton().DataNodeList.ContainsKey(taskData.unlockSystem)) { UnLockFunctionNode Node = FSDataNodeTable <UnLockFunctionNode> .GetSingleton().FindDataByType(taskData.unlockSystem); taskData.id = value.id; taskData.active = value.active; taskData.count = value.count; taskData.state = 0; taskData.countIndex = 0; taskData.activeIndex = 0; taskData.des = value.des; taskData.deblockingDes = Node.limit_tip; taskData.iconName = value.iconName; taskData.leave_for = value.leave_for; taskData.scriptId = value.scriptId; taskData.type = value.type; int a = Node.unlock_system_type; if (a == 1) { taskData.open = Node.condition_parameter; } else { taskData.open = 0; } taskData.taskName = value.taskName; playerData.GetInstance().taskDataList.itemList.Add(taskData); } } } } //根据服务器发送的日常列表进行状态重置 for (int i = 0; i < missionlist.Length; i++) { int[] taskDataDic = missionlist[i] as int[]; int ID = taskDataDic[0]; if (ID != 0) { EveryTaskData taskServerData = playerData.GetInstance().taskDataList.itemList.Find(x => x.id == ID); if (taskServerData != null) { taskServerData.state = taskDataDic[1]; taskServerData.countIndex = taskDataDic[2]; } } } if (playerData.GetInstance().taskDataList.itemList.Count > 0) { List <EveryTaskData> itemLt = new List <EveryTaskData>(); var a = playerData.GetInstance().taskDataList.itemList.FindAll(x => x.state == (int)TaskProgress.Complete); itemLt.AddRange(a); var b = playerData.GetInstance().taskDataList.itemList.FindAll(x => x.state == (int)TaskProgress.NoAccept); itemLt.AddRange(b); var c = playerData.GetInstance().taskDataList.itemList.FindAll(x => x.state == (int)TaskProgress.CantAccept); c.Sort((x, y) => x.open - y.open); itemLt.AddRange(c); var d = playerData.GetInstance().taskDataList.itemList.FindAll(x => x.state == (int)TaskProgress.Reward); itemLt.AddRange(d); playerData.GetInstance().taskDataList.itemList.Clear(); playerData.GetInstance().taskDataList.itemList.AddRange(itemLt); itemLt.Clear(); } //if (playerData.GetInstance().taskDataList.itemList.Count > 0) //{ // if (Singleton<SceneManage>.Instance.Current == EnumSceneID.UI_MajorCity01 && UIActivities.Instance.IsShow()) // { // UIActivities.Instance.RefreshUI(); // } //} Singleton <Notification> .Instance.ReceiveMessageList(MessageID.common_ask_daily_mission_req); }
///根据类型取任务描述 public string GetTaskItemType(EveryTaskData vo, int type) { if (vo.countIndex > vo.count) { vo.countIndex = vo.count; Debug.Log("服务器发来的数据错误,当前数量超出总数"); } switch ((TaskType)vo.type) { case TaskType.Dialogue: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.PassCopy: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.Collect: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.UpgradeSkillLv: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.UpgradeHeroEquipLv: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.KillMonster: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.KillDropSth: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.knapsackItem: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.NamedPComplete: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.KillTempMonster: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; case TaskType.KillPerson: return(vo.taskListDes + "(" + vo.countIndex + "/" + vo.count + ")"); break; default: return(null); } }
//点击采集物 void OnMouseDown() { //if ((UICamera.selectedObject != null && UICamera.selectedObject.transform.name == "UI Root") || (UICamera.hoveredObject != null && UICamera.hoveredObject.transform.name == "UI Root") || (UICamera.selectedObject != null && UICamera.selectedObject.transform.name == "UI Root(Clone)") || (UICamera.hoveredObject != null && UICamera.hoveredObject.transform.name == "UI Root(Clone)")) //{ if (UICamera.hoveredObject == null || UICamera.hoveredObject && UICamera.hoveredObject.gameObject.name == "UI Root" || UICamera.hoveredObject && UICamera.hoveredObject.gameObject.name == "UI Root(Clone)") { EveryTaskData data = playerData.GetInstance().taskDataList.itList.Find(x => (TaskProgress)x.state == TaskProgress.Accept); if (data != null) { if (data.type != (int)TaskType.Collect) { data = null; } } if (TaskManager.Single().TaskToCaijiDic.Count > 0 || data != null) { if (TaskManager.Single().isCollecting) { Debug.Log("正在采集请稍等"); return; } if (!TaskManager.Single().isCollecting) { TaskManager.Single().isCollecting = true; } if (data != null) { if (data.countIndex >= data.count) { Debug.Log("有悬赏采集任务 采集数量已满足 "); TaskManager.Single().isCollecting = false; rewardCanCollect = false; } else { rewardCanCollect = true; } } if (FSDataNodeTable <CollectNode> .GetSingleton().DataNodeList.ContainsKey(collectID)) { //通过采集源id 得到采集物的id 用于发给服务器 long[,] collectid = FSDataNodeTable <CollectNode> .GetSingleton().DataNodeList[collectID].collectid; foreach (int id in TaskManager.Single().TaskToCaijiDic.Keys) { if (TaskManager.Single().TaskToCaijiDic[id].opt4 == collectid[0, 0]) { if (TaskManager.Single().TaskItemCountsDic.ContainsKey(collectid[0, 0])) { //有采集任务,但是采集数量已经够了 也不进行采集 if (TaskManager.Single().TaskItemCountsDic[collectid[0, 0]] >= TaskManager.Single().TaskToCaijiDic[id].opt5) { Debug.Log("有采集任务 采集数量已满足 "); TaskManager.Single().isCollecting = false; mainTaskCanCollect = false; //数量够了不能采集 } else { mainTaskCanCollect = true; } } else//数量中没有 肯定可以采 { mainTaskCanCollect = true; } } if (TaskManager.Single().TaskToCaijiDic[id].opt6 == collectid[0, 0]) { if (TaskManager.Single().TaskItemCountsDic.ContainsKey(collectid[0, 0])) { //有采集任务,但是采集数量已经够了 也不进行采集 if (TaskManager.Single().TaskItemCountsDic[collectid[0, 0]] >= TaskManager.Single().TaskToCaijiDic[id].opt7) { Debug.Log("有采集任务 采集数量已满足"); TaskManager.Single().isCollecting = false; mainTaskCanCollect = false;//数量够了不能采集 } else { mainTaskCanCollect = true; } } else { mainTaskCanCollect = true; } } } if (TaskManager.MainTask != null) { if (TaskManager.MainTask.tasknode.Level > playerData.GetInstance().selfData.level) { Debug.Log("等级不足"); TaskManager.Single().isCollecting = false; mainTaskCanCollect = false;//数量够了不能采集 } } //UITaskCollectPanel.Instance.SetData(FSDataNodeTable<CollectNode>.GetSingleton().DataNodeList[collectID].note, 2f, collectid[0, 0], TaskProgressBarType.Collect, null,TaskClass.Main); } if (mainTaskCanCollect || rewardCanCollect) { Debug.Log("有采集任务 点击采集" + collectID); if (FSDataNodeTable <CollectNode> .GetSingleton().DataNodeList.ContainsKey(collectID)) { //通过采集源id 得到采集物的id 用于发给服务器 long[,] collectidarr = FSDataNodeTable <CollectNode> .GetSingleton().DataNodeList[collectID].collectid; object[] tempObj = new object[] { FSDataNodeTable <CollectNode> .GetSingleton().DataNodeList[collectID].note, 2f, collectidarr[0, 0], TaskProgressBarType.Collect, null, TaskClass.Main }; Control.ShowGUI(UIPanleID.UITaskCollectPanel, EnumOpenUIType.DefaultUIOrSecond, false, tempObj); } //Control.ShowGUI(GameLibrary.UITaskCollectPanel); } else { TaskManager.Single().isCollecting = false; } } else { Debug.Log("无采集任务 不采集 "); } } }