Ejemplo n.º 1
0
        /// <summary>
        /// 解析任务配置-任务触发条件
        /// </summary>
        /// <param name="taskConfig"></param>
        /// <returns></returns>
        private List <TaskCreaterParams> ParseTaskTriggerConditions(ConfTask taskConfig)
        {
            List <TaskCreaterParams> taskTriggerCreaterParamList = new List <TaskCreaterParams>();
            TaskCreaterParams        triggerParam = new TaskCreaterParams()
            {
                Condition = taskConfig.triggerKey, Data = taskConfig.triggerValue
            };

            taskTriggerCreaterParamList.Add(triggerParam);

            return(taskTriggerCreaterParamList);
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 解析任务配置-任务完成条件
        /// </summary>
        /// <param name="taskConfig"></param>
        /// <returns></returns>
        private List <TaskCreaterParams> ParseTaskCompleteConditions(ConfTask taskConfig)
        {
            List <TaskCreaterParams> taskCompleteCondition = new List <TaskCreaterParams>();

            if (taskConfig.conditionLevel > 0)
            {
                taskCompleteCondition.Add(new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompleteByLevel, Data = taskConfig.conditionLevel
                });
            }

            if (taskConfig.conditionSceneId > 0)
            {
                taskCompleteCondition.Add(new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompletedBySceneID, Data = taskConfig.conditionSceneId
                });
            }

            if (taskConfig.conditionDialogueId > 0)
            {
                taskCompleteCondition.Add(new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompletedByDialog, Data = taskConfig.conditionDialogueId
                });
            }

            if (taskConfig.conditionReasoningId > 0)
            {
                taskCompleteCondition.Add(new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompleteByReasonID, Data = taskConfig.conditionReasoningId
                });
            }

            if (taskConfig.conditionPropExIds.Length > 0)
            {
                long[] itemIds = taskConfig.conditionPropExIds;

                TaskCreaterParams taskCreaterParams = new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompleteByCombinePropID, Data = itemIds
                };
                taskCompleteCondition.Add(taskCreaterParams);
            }

            //if (taskConfig.condition > 0)
            //    taskCompleteCondition.Add(new TaskCreaterParams() { Condition = (int)TaskCompleteMode.CompleteByReasonID, Data = taskConfig.conditionReasoningId });

            if (taskConfig.conditionFindId > 0)
            {
                taskCompleteCondition.Add(new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompleteByScanID, Data = taskConfig.conditionFindId
                });
            }

            //if (taskConfig.conditionEventId > 0)
            //    taskCompleteCondition.Add(new TaskCreaterParams() { Condition = (int)TaskCompleteMode.CompletedByEvents, Data = taskConfig.conditionEventId });


            if (taskConfig.conditionPropIds.Length > 0 && taskConfig.conditionPropNums.Length > 0)
            {
                long[] itemIds  = taskConfig.conditionPropIds;
                long[] itemNums = new long[taskConfig.conditionPropNums.Length];
                Array.Copy(taskConfig.conditionPropNums, itemNums, itemNums.Length);

                if (itemIds.Length != itemNums.Length)
                {
                    Debug.LogWarning($"task: {taskConfig.id} error ,complete item nums error,item id:{itemIds.Length} ,item nums :{itemNums.Length}");

                    if (itemNums.Length > itemIds.Length)
                    {
                        itemNums = new ArraySegment <long>(itemNums, 0, itemIds.Length).Array;
                    }
                    else if (itemNums.Length < itemIds.Length)
                    {
                        long[] itemNumsCompatibility = new long[itemIds.Length];
                        Array.Copy(itemNums, itemNumsCompatibility, itemNums.Length);

                        for (int i = itemNums.Length - 1; i < itemIds.Length; ++i)
                        {
                            itemNumsCompatibility[i] = itemNums[itemNums.Length - 1];
                        }

                        itemNums = itemNumsCompatibility;
                    }
                }

                TaskCreaterParams taskCreaterParams = new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompletedByItem, Data = new List <long[]> {
                        itemIds, itemNums
                    }
                };
                taskCompleteCondition.Add(taskCreaterParams);
            }
            else if (taskConfig.conditionExhibits.Length > 0 && taskConfig.conditionExhibitsNum.Length > 0)
            {
                long[] itemIds  = taskConfig.conditionExhibits;
                long[] itemNums = new long[taskConfig.conditionExhibitsNum.Length];
                Array.Copy(taskConfig.conditionExhibitsNum, itemNums, itemNums.Length);

                if (itemIds.Length != itemNums.Length)
                {
                    Debug.LogError($"task: {taskConfig.id} error ,complete exhibit nums error,item id:{itemIds.Length} ,item nums :{itemNums.Length}");
                }

                TaskCreaterParams taskCreaterParams = new TaskCreaterParams()
                {
                    Condition = (int)TaskCompleteMode.CompletedByItem, Data = new List <long[]> {
                        itemIds, itemNums
                    }
                };
                taskCompleteCondition.Add(taskCreaterParams);
            }

            return(taskCompleteCondition);
        }