GuideModel = GuideModel or BaseClass(BaseModel) --[[ 引导说明, 现在用到支持同时存在多个 对于NEW_FUNC_OPEN之类这种不保存在cookie,可以取GetCurHelpVo获取当前触发的引导 对于HORSE_TYPE之类要保存在cookie的,用GetHelpVo获取该类型的引导 ]] --引导触发类型 GuideModel.LEVEL_TRIGGER_TYPE = 1 GuideModel.TASK_TRIGGER_TYPE = 2 GuideModel.WEAPON_TASK_ID = 10020 --采集武器任务id GuideModel.MONSTER_TASK_ID = 10000101 --三连打怪任务id GuideModel.MONSTER_ID = 1001000 --三连打怪怪物id GuideModel.VIP_EXPERIENCE_ID = 102008 --vip体验id GuideModel.VIP_EXPERIENCE_ID2 = 102036 --vip体验id2 GuideModel.WeaponMonster = 10000020 --武器采集怪 GuideModel.WingMonster = 1002302 --翅膀采集怪 GuideModel.SpiritBgId = 501001 --星灵唤醒背景模型id GuideModel.SpiritId = 501002 --星灵唤醒模型id GuideModel.ExtendTaskId = 2080101 --装备精炼支线Id GuideModel.CHANGE_GOD_ID = 1001 GuideModel.CHANGE_GOD_SCENE_ID = 10000 --变身降神场景 GuideModel.CHANGE_GOD_ANGER_DOT = 3000 --变身降神最大怒气值 GuideModel.STAR_HIT_SKILL_DUN_ID = 3002 --星灵羁绊技能引导副本Id GuideModel.GodUseMaxEffectLevel = 50 --将神使用大特效的等级 GuideModel.MONSTER_COLLECT = { --因为只有一只,做成假采集,不然会和其他人抢 [10000020] = 10020, --武器 [10020023] = 10300, --坐骑 } GuideModel.SCENE_ID = 1001 GuideModel.MARRIAGE_ADVERTISE = 10050 --直接执行引导 GuideModel.DIRECT_EXECUTE_HELPER = "GuideModel.DIRECT_EXECUTE_HELPER" --社团引导 GuideModel.NOT_PASS_APPLY_GUIDE = "GuideModel.NOT_PASS_APPLY_GUIDE" --执行终身引导 GuideModel.EXECUTE_LIFELONG_HELPER = "GuideModel.EXECUTE_LIFELONG_HELPER" --终身引导事件变更 GuideModel.REQ_LIFELONG_HELPER_CHANGE = "GuideModel.REQ_LIFELONG_HELPER_CHANGE" GuideModel.MONSTER_POS = { [1] = {x = 4767,y = 5550}, [2] = {x = 5070,y = 5625}, [3] = {x = 5375,y = 5648}, } GuideModel.ICON_TYPE = { RIGHT_TOP = 1, SKILL = 2, BOTTOM = 3, } --自动待机一定时间,就要去做主线 GuideModel.AUTO_DOTASK = { time = 600, level = 90, } --接了主线,一定时间提示手指 GuideModel.DO_MAIN_TASK_TIPS = { time = 600, level = 90, } --缓存某些按钮世界坐标的类型 GuideModel.CACHE_POS_TYPE = { TASK_PROGRESS = 1, --任务面板进度条的位置 DIALOGUE_CLICK_BTN = 2, --对话界面 确定按钮 位置 } --终身引导的类型 GuideModel.LIFELONG_TYPE = { MARKET_OPEN = 1, MARKET_SELL = 2, EQUIP_EVOLVE = 3, ELITE_ASSESS = 4, SERVEN_TARGET = 5, STRENGTH_TIPS = 6, } GuideModel.LIFELONG_MARKET_OPEN_TYPE_LEVEL = 115 GuideModel.LIFELONG_ELITE_ASSESS_TYPE_LEVEL = 108 GuideModel.LIFELONG_SERVEN_TARGET_TYPE_LEVEL = 112 function GuideModel:__init() GuideModel.Instance = self self.level_trigger_list = {} --等级触发的引导 self.task_trigger_list = {} --任务触发的引导 self.icon_guide_list = {} --触发引导的时候 这些已经激活的图标要先隐藏 self.cookies_list = {} self.single_cookies_list = {} --针对只执行一次的引导 self.is_load_data = false --是否已经加载过数据,只需要家再一次 self.curr_trigger_type = nil --当前引导的触发类型 1 为等级 2 为 任务 self.curr_help_type = nil --当前引导类型 self.curr_help_step = nil --当前引导步骤 self.curr_help_vo = nil -- 当期引导数据 self.is_hide_small_ui = false --隐藏小界面 self.scene_init_finish =false --场景初始化加载完成 self.wait_level_up = false --等待升级再触发引导 self.has_wait = false self.is_change_god_time = false --是否是降神变身期间 self.need_finish_guide_first = false --是否要先完成引导在任务 self.need_open_vip_view = false --是否需要打开续费界面 self.is_prompt_view_open = false self.is_open_func_open = false self.need_excute_lottery = false --是否需要执行抽奖第二步引导 self.show_item_use_after_close_view = false self.open_view_need_stop = false --打开某个界面是否需要暂停寻路 self.need_delay_execute_guide = false --切场景的时候可能弹出副本界面结算所以要错开 self.gem_mission_execute_task = false --魂珠副本优先做任务 不继续下一关 self.need_force_do_task = false self.auto_task_stand_time = 0 --站街时多少秒时,自动做主线任务 self.cache_guide_pos_list = {} self:LoadHelpDataFromConfig() self.lifelong_help_list = {} self.cache_show_guide = {} --缓存登陆只显示一次的引导 end --清除缓存数据 function GuideModel:ClearData() end function GuideModel:getInstance() if GuideModel.Instance == nil then GuideModel.New(); end return GuideModel.Instance; end --从配置表读取数据到 function GuideModel:LoadHelpDataFromConfig() if self.is_load_data then return end self.is_load_data = true for k,v in pairs(Config.ConfigHelper.Level) do local list = self.level_trigger_list[k] if list == nil then list = {} self.level_trigger_list[k] = list end for i,vo in ipairs(v) do vo.type = 1 --类型 1 属于等级 2 属于任务 vo.lv = k vo.step = i table.insert(list,vo) end --图标创建出来要隐藏 除非v.ignore_fly local icon_cfg = stringtotable(v[1].param) if icon_cfg and icon_cfg[1] and not v.ignore_fly then local data = icon_cfg[1] if not self.icon_guide_list[data[1]] then self.icon_guide_list[data[1]] = {} end self.icon_guide_list[data[1]][data[2]] = v end end for k,v in pairs(Config.ConfigHelper.Task) do local list = self.task_trigger_list[k] if list == nil then list = {} self.task_trigger_list[k] = list end for i,vo in ipairs(v) do vo.type = 2 --类型 1 属于等级 2 属于任务 vo.task_id = k vo.step = i table.insert(list,vo) end --图标创建出来要隐藏 除非v.ignore_fly local icon_cfg = stringtotable(v[1].param) if icon_cfg and icon_cfg[1] and not v.ignore_fly then local data = icon_cfg[1] if not self.icon_guide_list[data[1]] then self.icon_guide_list[data[1]] = {} end self.icon_guide_list[data[1]][data[2]] = v end end -- print("huangcong:GuideModel [start:185] :", self.icon_guide_list) -- PrintTable(self.task_trigger_list) -- print("huangcong:GuideModel [end]") end --type图标的类型 右上角图标 右下角图标 技能图标 function GuideModel:GetIconIsGuild( type,index ) if self.icon_guide_list[type] then return self.icon_guide_list[type][index] end end --获取等级配置 function GuideModel:GetLevelConfig(lv) return self.level_trigger_list[lv] end --获取任务配置 -- 暂时先不加任务状态 function GuideModel:GetTaskConfig(task_id) if self.task_trigger_list[task_id] and self.task_trigger_list[task_id] then return self.task_trigger_list[task_id] end return nil end function GuideModel:SetCurTriggerType(trigger_type) self.curr_trigger_type = trigger_type end function GuideModel:GetCurTriggerType() return self.curr_trigger_type end function GuideModel:SetCurHelpType(help_type) self.curr_help_type = help_type end function GuideModel:GetCurHelpType() return self.curr_help_type end function GuideModel:SetCurHelpStep(step) self.curr_help_step = step end function GuideModel:GetCurHelpStep() return self.curr_help_step end function GuideModel:SetCurHelpVo(vo) self.curr_help_vo = vo end function GuideModel:GetCurHelpVo() return self.curr_help_vo end function GuideModel:GetHelpCfg( helpVo ) if helpVo.type == GuideModel.LEVEL_TRIGGER_TYPE then return Config.ConfigHelper.Level[helpVo.lv][helpVo.step] elseif helpVo.type == GuideModel.TASK_TRIGGER_TYPE then return Config.ConfigHelper.Task[helpVo.task_id][helpVo.step] end end --判断步骤值是否要执行 function GuideModel:HasExecuteStep(helpVo) --如果没有数据,算他执行过 if helpVo == nil then return true end local data = self.cookies_list[helpVo.type] if data then if helpVo.type == GuideModel.LEVEL_TRIGGER_TYPE then if helpVo.lv == 999991009 or helpVo.lv == 999991014 then ---将神\羁绊可以重复引导 return false end local vo = data[helpVo.lv] if vo then return vo.step < helpVo.step end elseif helpVo.type == GuideModel.TASK_TRIGGER_TYPE then local vo = data[helpVo.task_id] if vo then return vo.step < helpVo.step end end end return false end --保存引导 function GuideModel:SetHelperStep(helpVo) if helpVo == nil then return true end self.cookies_list[helpVo.type] = self.cookies_list[helpVo.type] or {} local type = helpVo.type local data = self.cookies_list[helpVo.type] if type == GuideModel.LEVEL_TRIGGER_TYPE then data[helpVo.lv] = data[helpVo.lv] or {} data[helpVo.lv].lv = helpVo.lv data[helpVo.lv].step = helpVo.step data[helpVo.lv].isEnd = helpVo.isEnd data[helpVo.lv].help_type = helpVo.help_type elseif type == GuideModel.TASK_TRIGGER_TYPE then data[helpVo.task_id] = data[helpVo.task_id] or {} data[helpVo.task_id].task_id = helpVo.task_id data[helpVo.task_id].step = helpVo.step data[helpVo.task_id].isEnd = helpVo.isEnd data[helpVo.task_id].help_type = helpVo.help_type end self:SaveHelpStepToCookies() end --只保存几个值 触发类型 触发id = 等级或者任务id 触发步骤 function GuideModel:InitCookiesList() -- self.cookies_list = self:GetHelpStepFromCookies() self.cookies_list = self.cookies_list or {} local type = GuideModel.LEVEL_TRIGGER_TYPE self.cookies_list[type] = self.cookies_list[type] or {} type = GuideModel.TASK_TRIGGER_TYPE self.cookies_list[type] = self.cookies_list[type] or {} self.single_cookies_list = self:GetSingleHelpStepFromCookies() or {} end function GuideModel:GetLvCookieList( ) return self.cookies_list[GuideModel.LEVEL_TRIGGER_TYPE] or {} end function GuideModel:GetTaskCookieList( ) return self.cookies_list[GuideModel.TASK_TRIGGER_TYPE] or {} end function GuideModel:GetHelpStepFromCookies() return CookieWrapper.Instance:GetCookie(CookieLevelType.Account,CookieKey.HELPER_TIMES) end function GuideModel:GetSingleHelpStepFromCookies() return CookieWrapper.Instance:GetCookie(CookieLevelType.Account,CookieKey.SINGLE_HELPER_TIMES) end --操作cookies function GuideModel:SaveHelpStepToCookies() -- CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,CookieTimeType.TYPE_ALWAYS,CookieKey.HELPER_TIMES,self.cookies_list) -- CookieWrapper.Instance:WriteAll() end --操作cookies function GuideModel:SaveSingleHelpStepToCookies(key) self.single_cookies_list[key] = true CookieWrapper.Instance:SaveCookie(CookieLevelType.Account,CookieTimeType.TYPE_ALWAYS,CookieKey.SINGLE_HELPER_TIMES,self.single_cookies_list) CookieWrapper.Instance:WriteAll() end function GuideModel:GetSingleTimesCookieList(key) return self.single_cookies_list[key] end --操作cookies function GuideModel:FinishCurrHelper(helpVo) helpVo.isEnd = true self:SetHelperStep(helpVo) self.curr_trigger_type = nil self.curr_help_type = nil self.curr_help_step = nil self.curr_help_vo = nil self:SaveHelpStepToCookies() end --只结束引导,不处理其他事情 function GuideModel:OnlyFinishCurrHelper(helpVo) --如果当前保存的引导不清理掉 切场景的时候会重新引导 if self.curr_help_vo and self.curr_help_vo.help_type == helpVo.help_type then self:SetCurHelpVo(nil) end helpVo.isEnd = true self:SetHelperStep(helpVo) self:SaveHelpStepToCookies() end --完成全部引导,避免触发下一步 function GuideModel:FinishAll( helpVo ) if helpVo == nil then return end GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW) local voList local step = helpVo.step local type = helpVo.type if type == GuideModel.LEVEL_TRIGGER_TYPE then voList = self:GetLevelConfig(helpVo.lv) elseif type == GuideModel.TASK_TRIGGER_TYPE then voList = self:GetTaskConfig(helpVo.task_id) end for k,v in pairs(voList) do v.isEnd = true self:SetHelperStep(v) end self.curr_trigger_type = nil self.curr_help_type = nil self.curr_help_step = nil self.curr_help_vo = nil self:SaveHelpStepToCookies() end --获取下一个步骤引导数据 function GuideModel:GetNextHelpVo(helpVo) if helpVo == nil then return end local voList local step = helpVo.step local type = helpVo.type if type == GuideModel.LEVEL_TRIGGER_TYPE then voList = self:GetLevelConfig(helpVo.lv) elseif type == GuideModel.TASK_TRIGGER_TYPE then voList = self:GetTaskConfig(helpVo.task_id) end if voList and #voList > step then return voList[step + 1] end return nil end --获取下一个步骤引导数据 function GuideModel:HasHelperExetuteWhenChangeScene() if self.curr_help_type and self.curr_help_vo then return self.curr_help_vo end return false end --隐藏UI层的UI function GuideModel:HideUILayUI( ) -- local go = panelMgr:GetParent("UI") -- if go then -- go.gameObject:SetActive(false) -- end -- go = panelMgr:GetParent("Top") -- if go then -- go.gameObject:SetActive(false) -- end end function GuideModel:ShowUILayUI( ) -- local go = panelMgr:GetParent("UI") -- if go then -- go.gameObject:SetActive(true) -- end -- go = panelMgr:GetParent("Top") -- if go then -- go.gameObject:SetActive(true) -- end end --是否当前正在执行的引导 function GuideModel:IsCurrHelper(help_type,step) if not self.scene_init_finish then return false end local vo = self:GetHelpVo(help_type,step) return vo end --不需要缓存了,直接拿当前触发的引导数据 function GuideModel:GetCurHelpTypeAndStep(help_type, step) local help_vo = self:GetCurHelpVo() if help_vo then --指定类型跟步骤,就要匹配一下当前的引导是否是想要的 if help_type and step then if help_type == help_vo.help_type and step == help_vo.step then return help_vo, help_vo.help_type, help_vo.step end else return help_vo, help_vo.help_type, help_vo.step end end end function GuideModel:GetHelpVo(help_type, step) if not self.scene_init_finish then return false end local help_vo = self:GetCurHelpTypeAndStep(help_type, step) local help_list = {} if help_vo and help_vo.task_id then help_list = self:GetTaskConfig(help_vo.task_id) end return help_vo, (step == #help_list and step > 0) --[[ --需要走缓存的,基本不用了 local lvList = self:GetLvCookieList() for k,v in pairs(lvList) do if not v.isEnd and v.step==step then local helpList = self:GetLevelConfig(v.lv) if helpList and helpList[v.step] then if helpList[v.step].help_type==help_type then return helpList[v.step], step == #helpList end end end end local taskList = self:GetTaskCookieList() for k,v in pairs(taskList) do if not v.isEnd and v.step==step then local helpList = self:GetTaskConfig(v.task_id) if helpList and helpList[v.step] then if helpList[v.step].help_type==help_type then return helpList[v.step], step == #helpList end end end end ]] end --创建客户端怪物 function GuideModel:CreateClientMonster() self:CreateMonster(1,GuideModel.MONSTER_ID,GuideModel.MONSTER_POS[1]) self:CreateMonster(2,GuideModel.MONSTER_ID,GuideModel.MONSTER_POS[2]) self:CreateMonster(3,GuideModel.MONSTER_ID,GuideModel.MONSTER_POS[3]) end --创建怪物 function GuideModel:DeleteClientMonster() SceneManager.Instance:DeleteClientMonstersByInstanceId(1) SceneManager.Instance:DeleteClientMonstersByInstanceId(2) SceneManager.Instance:DeleteClientMonstersByInstanceId(3) end --创建怪物 function GuideModel:CreateMonster(instance_id,mon_id,pos,assign_angle) local monsterVo = MonsterVo.New() monsterVo.instance_id = instance_id monsterVo.type_id = mon_id local cfg_data = ConfigItemMgr.Instance:GetMonsterDataItem(monsterVo.type_id) if cfg_data then monsterVo.monster_res = cfg_data.icon monsterVo.name = cfg_data.name monsterVo.type = 0 monsterVo.move_speed = cfg_data.speed monsterVo.icon_scale = tonumber(cfg_data.icon_scale) end monsterVo:SetBasePropertyFromConfig() monsterVo.pos_x = pos.x monsterVo.pos_y = pos.y if monsterVo.monster_res == 0 then return --暂时没处理 else monsterVo.guaji_flag = 1 end monsterVo.level = 1 monsterVo.hp=1 monsterVo.mp=1 monsterVo.maxHp=1 monsterVo.maxMp=1 monsterVo.is_story = true monsterVo.guaji_flag = 0 monsterVo.hide_flag = false monsterVo.can_attack = 1 monsterVo.assign_angle = assign_angle monsterVo.is_client_monster = true --是否是客户端怪物 print("= = = = =创建怪物xxx:", monsterVo,monsterVo.name,monsterVo.instance_id, monsterVo.type) SceneManager.Instance:AddMonsterVo(monsterVo, false) end --是否是客户端怪物 function GuideModel:IsClientMonster(instance_id) return instance_id == 1 or instance_id == 2 or instance_id == 3 end --是否是ActivityIconView强制引导 function GuideModel:IsTopForceMask( ) local helpVo = self:GetCurHelpVo() if helpVo then local param = tonumber(helpVo.param) if param and param == 1 or param == 2 then return true end end return false end --是否是RightBottomView强制引导 function GuideModel:IsBottomForceMask( ) -- local helpVo = self:GetCurHelpVo() -- if helpVo then -- local param = tonumber(helpVo.param) -- if param and param == 1 or param == 4 or param == 5 or param == 6 or param == 10 or param == 12 then -- return true -- end -- end return false end --如果是第三步骤 删除 function GuideModel:TryHideGuidePromptView() if self.curr_help_step == 3 then GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW) end end --是否怪物在九宫格 而且判断是否做完打怪任务,做完就不创建了 function GuideModel:IsMonsterNearPlayer() local role = Scene.Instance:GetMainRole() if role then local real_pos_x, real_pos_y = role:GetRealPos() local distance = GameMath.GetDistance(real_pos_x,real_pos_y,GuideModel.MONSTER_POS[2].x,GuideModel.MONSTER_POS[2].y) if distance < 4000000 then return true else return false end else return false end end --把断线不需要重新执行的引导设置为执行完 function GuideModel:FinishOverHelp( ) local lvList = self:GetLvCookieList() for k,v in pairs(lvList) do if not v.isEnd then local helpList = self:GetLevelConfig(v.lv) if helpList and helpList[v.step] and self:IsOverHelp(v.help_type) then v.isEnd = true end end end local taskList = self:GetTaskCookieList() for k,v in pairs(taskList) do if not v.isEnd then local helpList = self:GetTaskConfig(v.task_id) if helpList and helpList[v.step] and self:IsOverHelp(v.help_type) then v.isEnd = true end end end self:SaveHelpStepToCookies() end --重连不触发的引导类型 function GuideModel:IsOverHelp( type ) if type == HelpType.NEW_FUNC_OPEN or type == HelpType.OPEN_UI_VIEW or type == HelpType.ENTER_MISSION or type == HelpType.CAST_SKILL or type == HelpType.OPEN_LIST_SHOW_ICON or type == HelpType.DELAY_TIME or type == HelpType.CONTINUM_TASK or type == HelpType.CONTINUM_TASK or type == HelpType.HIDE_SMALL_UI or type == HelpType.SHOW_SMALL_UI or type == HelpType.SHOW_CHAPTER or type == HelpType.TASK_ITEM_SHOW then return true end end --是否有改变降神引导 function GuideModel:IsChangeGodTime() return self.is_change_god_time end function GuideModel:IsSceneInitFinish() return self.scene_init_finish end function GuideModel:TriggerBreakGuide() if not self:IsSceneInitFinish() then return end if self.scene_init_finish and TaskModel:getInstance().notMain == true then TaskModel:getInstance():DefaultTaskShowArrow() end end function GuideModel:TriggerBreakLevelGuide() if not self:IsSceneInitFinish() then return end if not TaskModel:getInstance().showExtendTip then return end if self.scene_init_finish then GlobalEventSystem:Fire(EventName.TEST_HELP_STEP, 999991017) GlobalEventSystem:Fire(EventName.IS_SHOW_TRUN_MASK_HELPER) end end function GuideModel:SetNeedFinishGuideFirst(bool) self.need_finish_guide_first = bool if bool then setTimeout(function() GuideModel:getInstance():SetNeedFinishGuideFirst(false) end,3) end end function GuideModel:IsNeedFinishGuideFirst() return self.need_finish_guide_first end function GuideModel:StopTask() if SceneManager:getInstance():IsMainCityAndFieldScene() then GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK) end end function GuideModel:BeginTask(layout_file,need_do_task) need_do_task = need_do_task == nil and true or need_do_task if need_do_task and SceneManager:getInstance():IsMainCityAndFieldScene() then GlobalEventSystem:Fire(EventName.START_AUTO_DO_TASK) end GlobalEventSystem:Fire(EventName.CLOSE_GUIDE_PROMPT_VIEW,layout_file) end function GuideModel:SetHideSmallUI(bool) self.is_hide_small_ui = bool if bool then if self.hide_timer_id ~= nil then GlobalTimerQuest:CancelQuest(self.hide_timer_id) self.hide_timer_id = nil end --加入定时器保护 防止一直为true local function onTimer() self.is_hide_small_ui = false self.hide_timer_id = nil end self.hide_timer_id = GlobalTimerQuest:AddDelayQuest(onTimer, 5) end end function GuideModel:IsHideSmallUI() return self.is_hide_small_ui end function GuideModel:SetNeedOpenVipView(bool) self.need_open_vip_view = bool end function GuideModel:SetPromptViewOpenState(bool) self.is_prompt_view_open = bool end function GuideModel:IsPromptViewOpen() return self.is_prompt_view_open end function GuideModel:SetNeedExecuteLottery(bool) self.need_excute_lottery = bool end function GuideModel:IsNeedExecuteLottery() return self.need_excute_lottery end function GuideModel:IsPromptViewOpen() return self.is_prompt_view_open end function GuideModel:CanShowVipExperienceView() return SceneManager.Instance:IsMainCityorYieldScene() and not self:IsPromptViewOpen() and not self:IsHideSmallUI() end function GuideModel:SetShowItemUseAfterCloseView(bool) self.show_item_use_after_close_view = bool end function GuideModel:IsNeedhowItemUseAfterCloseView() return self.show_item_use_after_close_view end function GuideModel:IsOpenViewNeedStop() return self.open_view_need_stop end function GuideModel:SetOpenViewNeedStopFlag(bool) self.open_view_need_stop = bool end function GuideModel:IsNeedDelayExecuteGuide() return self.need_delay_execute_guide end function GuideModel:SetNeedDelayExecuteGuide(bool) self.need_delay_execute_guide = bool end function GuideModel:IsGemMissionExecuteTask() return self.gem_mission_execute_task end function GuideModel:SetGemMissionExecuteTask(bool) self.gem_mission_execute_task = bool end function GuideModel:SetGuideCachePos(btn_trans, pos_type) if not self.cache_guide_pos_list[pos_type] then if btn_trans then local root_wnd = GameObject() root_wnd.transform:SetParent(btn_trans) root_wnd.transform.localPosition = v or Vector3(0,0,0) root_wnd.transform.localScale = Vector3(1,1,1) root_wnd.transform:SetParent(panelMgr:GetParent("Main").transform) LuaViewManager.PuskMainCanvasCon(lua_viewM, root_wnd.transform) self.cache_guide_pos_list[pos_type] = root_wnd.transform.localPosition destroy(root_wnd) end end end function GuideModel:GetGuideCachePos(pos_type) return self.cache_guide_pos_list[pos_type] or Vector3(0,0,0) end --终身事件列表,只会保存已完成的 function GuideModel:SetLifelongHelpList( list ) for k,v in pairs(list or {}) do self.lifelong_help_list[v.id] = v.state end end --终身事件存储 function GuideModel:SetLifelongHelp( vo ) self.lifelong_help_list[vo.id] = vo.state end --终身事件查询 function GuideModel:IsLifelongHelpFinish( id ) if self.lifelong_help_list[id] then return self.lifelong_help_list[id] == 1 end return false end --检测一代装备不满足全身紫色及以上品质(不包括守护和首饰),则触发市场引导 function GuideModel:NeedTriggerMarketOpenType( ) local suit_1_3_num = GoodsModel:getInstance():GetEquipCurSuitOrangeNum(1,1,3) return suit_1_3_num and suit_1_3_num < 7 end --是否已经触发过引导 function GuideModel:IsCheckedShowGuide(guide_id) return self.cache_show_guide[guide_id] end --是否已经触发过引导 function GuideModel:SetShowedGuide(guide_id) if not guide_id then return end self.cache_show_guide[guide_id] = true end