源战役客户端
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 
 

920 líneas
24 KiB

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