modmenu 悬浮窗菜单——ImGui 驱动的 Mod Menu 快速上手
最简单的例子
var menu = modmenu.create('我的 Mod Menu', [
{ type: 'text', val: 'Hello JsHook!' },
{ type: 'switch', title: '金币翻倍', val: true }
], {
onchange: function (result) {
console.log('[+] 状态变化: ' + JSON.stringify(result));
}
});
就这样,一个完整的悬浮窗菜单就出来了。
支持的组件类型
| type | 说明 | 关键字段 |
|---|---|---|
text | 静态文字 | val(文字内容)、color(可选) |
switch | 开关 | title、val(true/false) |
select | 下拉选择 | title、item(选项数组)、val(选中索引) |
slider | 滑动条 | title、val(当前值)、min、max |
button | 按钮 | title |
input | 输入框 | title、val(默认值) |
checkbox | 复选框 | title、val |
radio | 单选组 | title、item、val |
category | 分类标题(不可交互) | title |
collapse | 可折叠区域 | title、item(子组件数组)、default(默认展开) |
tab | 多标签页 | item(每个标签的内容) |
image | 图片 | width、height、val(图片 URL 或 base64) |
onchange 回调
任何组件状态变化都会触发 onchange:
onchange: function (result) {
switch(result.id) {
case 'gold-switch':
console.log('[+] 金币开关: ' + result.val);
break;
case 'speed-slider':
console.log('[+] 速度设为: ' + result.val);
break;
}
}
自定义组件 ID
给组件加 id 字段,方便在 onchange 里精确匹配:
{ type: 'switch', title: '金币翻倍', val: false, id: 'gold-switch' },
{ type: 'slider', title: '速度', val: 100, min: 1, max: 200, id: 'speed-slider' }
多标签页
var menu = modmenu.create('游戏辅助', [
{
type: 'tab',
item: [
{
title: '金币',
item: [
{ type: 'switch', title: '金币翻倍', val: true, id: 'gold' },
{ type: 'button', title: '立即加 99999', id: 'add-gold' }
]
},
{
title: '战斗',
item: [
{ type: 'switch', title: '无敌模式', val: false, id: 'god' },
{ type: 'slider', title: '攻击倍率', val: 100, min: 1, max: 500, id: 'atk' }
]
}
],
default: 0
}
], { onchange: function (r) {} });
实例方法
| 方法 | 说明 |
|---|---|
menu.close() | 关闭这个悬浮窗 |
menu.state() | 显示底部状态栏(ImGui 调试信息) |
menu.size(w, h) | 改变窗口尺寸(像素) |
menu.position(type, x, y) | 设置初始位置(type 1-9 对应 9 个预设位置) |
menu.icon(img) | 设置窗口图标(base64 或 URL) |
menu.edgeHiden(enable) | 拖到屏幕边缘自动隐藏图标 |
menu.update(id, value) | 动态更新某个组件的值 |
全局关闭
modmenu.closeAll();
关掉所有已创建的 Mod Menu。
增强渲染 vs 系统渲染
modmenu 底层用 ImGui 绘制。如果增强渲染开启,ImGui 直接走 GPU 绘制,悬浮窗体验更流畅且不能被系统录屏/截图捕获。如果增强渲染不可用(虚拟机/模拟器/部分机型),JsHook 会回退到 Android 系统渲染,性能略差且可被录屏捕获。
增强渲染相关问题排查见 增强渲染故障排查。