コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
        /// <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);
            }
        }