------------------------------------------------ -- 作者: 王圣 -- 日期: 2021-03-19 -- 文件: LuaTestTask.lua -- 模块: LuaTestTask -- 描述: lua测试任务实例 ------------------------------------------------ -- 引用 local L_RewardData = require "Logic.TaskSystem.Data.TaskRewardData" local L_RecommendData = require "Logic.TaskSystem.Data.TaskRecommendData" local TaskBaseData = { Id = 0, MapId = 0, -- //任务目标地图id AccessNpcID = 0, -- //接取任务的NPC id SubmitNpcID = 0, -- //提交任务的NPC id SubType = 0, -- //任务子类型 IsAccess = false, -- //任务是否被接取 IsTransPort = true, -- //是否传送 默认true; PreRecommendId = 0, -- //前一推荐活动id IsShowRecommend = false, -- //是否显示推荐 IsRecommendChange = false, -- //推荐是否改变 Name = nil, -- //任务名字 Des = nil, -- //任务描述 UiDes = nil, -- //ui上的任务描述 TargetDes = nil, -- //任务目标描述 TypName = nil, -- //类型名字 PromptStr = nil, Type = TaskType.Default, -- //任务主类型 Behavior = TaskBeHaviorType.Default, -- //任务行为 Sort = TaskSort.Default, RewardList = List:New(), -- //奖励道具 ShowList = List:New(), RecommendList = List:New(), IconId = 0, -- //任务转圈iconid IsIgnoLimit = false, --是否不管战力限制 CanItemTeleport = nil, --是否可以使用小飞鞋 } function TaskBaseData:New() local _m = Utils.DeepCopy(self) return Utils.DeepCopy(self); end function TaskBaseData:SetData(id, type, accessNpcID, submitNpcID, isAccess, beType, name, des, targetDes, reward, mapID, equipReward, showStr, isTransPort) id = id == nil and 0 or id type = type == nil and 0 or type accessNpcID = accessNpcID == nil and 0 or accessNpcID if isAccess == nil then isAccess = false end beType = beType == nil and 0 or beType name = name == nil and "" or name des = des == nil and "" or des targetDes = targetDes == nil and "" or targetDes reward = reward == nil and "" or reward mapID = mapID == nil and 0 or mapID equipReward = equipReward == nil and "" or equipReward showStr = showStr == nil and "" or showStr if isTransPort == nil then isTransPort = false end self.Id = id; self.Type = type; self.AccessNpcID = accessNpcID; self.SubmitNpcID = submitNpcID; self.IsAccess = isAccess; self.Behavior = beType; self.Name = name; self.Des = des; self.TargetDes = targetDes; self.MapId = mapID; self.IsTransPort = isTransPort; self:SetAwardData(reward); if equipReward ~= nil and equipReward ~= "" then self:SetEquipAwardData(equipReward); end if showStr ~= nil and showStr ~= "" then self:SetShowAwardData(showStr); end end function TaskBaseData:SetDataEx(data) data.Id = self.Id; data.Type = self.Type; data.AccessNpcID = self.AccessNpcID; data.SubmitNpcID = self.SubmitNpcID; data._isAccess = self.IsAccess; data.Behavior = self.Behavior; data.Name = self.Name; data.Des = self.Des; data.TargetDes = self.TargetDes; end function TaskBaseData:GetMapName() local _ret = nil if self.Type == TaskType.ZhanChang then local _cfg = DataConfig.DataCloneMap[self.MapId] if _cfg ~= nil then _ret = _cfg.TypeName; end else local _cfg = DataConfig.DataCloneMap[self.MapId] if _cfg ~= nil then _ret = _cfg.Name; end end return _ret; end -- 设置任务奖励道具数据 function TaskBaseData:SetAwardData(str) local _strs = Utils.SplitStr(str, ';') for i = 1, #_strs do local _params = Utils.SplitStr(_strs[i], '_'); local _bind = 0; if #_params == 3 then _bind = tonumber(_params[3]) end local _id = tonumber(_params[1]); local _num = tonumber(_params[2]); local _data = L_RewardData:New(); _data.ID = _id; _data.Num = _num; _data.IsBind = _bind == 1 and true or false; self.RewardList:Add(_data); end end -- 设置装备奖励数据 function TaskBaseData:SetEquipAwardData(str) local _playerOcc = GameCenter.GameSceneSystem:GetLocalPlayer().IntOcc; local _list = Utils.SplitStr(str, ';') if _list ~= nil then for i = 1, #_list do local _params = Utils.SplitStr(_list[i], '_'); if #_params == 3 then local _occ = tonumber(_params[1]) if _playerOcc == _occ then local _data = L_RewardData:New(); _data.ID = tonumber(_params[2]); _data.Num = tonumber(_params[3]); self.RewardList:Add(_data); end end end end end -- 添加要展示的装备 function TaskBaseData:SetShowAwardData(str) local _playerOcc = GameCenter.GameSceneSystem:GetLocalPlayer().IntOcc; local _occParams = Utils.SplitStr(str, ';') if _occParams ~= nil then for i = 1, #_occParams do local _infoParams = Utils.SplitStr(_occParams[i], '_'); local _type = tonumber(_infoParams[1]); if _type == _playerOcc then local _data = L_RewardData:New(); _data.ID = tonumber(_infoParams[2]); _data.Num = tonumber(_infoParams[3]); _data.ShowSize = tonumber(_infoParams[4]); _data.Name = _infoParams[5]; self.ShowList:Add(_data); break end end end end function TaskBaseData:GetTargetId() end return TaskBaseData