private RewardWrapper GetRewardWrapperByTaskRewardData(RewardItemDataWrap reward) { RewardWrapper rw = new RewardWrapper(); rw.m_num = reward.ItemNum; rw.m_id = 0; switch (reward.ItemType) { case RewardItemType.CASH: rw.m_icon = CommonHelper.GetOutputIconName(EUNM_BASE_REWARD.E_CASH); rewardCash += rw.m_num; break; case RewardItemType.COIN: rw.m_icon = CommonHelper.GetOutputIconName(EUNM_BASE_REWARD.E_COIN); rewardCoin += rw.m_num; break; case RewardItemType.EXP: rw.m_icon = CommonHelper.GetOutputIconName(EUNM_BASE_REWARD.E_EXP); rewardExp += rw.m_num; break; case RewardItemType.VIT: rw.m_icon = CommonHelper.GetOutputIconName(EUNM_BASE_REWARD.E_VIT); rewardVit += rw.m_num; break; case RewardItemType.ITEM: rw.m_id = reward.ItemID; rw.m_icon = ConfProp.Get(reward.ItemID).icon; break; } return(rw); }
/// <summary> /// 解析任务配置-任务奖励信息 /// </summary> /// <param name="taskConfig"></param> /// <returns></returns> private List <TaskCreaterParams> ParseTaskRewardInfo(ConfTask taskConfig) { List <TaskCreaterParams> taskCreaterParamList = new List <TaskCreaterParams>(); //称号奖励 if (taskConfig.rewardTitleId != 0) { TaskCreaterParams titleParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.TITLE, Data = taskConfig.rewardTitleId }; taskCreaterParamList.Add(titleParam); } //体力奖励 if (taskConfig.rewardVit != 0) { TaskCreaterParams vitParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.ITEM, Data = new RewardItemDataWrap() { ItemType = RewardItemType.VIT, ItemNum = taskConfig.rewardVit } }; taskCreaterParamList.Add(vitParam); } //金币奖励 if (taskConfig.rewardCoin != 0) { TaskCreaterParams coinParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.ITEM, Data = new RewardItemDataWrap() { ItemType = RewardItemType.COIN, ItemNum = taskConfig.rewardCoin } }; taskCreaterParamList.Add(coinParam); } //现金奖励 if (taskConfig.rewardCash != 0) { TaskCreaterParams cashParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.ITEM, Data = new RewardItemDataWrap() { ItemType = RewardItemType.CASH, ItemNum = taskConfig.rewardCash } }; taskCreaterParamList.Add(cashParam); } //经验奖励 if (taskConfig.rewardExp != 0) { TaskCreaterParams expParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.ITEM, Data = new RewardItemDataWrap() { ItemType = RewardItemType.EXP, ItemNum = taskConfig.rewardExp } }; taskCreaterParamList.Add(expParam); } //long chapter_id = GlobalInfo.MY_PLAYER_INFO.PlayerChapterSystem.CurrentChapterInfo.ChapterID; //ConfChapter chapter_data = ConfChapter.Get(chapter_id); //int jigsaw_idx = chapter_data.clueUnlockTaskIds.ToList().IndexOf(taskConfig.id); //if (jigsaw_idx >= 0) //{ // TaskCreaterParams expParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.CLUE, Data = new RewardClueDataWarp() { m_clueType = TaskClueMode.JIGSAW, m_png = chapter_data.clueIds[jigsaw_idx] } }; // taskCreaterParamList.Add(expParam); //} //int npc_idx = chapter_data.actorUnlockTaskIds.ToList().IndexOf(taskConfig.id); //if (npc_idx >= 0) //{ // TaskCreaterParams expParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.CLUE, Data = new RewardClueDataWarp() { m_clueType = TaskClueMode.NPC, m_id = chapter_data.actorIds[npc_idx] } }; // taskCreaterParamList.Add(expParam); //} //int scene_idx = chapter_data.sceneUnlockTaskIds.ToList().IndexOf(taskConfig.id); //if (scene_idx >= 0) //{ // TaskCreaterParams expParam = new TaskCreaterParams() { Condition = (int)TaskRewardMode.CLUE, Data = new RewardClueDataWarp() { m_clueType = TaskClueMode.SCENE, m_id = chapter_data.scenceIds[scene_idx] } }; // taskCreaterParamList.Add(expParam); //} //道具奖励 if (taskConfig.rewardPropIds.Length > 0 && taskConfig.rewardPropNums.Length > 0) { long[] rewardItemIds = taskConfig.rewardPropIds; int[] rewardItemNums = taskConfig.rewardPropNums; if (rewardItemIds.Length != rewardItemNums.Length) { Debug.LogError($"task {taskConfig.id} reward item error,item ids length {rewardItemIds.Length}, item nums length {rewardItemNums.Length}"); } for (int i = 0; i < rewardItemIds.Length; ++i) { RewardItemDataWrap rewardItemData = new RewardItemDataWrap() { ItemNum = rewardItemNums[i], ItemID = rewardItemIds[i], ItemType = RewardItemType.ITEM }; taskCreaterParamList.Add(new TaskCreaterParams() { Condition = (int)TaskRewardMode.ITEM, Data = rewardItemData }); } } return(taskCreaterParamList); }
/// <summary> /// 交任务相应 /// </summary> /// <param name="message"></param> private void OnCommitTask(object message) { SCTaskCommitResponse msg = message as SCTaskCommitResponse; if (!MsgStatusCodeUtil.OnError(msg.Result)) { TaskBase commitTaskInfo = this.m_playerTaskSet.GetTaskById(msg.TaskId); if (commitTaskInfo == null) { Debug.LogError($"commit task :{msg.TaskId} not found"); } GameEvents.TaskEvents.OnReceiveTask.SafeInvoke(commitTaskInfo); GameEvents.PlayerEvents.OnExpChanged.SafeInvoke(null, msg.Exp); commitTaskInfo.TaskCurrentStatus = TaskStatus.REWARDED; commitTaskInfo.TaskSyncStatus = TaskSyncStatus.SYNCED; if (this.m_currentTaskList.Contains(commitTaskInfo)) { this.m_currentTaskList.Remove(commitTaskInfo); } //同步玩家最新信息 GameEvents.PlayerEvents.RequestLatestPlayerInfo.SafeInvoke(); //同步背包 //GlobalInfo.MY_PLAYER_INFO.SyncPlayerBag(); NormalTask taskInfo = commitTaskInfo as NormalTask; for (int i = 0; i < taskInfo.RewardList.Count; ++i) { TaskRewardBase taskReward = taskInfo.RewardList[i]; TaskRewardMode taskRewardType = (taskReward.GetType().GetCustomAttributes(typeof(TaskRewardAttribute), true)[0] as TaskRewardAttribute).RewardMode; if (TaskRewardMode.ITEM == taskRewardType) { TaskRewardItem rewardItem = taskReward as TaskRewardItem; RewardItemDataWrap rewardItemData = rewardItem.RewardData; if (RewardItemType.ITEM == rewardItemData.ItemType) { GlobalInfo.MY_PLAYER_INFO.AddSingleBagInfo(rewardItemData.ItemID, rewardItemData.ItemNum); } } } GameEvents.UIEvents.UI_GameEntry_Event.Listen_OnCombinePropCollected.SafeInvoke(); //> BigWorldManager.Instance.EnterBigWorld(); GameEvents.TaskEvents.OnCompletedTask.SafeInvoke(msg.Result, commitTaskInfo); HttpPingModule.Instance.SendPing(); //TODO : 放在主界面onshow //if (C_FIRST_TASK_ID == commitTaskInfo.TaskConfID) //{ // SignInManager sm = new SignInManager(); //} } else { GameEvents.TaskEvents.OnSyncedTaskList.SafeInvoke(1); } }