GuideStartView = GuideStartView or BaseClass(BaseView) local GuideStartView = GuideStartView GuideStartView.StartTime = 0.2 --点击指纹后,进度延时多久才开始加 GuideStartView.UpdateSpeed = 5 --进度增加的速率 GuideStartView.CloseViewTime = 200 --界面关闭的时间(其实是进度增加到当前进度才关闭) function GuideStartView:__init() self.base_file = "guide" self.layout_file = "GuideStartView" self.layer_name = "Top" self.destroy_imm = true self.use_background = true self.change_scene_close = true self.append_to_ctl_queue = false --是否要添加进界面堆栈 self.need_show_money = false --是否要显示顶部的金钱栏 self.hide_maincancas = true -- self.hide_maincancas = true self.click_bg_toClose = false self.cur_progress = 0 self.is_auto = false self.is_start = false self.load_callback = function () self:LoadSuccess() self:AddEvent() end self.open_callback = function ( ) self:OpenSuccess() end self.destroy_callback = function ( ) self:DestroySuccess() end end function GuideStartView:Open(chapter_id) self.chapter_id = chapter_id or 1 BaseView.Open(self) end function GuideStartView:Close( ) --超过这个等级就不自动做任务 if RoleManager.Instance.mainRoleInfo.level <= 2 then GlobalEventSystem:Fire(EventName.FORCE_TO_DO_TASK, true) end local function func( ) lua_viewM:SetUICameraBloomEnable(true) end setTimeout(func,1) BaseView.Close(self) end function GuideStartView:LoadSuccess() if RoleManager.Instance.mainRoleInfo.level > 1 then self:Close() return end local nodes = { "content:tmp", "time_left:tmp", "progress_txt:tmp", "complete:obj", "girl_icon:raw", "bg:img", "name:tmp", "click_btn:obj", "content_line_complete_1:tmp", "content_line_complete_2:tmp", "content_line_complete_3:tmp", "content_line_1:tmp:obj", "content_line_2:tmp:obj", "content_line_3:tmp:obj", "content_line_4:tmp:obj", "content_line_5:tmp:obj", "content_line_6:tmp:obj", "effect_con_1:obj", "effect_con_2:obj", "effect_con_3:obj", "zhiwen:obj:img", "role:raw", } self:GetChildren(nodes) --elf:AddUIEffect("ui_feiye", self.effect_con_1, self.layer_name, nil, 1, true, nil, nil, nil) self:AddUIEffect("ui_zhiwen2", self.effect_con_3, self.layer_name, nil, 1, true, nil, nil, nil) self.effect_con_2_obj:SetActive(true) self.effect_con_3_obj:SetActive(false) self.zhiwen_obj:SetActive(true) SetImageGray(self.zhiwen_img, true) local function bg_back_func( ... ) if self.background_wnd and self.background_wnd:GetComponent("RawImageExtend") then self:MoveUIToBack(self.background_wnd:GetComponent("RawImageExtend")) end end if self.background_wnd then bg_back_func() else self.bg_back_func = bg_back_func end self:MoveUIToBack(self.bg_img) self:UpdateVeiw() end function GuideStartView:AddEvent() local function on_btn_click(target) if target == self.click_btn_obj then self:DoAutoCheck() end end AddClickEvent(self.click_btn_obj, on_btn_click) local onExitGame = function() self:Close() end self:BindEvent(GlobalEventSystem, EventName.CHANGE_ACCOUNT, onExitGame) self:BindEvent(GlobalEventSystem, EventName.CHANGE_ROLE, onExitGame) self:BindEvent(GlobalEventSystem, EventName.GAME_DISCONNECT, onExitGame) end function GuideStartView:OpenSuccess() GlobalEventSystem:Fire(EventName.STOP_AUTO_DO_TASK) GlobalEventSystem:Fire(EventName.STOPAUTOFIGHT) self:UpdateTimer() end function GuideStartView:UpdateTimer( ) local left_time = 0 --倒计时时间 local left_tiem_max = 6 --倒计时最大时间 local auto_time = 6 --自动验证时间 local left_time_step = 0 --进度增加速率 local point_step = 0.2 -- ... 动画频率 self.cur_progress = 0 local function on_timer( ) left_time = left_time + 0.05 self.cur_progress = self.cur_progress + left_time_step if not self.is_start then local str = string.format("自动验证 . . . (%ds)", math.floor(left_tiem_max - left_time)) self.time_left_tmp.text = str if left_time >= auto_time then self:DoAutoCheck() end else if self.is_auto then left_time_step = GuideStartView.UpdateSpeed end end if self.content_line_flag_1 then if self.cur_progress <= 30 then self.content_line_flag_1 = self:GetCnt(self.content_line_flag_1, point_step) self.content_line_1_tmp.text = self.line_text[1] .. self:GetPointStrings(self.content_line_flag_1) else self.content_line_flag_1 = false self.content_line_1_tmp.text = self.line_text[1] .. " . . . " self.content_line_complete_1_tmp.text = HtmlColorTxt("通过!", "#2cf86f") end end if self.content_line_flag_2 then if self.cur_progress <= 50 then self.content_line_flag_2 = self:GetCnt(self.content_line_flag_2, point_step) self.content_line_2_tmp.text = self.line_text[2] .. self:GetPointStrings(self.content_line_flag_2) else self.content_line_flag_2 = false self.content_line_2_tmp.text = self.line_text[2] .. " . . . " self.content_line_complete_2_tmp.text = HtmlColorTxt("通过!", "#2cf86f") end end if self.content_line_flag_3 then if self.cur_progress <= 70 then self.content_line_flag_3 = self:GetCnt(self.content_line_flag_3, point_step) self.content_line_3_tmp.text = self.line_text[3] .. self:GetPointStrings(self.content_line_flag_3) else self.content_line_flag_3 = false self.content_line_3_tmp.text = self.line_text[3] .. " . . . " self.content_line_complete_3_tmp.text = HtmlColorTxt("通过!", "#2cf86f") end end if self.content_line_flag_4 and self.cur_progress >= 80 then self.content_line_flag_4 = false self.content_line_4_obj:SetActive(true) end if self.content_line_flag_5 and self.cur_progress >= 90 then self.content_line_flag_5 = false self.content_line_5_obj:SetActive(true) end if self.content_line_flag_6 and self.cur_progress >= 95 then self.content_line_flag_6 = false self.content_line_6_obj:SetActive(true) end if self.cur_progress < 100 then self.progress_txt_tmp.text = math.floor(self.cur_progress) .. "%" else if self.content_line_flag_7 then self.content_line_flag_7 = false self.progress_txt_tmp.text = "100%" self.complete_obj:SetActive(true) end if self.cur_progress >= GuideStartView.CloseViewTime then self:CancelCountDownTimer() self:Close() end end end on_timer() if not self.count_down_timer then self.count_down_timer = GlobalTimerQuest:AddPeriodQuest(on_timer, 0.05, -1) end end function GuideStartView:DoAutoCheck() if self.is_start then return end self.is_start = true if self.delay_start_id then GlobalTimerQuest:CancelQuest(self.delay_start_id) self.delay_start_id = false end self:AddUIEffect("ui_zhiwen1", self.effect_con_2, self.layer_name, nil, 1, false, nil, nil, nil) lua_soundM:PlayEffect(self, "zhiwen", false, LuaSoundManager.SOUND_TYPE.UI) self.time_left_tmp.text = "" local function DelayStart( ... ) self.is_auto = true self.effect_con_3_obj:SetActive(true) SetImageGray(self.zhiwen_img, false) end self.delay_start_id = GlobalTimerQuest:AddDelayQuest(DelayStart,GuideStartView.StartTime) end function GuideStartView:GetCnt(crrent, step) local t = crrent + step t = t > 4 and 0 or t return t end function GuideStartView:GetPointStrings(cnt) local t = math.floor(cnt) return t == 0 and "" or (t == 1 and " . " or (t == 2 and " . . " or " . . . ")) end function GuideStartView:CancelCountDownTimer( ) if self.count_down_timer then GlobalTimerQuest:CancelQuest(self.count_down_timer) self.count_down_timer = nil end end function GuideStartView:UpdateVeiw( ) local chapter_id = self.chapter_id or 1 self.line_text = { [1] = "指纹信息", [2] = "DNA序列", [3] = "虹膜信息", } --lua_resM:setOutsideRawImage(self, self.role_raw, GameResPath.GetGuideImage("guide_start_role_".. RoleManager.Instance.mainRoleInfo.career), false) lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetViewBigBg("guide_start_view_bg_".. chapter_id), false) --lua_resM:setOutsideImageSprite(self, self.girl_icon_raw, GameResPath.GetRoleBg("guide_girl_399_603"), true) -- local res_data = { -- father_node = self, -- transform = self.girl_icon, -- fashion_type = FuncOpenModel.TypeId.FJarvis, -- figure_id = 1001, -- action_name_list = {"show"}, -- size = Vector2(720,720), -- scale = 450, -- position = {x = 60, y = -247}, -- show_shadow = true, -- can_rotate = false, -- ui_model_type = UIModelCommon.ModelType.BackModel, -- } -- FuncOpenModel:getInstance():SetModelRes(res_data) local icon_id = 100301 local weapon_id = 0 local texture_id = 0 local data = { clothe_res_id = icon_id, weapon_res_id = weapon_id, role_type = SceneBaseType.Npc, texture_id = texture_id, image_id = texture_id, size = Vector2(720,720), scale = 380, position = Vector3(0, -100, 0), action_name_list = {"show"}, show_shadow = false, raycastParent = false, can_rotate = false, } lua_resM:SetBackRoleModel(self,self.girl_icon,data) local role_con_pos = { [1] = {x = 150, y = -231,}, [2] = {x = 115, y = -182,}, [3] = {x = 129, y = -226,}, [4] = {x = 154, y = -185,}, } local my_career = RoleManager.Instance.mainRoleInfo.career local my_icon_id = my_career local res_data = { clothe_res_id = my_icon_id, weapon_res_id = weapon_id, role_type = SceneBaseType.Role, texture_id = texture_id, image_id = texture_id, size = Vector2(720,720), scale = 380, position = Vector3(0, -100, 0), action_name_list = {"show"}, show_shadow = false, raycastParent = false, can_rotate = false, } lua_resM:SetBackRoleModel(self,self.role,res_data) lua_viewM:SetUICameraBloomEnable(false) SetAnchoredPosition(self.role, role_con_pos[my_career].x, role_con_pos[my_career].y) self.name_tmp.text = "指挥官" self.content_tmp.text = "任务编号S-301,追捕秘密实验室的逃窜生物,所有单位立即行动!" self.content_line_complete_1_tmp.text = ""-- HtmlColorTxt("", "#A9C1E1") self.content_line_complete_2_tmp.text = ""-- HtmlColorTxt("", "#A9C1E1") self.content_line_complete_3_tmp.text = ""-- HtmlColorTxt("", "#A9C1E1") self.content_line_1_tmp.text = self.line_text[1] self.content_line_2_tmp.text = self.line_text[2] self.content_line_3_tmp.text = self.line_text[3] self.content_line_4_obj:SetActive(false) self.content_line_5_obj:SetActive(false) self.content_line_6_obj:SetActive(false) self.complete_obj:SetActive(false) self.content_line_flag_1 = 0 self.content_line_flag_2 = 0 self.content_line_flag_3 = 0 self.content_line_flag_4 = 0 self.content_line_flag_5 = 0 self.content_line_flag_6 = 0 self.content_line_flag_7 = 0 end function GuideStartView:DestroySuccess( ) if self.delay_close_id then GlobalTimerQuest:CancelQuest(self.delay_close_id) self.delay_close_id = false end self:CancelCountDownTimer() --self:ClearUIEffect(self.effect_con_1) self:ClearUIEffect(self.effect_con_2) self:ClearUIEffect(self.effect_con_3) end