-- 脚本名称: 局内一键范围 -- 适用引擎: UE4 (libUE4.so) -- 版本: 2.0 -- 搜索 libUE4.so 模块 local so = gg.getRangesList('libUE4.so') if so == nil or #so == 0 then gg.alert('未找到 libUE4.so,请确保游戏已运行!') return end local base = so[1].start -- 获取基址 if base == nil then gg.alert('获取基址失败!') return end -- 防闪退功能 local function antiCrash() if gg.getRangesList("libanogs.so:bss")[1] then local t = {} t[1] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0x300; -- 数值地址:0x7A74D89300 t[2] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0x3F8; -- 数值地址:0x7A74D893F8 t[3] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0x430; -- 数值地址:0x7A74D89430 t[4] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0x550; -- 数值地址:0x7A74D89550 t[5] = gg.getRangesList("libanogs.so:bss")[1]["start"] + 0x5D8; -- 数值地址:0x7A74D895D8 gg.addListItems({ [1] = { address = t[1], flags = 4, value = 64, freeze = true, }, [2] = { address = t[2], flags = 4, value = 64, freeze = true, }, [3] = { address = t[3], flags = 4, value = 64, freeze = true, }, [4] = { address = t[4], flags = 4, value = 64, freeze = true, }, [5] = { address = t[5], flags = 4, value = 64, freeze = true, }, }) gg.alert('✅ 防闪退已启动!') return true else gg.alert('❌ 未找到 libanogs.so:bss') return false end end -- 定义要修改的偏移和数值 local offsets = { {offset = 0x7A48B3C, value = 1035993344, desc = '范围地址1'}, {offset = 0x7A48B44, value = 1035993345, desc = '范围地址2'} } -- 修改函数 local function modify(offset, value, desc) local addr = base + offset local success = gg.setValues({{address = addr, flags = 4, value = value}}) if success then print(string.format('✅ [%s] 修改成功: 0x%X -> %d', desc, addr, value)) else print(string.format('❌ [%s] 修改失败: 0x%X', desc, addr)) end end -- 开启范围功能 local function enableRange() -- 执行全部修改 for _, item in ipairs(offsets) do modify(item.offset, item.value, item.desc) end gg.alert('✅ 局内范围已开启!') end -- 关闭范围功能 local function disableRange() -- 获取当前已冻结的列表 local list = gg.getListItems() local count = 0 if list then for i, item in ipairs(list) do -- 检查是否是防闪退的地址 if item.address and item.freeze == true then -- 取消冻结 gg.setValues({{address = item.address, flags = item.flags or 4, value = item.value, freeze = false}}) count = count + 1 end end end gg.alert(string.format('✅ 已关闭范围功能!\n已解除 %d 个冻结地址', count)) print(string.format('已关闭 %d 个冻结地址', count)) end -- 主菜单 local function showMenu() local choice = gg.choice({ '🎯 开启局内范围', '⛔ 关闭范围', '🛡️ 启动防闪退', '❌ 退出脚本' }, '⚡ 局内一键范围 - 请选择操作') return choice end -- 主循环 local running = true while running do local choice = showMenu() if choice == nil then break -- 用户取消 end if choice == 1 then enableRange() elseif choice == 2 then disableRange() elseif choice == 3 then antiCrash() elseif choice == 4 then print('脚本已退出') running = false break end gg.sleep(100) end print('脚本结束运行')