SettingProtect = {} SettingProtect._ui = nil local group1 = { SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT1, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT2, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT3, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT4, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_MP_PROTECT1, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_MP_PROTECT2, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_MP_PROTECT3, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_MP_PROTECT4, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_PK_PROTECT, -- 红名保护 SLDefine.SETTINGID.SETTING_IDX_HP_LOW_USE_SKILL, -- 生命低于多少使用 SLDefine.SETTINGID.SETTING_IDX_REVIVE_PROTECT, -- 复活保护 SLDefine.SETTINGID.SETTING_IDX_REVIVE_PROTECT_HERO, -- 英雄复活保护 13000, -- 自动竹叶青 13001, -- 自动苹果 } local heroGroup1 = { SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT1, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT2, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT3, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT4, -- 生命值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_MP_PROTECT1, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_MP_PROTECT2, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_MP_PROTECT3, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_MP_PROTECT4, -- 魔法值低于多少使用 SLDefine.SETTINGID.SETTING_IDX_HERO_AUTO_LOGINOUT, -- 英雄生命值低于多少自动收回 } local getConfigFunc = function(group) local configs = {} local config for i, id in ipairs(group) do config = SL:GetValue("SETTING_CONFIG", id) if config and (config.platform == 0 or config.platform == SL:GetValue("CURRENT_OPERMODE")) then if not config.order or not tonumber(config.order) then config.order = 0 end table.insert(configs, config) end end table.sort(configs, function(a, b) return a.order < b.order end) return configs end function SettingProtect.main() local parent = GUI:Attach_Parent() GUI:LoadExport(parent, "set/setting_protect") SettingProtect._ui = GUI:ui_delegate(parent) SettingProtect._parent = parent if not SettingProtect._ui then return false end SettingProtect.InitGroup() end function SettingProtect.InitGroup() local tconfigs = SL:CopyData(group1) --英雄系统是否开启 if SL:GetValue("USEHERO") then for i, id in ipairs(heroGroup1) do table.insert(tconfigs, id) end end local groupConfig = getConfigFunc(tconfigs) local ScrollView_1 = SettingProtect._ui.ScrollView_1 local contentSize = GUI:getContentSize(ScrollView_1) local cellW = 343 local cellH = 54 local addH = 0 local y = 0 for i, config in ipairs(groupConfig) do local x = (i - 1) % 2 y = math.ceil(i / 2) if x == 0 then if config.id == SLDefine.SETTINGID.SETTING_IDX_HP_LOW_USE_SKILL then addH = addH + 10 elseif config.id == SLDefine.SETTINGID.SETTING_IDX_REVIVE_PROTECT or config.id == SLDefine.SETTINGID.SETTING_IDX_REVIVE_PROTECT_HERO or config.id == 13000 or config.id == 13001 then addH = addH - 14 end end config.height = y * cellH + addH config.width = cellW * x end local innerContainerSize = GUI:Size(contentSize.width, y * cellH + addH) if innerContainerSize.height <= contentSize.height then innerContainerSize.height = contentSize.height end GUI:ScrollView_setInnerContainerSize(ScrollView_1, innerContainerSize.width, innerContainerSize.height) for i, v in ipairs(groupConfig) do local cell = SettingProtect.CreateCell(ScrollView_1, v) GUI:setPosition(cell, v.width, innerContainerSize.height - v.height) end end function SettingProtect.CreateCell(parent, config) local cell if config.id == SLDefine.SETTINGID.SETTING_IDX_PK_PROTECT then cell = SettingProtect.CreateListClickCell(parent, config) elseif config.id == SLDefine.SETTINGID.SETTING_IDX_HP_LOW_USE_SKILL then cell = SettingProtect.CreateSelectInputClickCell(parent, config) elseif config.id == SLDefine.SETTINGID.SETTING_IDX_HERO_AUTO_LOGINOUT then cell = SettingProtect.CreateInput2ClickCell(parent, config) elseif config.id == SLDefine.SETTINGID.SETTING_IDX_REVIVE_PROTECT or config.id == SLDefine.SETTINGID.SETTING_IDX_REVIVE_PROTECT_HERO or config.id == 13000 or config.id == 13001 then cell = SettingProtect.CreateClickCell(parent, config) else cell = SettingProtect.CreateClickProgressSelectCell(parent, config) end return cell end --点击的开关 function SettingProtect.CreateClickCell(parent, data) -- local Panel_Click = GUI:Layout_Create(parent, "Panel_Click_" .. data.id, 0, 1, 200, 40, false) GUI:setTouchEnabled(Panel_Click, true) -- 描述 local Text_desc = GUI:Text_Create(Panel_Click, "Text_desc", 12, 20, 16, "#ffffff", data.content or "") GUI:setAnchorPoint(Text_desc, 0, 0.5) --选择容器 local CheckBox_able = GUI:Layout_Create(Panel_Click, "CheckBox_able", 134, 19, 44, 18, false) GUI:setAnchorPoint(CheckBox_able, 0, 0.5) -- 背景 local Image_5 = GUI:Image_Create(CheckBox_able, "Image_5", 22, 9, "res/private/new_setting/clickbg2.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) --关闭状态 local Panel_1 = GUI:Layout_Create(CheckBox_able, "Panel_1", 0, 0, 44, 18, false) local Image_8 = GUI:Image_Create(Panel_1, "Image_8", 10, 8, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) --开启状态 local Panel_2 = GUI:Layout_Create(CheckBox_able, "Panel_2", 0, 0, 44, 18, false) local Image_5 = GUI:Image_Create(Panel_2, "Image_5", 22, 9, "res/private/new_setting/clickbg1.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) local Image_8 = GUI:Image_Create(Panel_2, "Image_8", 33, 8, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) --触摸提示 if data.tips then GUI:Text_enableUnderline(Text_desc) GUI:setTouchEnabled(Text_desc, true) GUI:addOnClickEvent(Text_desc, function() local worldPos = GUI:getTouchEndPosition(Text_desc) SL:SHOW_DESCTIP(data.tips, nil, worldPos, GUI:p(0, 1)) end) end --设置是否开启 local isOn = SL:GetValue("SETTING_ENABLED", (data.id)) local enable = isOn == 1 local func = function(enable) --关闭状态ui GUI:setVisible(Panel_1, not enable) --开启状态ui GUI:setVisible(Panel_2, enable) end --刷新开关状态 func(enable) --开关点击 GUI:addOnClickEvent(Panel_Click, function() local isOn = SL:GetValue("SETTING_ENABLED", (data.id)) local enable = isOn == 1 SL:SetValue("SETTING_VALUE", data.id, enable and { 0 } or { 1 }) --刷新开关状态 func(not enable) end) return Panel_Click end function SettingProtect.CreateListClickCell(parent, data) -- 容器 local Panel_Layout = GUI:Layout_Create(parent, "Panel_" .. data.id, 0, 2, 200, 40, false) GUI:setTouchEnabled(Panel_Layout, true) -- 描述 local Text_desc = GUI:Text_Create(Panel_Layout, "Text_desc", 14, 20, 16, "#ffffff", data.content or "") GUI:setAnchorPoint(Text_desc, 0, 0.5) GUI:setTouchEnabled(Text_desc, false) -- 点击背景 local Image_ClickBg = GUI:Image_Create(Panel_Layout, "Image_ClickBg", 128, 18, "res/private/new_setting/textBg.png") GUI:Image_setScale9Slice(Image_ClickBg, 33, 33, 9, 9) GUI:setContentSize(Image_ClickBg, 77, 28) GUI:setIgnoreContentAdaptWithSize(Image_ClickBg, false) GUI:setAnchorPoint(Image_ClickBg, 0.5, 0.5) GUI:setTouchEnabled(Image_ClickBg, true) -- 列表配置 local Text_desc_2 = GUI:Text_Create(Image_ClickBg, "Text_desc_2", 39, 16, 18, "#109c18", "列表配置") GUI:setAnchorPoint(Text_desc_2, 0.5, 0.5) GUI:setTouchEnabled(Text_desc_2, false) -- 开关容器 local CheckBox_able = GUI:Layout_Create(Panel_Layout, "CheckBox_able", 174, 19, 44, 18, false) GUI:setAnchorPoint(CheckBox_able, 0, 0.5) GUI:setTouchEnabled(CheckBox_able, true) -- 开关背景 local Image_bg = GUI:Image_Create(CheckBox_able, "Image_bg", 22, 9, "res/private/new_setting/clickbg2.png") GUI:setAnchorPoint(Image_bg, 0.5, 0.5) GUI:setTouchEnabled(Image_bg, false) -- 关闭状态 local Panel_1 = GUI:Layout_Create(CheckBox_able, "Panel_1", 0, 0, 44, 18, false) GUI:setTouchEnabled(Panel_1, false) local Image_8 = GUI:Image_Create(Panel_1, "Image_8", 10.28, 8.78, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) GUI:setTouchEnabled(Image_8, false) -- 开启状态 local Panel_2 = GUI:Layout_Create(CheckBox_able, "Panel_2", 0, 0, 44, 18, false) GUI:setTouchEnabled(Panel_2, false) local Image_5 = GUI:Image_Create(Panel_2, "Image_5", 22, 9, "res/private/new_setting/clickbg1.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) GUI:setTouchEnabled(Image_5, false) local Image_8 = GUI:Image_Create(Panel_2, "Image_8", 33, 9, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) GUI:setTouchEnabled(Image_8, false) local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 local func = function(enable) --关闭状态ui GUI:setVisible(Panel_1, not enable) --开启状态ui GUI:setVisible(Panel_2, enable) end --刷新开关状态 func(enable) GUI:addOnClickEvent(CheckBox_able, function() local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 SL:SetValue("SETTING_VALUE", data.id, { enable and 0 or 1 }) --刷新开关状态 func(not enable) end) GUI:addOnClickEvent(Image_ClickBg, function() --打开保护设置 UIOperator:OpenProtectSettingUI(data) end) return Panel_Layout end function SettingProtect.CreateSelectInputClickCell(parent, data) -- 容器 local Panel_Layout = GUI:Layout_Create(parent, "Panel_" .. data.id, -0, 0, 323, 64, false) GUI:setTouchEnabled(Panel_Layout, true) -- 描述 local Text_desc = GUI:Text_Create(Panel_Layout, "Text_desc", 6, 32, 16, "#ffffff", [[生命值低于]]) GUI:setAnchorPoint(Text_desc, 0, 0.5) GUI:setTouchEnabled(Text_desc, false) GUI:Text_enableOutline(Text_desc, "#000000", 1) local Text_desc_0 = GUI:Text_Create(Panel_Layout, "Text_desc_0", 131, 32, 16, "#ffffff", [[%时使用]]) GUI:setAnchorPoint(Text_desc_0, 0, 0.5) GUI:setTouchEnabled(Text_desc_0, false) GUI:Text_enableOutline(Text_desc_0, "#000000", 1) -- 技能框 local Image_skill = GUI:Image_Create(Panel_Layout, "Image_skill", 231, 31, "res/public/1900000651.png") GUI:setAnchorPoint(Image_skill, 0.5, 0.5) GUI:setTouchEnabled(Image_skill, false) -- 无 local Text_empty = GUI:Text_Create(Panel_Layout, "Text_empty", 231, 34, 16, "#ffffff", [[无]]) GUI:setAnchorPoint(Text_empty, 0.5, 0.5) GUI:setTouchEnabled(Text_empty, false) GUI:Text_enableOutline(Text_empty, "#000000", 1) -- 输入框背景 local Image_2 = GUI:Image_Create(Panel_Layout, "Image_2", 109, 31, "res/private/new_setting/textBg.png") GUI:Image_setScale9Slice(Image_2, 33, 33, 9, 9) GUI:setContentSize(Image_2, 30, 28) GUI:setIgnoreContentAdaptWithSize(Image_2, false) GUI:setAnchorPoint(Image_2, 0.5, 0.5) GUI:setTouchEnabled(Image_2, false) -- 开关容器 local CheckBox_able = GUI:Layout_Create(Panel_Layout, "CheckBox_able", 270, 32, 44, 18, false) GUI:setAnchorPoint(CheckBox_able, 0, 0.5) GUI:setTouchEnabled(CheckBox_able, true) -- 开关背景 local Image_5 = GUI:Image_Create(CheckBox_able, "Image_5", 22, 9, "res/private/new_setting/clickbg2.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) GUI:setTouchEnabled(Image_5, false) -- 关闭状态 local Panel_1 = GUI:Layout_Create(CheckBox_able, "Panel_1", 0, 0, 44, 18, false) GUI:setTouchEnabled(Panel_1, false) local Image_8 = GUI:Image_Create(Panel_1, "Image_8", 10, 8, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) GUI:setTouchEnabled(Image_8, false) -- 开启状态 local Panel_2 = GUI:Layout_Create(CheckBox_able, "Panel_2", 0, 0, 44, 18, false) GUI:setTouchEnabled(Panel_2, false) local Image_5 = GUI:Image_Create(Panel_2, "Image_5", 22, 9, "res/private/new_setting/clickbg1.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) GUI:setTouchEnabled(Image_5, false) local Image_8 = GUI:Image_Create(Panel_2, "Image_8", 33, 8, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) GUI:setTouchEnabled(Image_8, false) local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 local percent = values[2] or 20 local skillID = values[3] local func = function(enable) --关闭状态ui GUI:setVisible(Panel_1, not enable) --开启状态ui GUI:setVisible(Panel_2, enable) end --刷新开关状态 func(enable) GUI:addOnClickEvent(CheckBox_able, function() local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 SL:SetValue("SETTING_VALUE", data.id, { enable and 0 or 1 }) --刷新开关状态 func(not enable) end) if skillID and skillID ~= -1 then local contentSize = GUI:getContentSize(Image_skill) local skillItem = SettingProtect.CreateSkillIcon(Image_skill, skillID) GUI:setPosition(skillItem, contentSize.width / 2, contentSize.height / 2) GUI:setTouchEnabled(skillItem, false) GUI:setScale(skillItem, 0.9) GUI:setVisible(Text_empty, false) end -- GUI:setTouchEnabled(Image_skill, true) GUI:addOnClickEvent(Image_skill, function() SettingProtect.ShowSelectSkill(data) end) local TextField_input = GUI:TextInput_Create(Image_2, "TextField_input", 0, 0, 30, 26, 14) GUI:TextInput_setTextHorizontalAlignment(TextField_input, 1) GUI:TextInput_setMaxLength(TextField_input, 2) GUI:TextInput_setInputMode(TextField_input, 2) GUI:TextInput_setString(TextField_input, percent) GUI:TextInput_addOnEvent(TextField_input, function(_, eventType) if eventType == 1 then local input = math.min(math.max(tonumber(GUI:TextInput_getString(TextField_input)) or 1, 1), 99) SL:SetValue("SETTING_VALUE", data.id, {nil, input }) end end) return Panel_Layout end function SettingProtect.CreateSkillIcon(parent, skillID) local icon = GUI:Image_Create(parent, "Image_icon", 30, 30, "Default/ImageFile.png") GUI:setContentSize(icon, 60, 60) GUI:setIgnoreContentAdaptWithSize(icon, false) GUI:setAnchorPoint(icon, 0.50, 0.50) GUI:setTouchEnabled(icon, false) local iconPath = SL:GetValue("SKILL_RECT_ICON_PATH", skillID) if iconPath then GUI:Image_loadTexture(icon, iconPath) end return icon end --显示选择技能 function SettingProtect.ShowSelectSkill(data) local items = {} if data.id == SLDefine.SETTINGID.SETTING_IDX_HP_LOW_USE_SKILL then -- 道士 治疗技能 items = SL:GetValue("SKILL_INFO_FILTER", 3, 3, true) end items = SL:HashToSortArray(items, function(a, b) return a.MagicID < b.MagicID end) if not next(items) then SL:ShowSystemTips("未发现可用技能") return nil end -- 背景底框 local Panel_1 = GUI:Layout_Create(SettingProtect._parent, "Panel_SelectSkill", 0, 0, 732, 445, false) GUI:Layout_setBackGroundColorType(Panel_1, 1) GUI:Layout_setBackGroundColor(Panel_1, "#000000") GUI:Layout_setBackGroundColorOpacity(Panel_1, 127) GUI:setTouchEnabled(Panel_1, true) -- 底框 local Panel_2 = GUI:Layout_Create(Panel_1, "Panel_2", 366, 222.5, 360, 280, false) GUI:setAnchorPoint(Panel_2, 0.5, 0.5) GUI:setTouchEnabled(Panel_2, true) -- 背景图 local Image_1 = GUI:Image_Create(Panel_2, "Image_1", 180, 140, "res/public/1900000677.png") GUI:Image_setScale9Slice(Image_1, 21, 21, 34, 32) GUI:setContentSize(Image_1, 360, 280) GUI:setIgnoreContentAdaptWithSize(Image_1, false) GUI:setAnchorPoint(Image_1, 0.5, 0.5) GUI:setTouchEnabled(Image_1, false) -- ListView local ListView = GUI:ListView_Create(Panel_2, "ListView", 180, 140, 355, 275, 1) GUI:ListView_setGravity(ListView, 0) GUI:setAnchorPoint(ListView, 0.5, 0.5) GUI:setTouchEnabled(ListView, true) GUI:addOnClickEvent(Panel_1, function() GUI:removeFromParent(Panel_1) end) for i, v in ipairs(items) do local item = {} item.skill = v item.setting = data item.callback = function() GUI:removeFromParent(Panel_1) end local cell = SettingProtect.CreateSelectSkillCell(ListView, item) GUI:ListView_doLayout(ListView) end end --创建 技能描述item function SettingProtect.CreateSelectSkillCell(parent, data) -- 容器 local Panel_item = GUI:Layout_Create(parent, "Panel_" .. data.skill.MagicID, 0, 0, 355, 80, false) GUI:setTouchEnabled(Panel_item, true) -- 技能框 local Image_skill = GUI:Image_Create(Panel_item, "Image_skill", 40, 40, "res/public/1900000651.png") GUI:setAnchorPoint(Image_skill, 0.5, 0.5) GUI:setTouchEnabled(Image_skill, false) -- 描述 local Node_desc = GUI:Node_Create(Panel_item, "Node_desc", 80, 40) GUI:setAnchorPoint(Node_desc, 0.5, 0.5) -- 线条 local Image_2 = GUI:Image_Create(Panel_item, "Image_2", 177.5, 0, "res/public/1900000667.png") GUI:setContentSize(Image_2, 355, 2) GUI:setIgnoreContentAdaptWithSize(Image_2, false) GUI:setAnchorPoint(Image_2, 0.5, 0) GUI:setTouchEnabled(Image_2, false) if data.skill.MagicID == -1 then local size = GUI:getContentSize(Panel_item) local RichText_empty = GUI:RichText_Create(Panel_item, "RichText_empty", size.width / 2, size.height / 2, "无") GUI:setAnchorPoint(RichText_empty, 0.5, 0.5) GUI:setVisible(Image_skill, false) else local contentSize = GUI:getContentSize(Image_skill) local skillItem = SettingProtect.CreateSkillIcon(Image_skill, data.skill.MagicID) GUI:setPosition(skillItem, contentSize.width / 2, contentSize.height / 2) GUI:setTouchEnabled(skillItem, false) GUI:setScale(skillItem, 0.9) GUI:removeAllChildren(Node_desc) local RichText_desc = GUI:RichTextFCOLOR_Create(Node_desc, "RichText_desc", 0, 0, data.skill.desc, 2013) GUI:setAnchorPoint(RichText_desc, 0, 0.5) end GUI:addOnClickEvent(Panel_item, function() local tgroupID if data.setting.id == SLDefine.SETTINGID.SETTING_IDX_HP_LOW_USE_SKILL then tgroupID = data.skill.skillgroup SL:SetValue("SETTING_VALUE", data.setting.id, {nil, nil, tgroupID }) end local panel = SettingProtect._ui["Panel_" .. data.setting.id] local Image_skill = GUI:getChildByName(panel, "Image_skill") GUI:removeAllChildren(Image_skill) local Text_empty = GUI:getChildByName(panel, "Text_empty") if tgroupID then local contentSize = GUI:getContentSize(Image_skill) local skillItem = SettingProtect.CreateSkillIcon(Image_skill, tgroupID) GUI:setPosition(skillItem, contentSize.width / 2, contentSize.height / 2) GUI:setTouchEnabled(skillItem, false) GUI:setScale(skillItem, 0.9) GUI:setVisible(Text_empty, false) else GUI:setVisible(Text_empty, true) end data.callback() end) return Panel_item end function SettingProtect.CreateInput2ClickCell(parent, data) -- 容器 local Panel_Layout = GUI:Layout_Create(parent, "Panel_" .. data.id, 0, 2, 346, 54, false) GUI:setTouchEnabled(Panel_Layout, true) -- 描述 local Text_desc = GUI:Text_Create(Panel_Layout, "Text_desc", 14, 27, 16, "#ffffff", "英雄生命低于") GUI:setAnchorPoint(Text_desc, 0, 0.5) GUI:setTouchEnabled(Text_desc, false) GUI:Text_enableOutline(Text_desc, "#000000", 1) local Text_desc_0 = GUI:Text_Create(Panel_Layout, "Text_desc_0", 160, 27, 16, "#ffffff", "%时自动收回") GUI:setAnchorPoint(Text_desc_0, 0, 0.5) GUI:setTouchEnabled(Text_desc_0, false) GUI:setTag(Text_desc_0, 332) GUI:Text_enableOutline(Text_desc_0, "#000000", 1) -- 输入框背景 local Image_2 = GUI:Image_Create(Panel_Layout, "Image_2", 135, 26, "res/private/new_setting/textBg.png") GUI:Image_setScale9Slice(Image_2, 9, 9, 9, 9) GUI:setContentSize(Image_2, 28, 28) GUI:setIgnoreContentAdaptWithSize(Image_2, false) GUI:setAnchorPoint(Image_2, 0.5, 0.5) GUI:setTouchEnabled(Image_2, false) -- 开关容器 local CheckBox_able = GUI:Layout_Create(Panel_Layout, "CheckBox_able", 260, 26, 44, 18, false) GUI:setAnchorPoint(CheckBox_able, 0, 0.5) GUI:setTouchEnabled(CheckBox_able, true) GUI:setTag(CheckBox_able, 42) -- 开关背景 local Image_5 = GUI:Image_Create(CheckBox_able, "Image_5", 22, 9, "res/private/new_setting/clickbg2.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) GUI:setTouchEnabled(Image_5, false) -- 关闭状态 local Panel_1 = GUI:Layout_Create(CheckBox_able, "Panel_1", 0, 0, 44, 18, false) GUI:setTouchEnabled(Panel_1, false) local Image_8 = GUI:Image_Create(Panel_1, "Image_8", 10.28, 8.78, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) GUI:setTouchEnabled(Image_8, false) -- 开启状态 local Panel_2 = GUI:Layout_Create(CheckBox_able, "Panel_2", 0, 0, 44, 18, false) GUI:setTouchEnabled(Panel_2, false) local Image_5 = GUI:Image_Create(Panel_2, "Image_5", 22, 9, "res/private/new_setting/clickbg1.png") GUI:setAnchorPoint(Image_5, 0.5, 0.5) GUI:setTouchEnabled(Image_5, false) local Image_8 = GUI:Image_Create(Panel_2, "Image_8", 33.28, 8.78, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_8, 0.5, 0.5) GUI:setTouchEnabled(Image_8, false) local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 local count = values[2] or 0 --输入框 local TextField_input = GUI:TextInput_Create(Image_2, "TextField_input", 12, 15, 24, 24, 14) GUI:setAnchorPoint(TextField_input, 0.5, 0.5) GUI:TextInput_setTextHorizontalAlignment(TextField_input, 1) GUI:TextInput_setMaxLength(TextField_input, 3) GUI:TextInput_setInputMode(TextField_input, 2) GUI:TextInput_setString(TextField_input, count) GUI:TextInput_addOnEvent(TextField_input, function(_, eventType) if eventType == 1 then local count = GUI:TextInput_getString(TextField_input) if count ~= "" then count = tonumber(count) or 0 count = math.max(math.min(100, count), 0) GUI:TextInput_setString(TextField_input, count) SL:SetValue("SETTING_VALUE", data.id, {nil, count }) end end end) local func = function(enable) --关闭状态ui GUI:setVisible(Panel_1, not enable) --开启状态ui GUI:setVisible(Panel_2, enable) end --刷新开关状态 func(enable) GUI:addOnClickEvent(CheckBox_able, function() local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 SL:SetValue("SETTING_VALUE", data.id, { enable and 0 or 1 }) --刷新开关状态 func(not enable) end) return Panel_Layout end function SettingProtect.CreateClickProgressSelectCell(parent, data) local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 local percent = values[2] or 50 local t = values[3] -- 容器 local Panel_Layout = GUI:Layout_Create(parent, "Panel_" .. data.id, 0, 0, 343, 54, false) GUI:setTouchEnabled(Panel_Layout, false) Panel_Layout.config = data -- 开关容器 local CheckBox_able = GUI:Layout_Create(Panel_Layout, "CheckBox_able", 8, 20, 28, 28, false) GUI:setAnchorPoint(CheckBox_able, 0, 0.5) GUI:setTouchEnabled(CheckBox_able, true) -- 开关背景 local Image_5 = GUI:Image_Create(CheckBox_able, "Image_5", 14, 14, "res/private/new_setting/clickbg2.png") GUI:Image_setScale9Slice(Image_5, 9, 9, 5, 5) GUI:setContentSize(Image_5, 18, 18) GUI:setIgnoreContentAdaptWithSize(Image_5, false) GUI:setAnchorPoint(Image_5, 0.5, 0.5) GUI:setTouchEnabled(Image_5, false) -- 开关 local Image_sel = GUI:Image_Create(CheckBox_able, "Image_sel", 14, 14, "res/private/new_setting/click3.png") GUI:setAnchorPoint(Image_sel, 0.5, 0.5) GUI:setTouchEnabled(Image_sel, false) -- 描述 local Text_desc = GUI:Text_Create(Panel_Layout, "Text_desc", 152, 41, 16, "#ffffff", string.format(data.content, percent) or "") GUI:setAnchorPoint(Text_desc, 0.5, 0.5) GUI:setTouchEnabled(Text_desc, false) GUI:Text_enableOutline(Text_desc, "#000000", 1) -- 滑动条 local Slider_progress = GUI:Slider_Create(Panel_Layout, "Slider_progress", 154, 20, "res/private/new_setting/bg_progress.png", "res/private/new_setting/bg_progress2.png", "res/private/new_setting/icon_xdtzy_17.png") GUI:setContentSize(Slider_progress, 228, 14) GUI:setIgnoreContentAdaptWithSize(Slider_progress, false) GUI:Slider_setPercent(Slider_progress, 50) GUI:setAnchorPoint(Slider_progress, 0.5, 0.5) GUI:setTouchEnabled(Slider_progress, true) -- 配置背景 local Image_2 = GUI:Image_Create(Panel_Layout, "Image_2", 307, 20, "res/private/new_setting/textBg.png") GUI:Image_setScale9Slice(Image_2, 33, 33, 9, 9) GUI:setContentSize(Image_2, 59, 28) GUI:setIgnoreContentAdaptWithSize(Image_2, false) GUI:setAnchorPoint(Image_2, 0.5, 0.5) GUI:setTouchEnabled(Image_2, true) -- 配置 local Text_desc_0 = GUI:Text_Create(Image_2, "Text_desc_0", 28, 14, 18, "#109c18", [[配置]]) GUI:setAnchorPoint(Text_desc_0, 0.5, 0.5) GUI:setTouchEnabled(Text_desc_0, false) GUI:Text_enableOutline(Text_desc_0, "#111111", 1) GUI:setVisible(Image_sel, enable) GUI:Slider_setPercent(Slider_progress, percent) local progressBarPath = "" local progressSlidBallPath = "" --红条 if data.id == SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT1 or data.id == SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT2 or data.id == SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT3 or data.id == SLDefine.SETTINGID.SETTING_IDX_HP_PROTECT4 or data.id == SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT1 or data.id == SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT2 or data.id == SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT3 or data.id == SLDefine.SETTINGID.SETTING_IDX_HERO_HP_PROTECT4 then progressBarPath = GUIDefine.PATH_RES_PRIVATE .. "new_setting/bg_progress3.png" progressSlidBallPath = GUIDefine.PATH_RES_PRIVATE .. "new_setting/hpbar.png" else --蓝条 progressBarPath = GUIDefine.PATH_RES_PRIVATE .. "new_setting/bg_progress4.png" progressSlidBallPath = GUIDefine.PATH_RES_PRIVATE .. "new_setting/mpbar.png" end GUI:Slider_loadProgressBarTexture(Slider_progress, progressBarPath) GUI:Slider_loadSlidBallTextureNormal(Slider_progress, progressSlidBallPath) GUI:Slider_addOnEvent(Slider_progress, function(_, eventType) if eventType == 0 then local newValue = GUI:Slider_getPercent(Slider_progress) local values = SL:GetValue("SETTING_VALUE", data.id) local percent = values[2] or 50 if math.abs(newValue - percent) >= 1 then SL:SetValue("SETTING_VALUE", data.id, {nil, newValue }) GUI:Text_setString(Text_desc,string.format(data.content, newValue)) end end end) GUI:addOnClickEvent(CheckBox_able, function() local values = SL:GetValue("SETTING_VALUE", data.id) local enable = values[1] == 1 SL:SetValue("SETTING_VALUE", data.id, { enable and 0 or 1 }) --刷新ui GUI:setVisible(Image_sel, not enable) end) GUI:addOnClickEvent(Image_2, function() UIOperator:OpenProtectSettingUI(data) end) return Panel_Layout end