本文提供两类传奇血量触发关机脚本:易语言简易脚本(适用于本地客户端)、服务端脚本(死亡触发关机),均无需复杂操作,适配主流传奇版本及引擎,满足血量低于50或死亡后自动关机需求。
一、易语言脚本(本地客户端:血量低于50自动关机)
此脚本运行于本地电脑,通过读取传奇客户端内存中血量数值,判定低于50时执行关机命令,无需修改服务端,操作简单,适合个人使用。
1. 核心逻辑与依赖
核心逻辑:循环读取传奇客户端进程对应的血量内存地址,对比数值≤50时,调用系统关机命令;需提前获取对应传奇版本的血量内存地址(不同版本地址不同,可通过CE工具查找)。
依赖组件:易语言自带“进程操作”“内存读取”模块,无需额外安装第三方组件,确保易语言版本完整。
2. 完整易语言代码(简易版)
.版本 2
.程序集 窗口程序集_启动窗口
.程序集变量 进程ID, 整数型
.程序集变量 血量地址, 整数型
.程序集变量 当前血量, 整数型
.子程序 __启动窗口_创建完毕
进程ID = 进程_取ID (“Mir.exe”) // 传奇客户端进程名,部分版本为Mir2.exe,按需修改
血量地址 = 十六到十 (“00A1B2C3”) // 替换为对应版本的血量内存地址(示例地址)
时钟1.时钟周期 = 1000 // 每秒读取一次血量,可调整频率
.子程序 _时钟1_周期事件
.如果真 (进程ID = 0) // 检测客户端是否运行
信息框 (“未检测到传奇客户端进程!”, 0, )
结束 ()
.如果真结束
当前血量 = 内存_读整数型 (进程ID, 血量地址) // 读取血量数值
.如果真 (当前血量 ≤ 50) // 判定血量低于等于50
运行 (“shutdown -s -t 0”, 假, ) // 立即关机命令(-t 0为无延迟)
结束 ()
.如果真结束
3. 使用说明与注意
1. 内存地址获取:打开CE工具,附加传奇客户端进程,搜索当前血量数值,筛选出精准内存地址,替换代码中示例地址(00A1B2C3),否则无法读取血量。
2. 进程名调整:部分传奇版本客户端进程名为Mir2.exe、Legend.exe,需在“进程_取ID”命令中对应修改,确保能正常获取进程ID。
3. 关机命令修改:若需延迟关机,将“shutdown -s -t 0”改为“shutdown -s -t 30”(30秒延迟),便于紧急取消(输入shutdown -a取消关机)。
4. 兼容性:仅适用于Windows系统,64位系统需编译为64位程序,32位系统编译为32位程序,否则无法读取内存。
二、服务端脚本(死亡后自动关机:适配全端)
若需实现角色死亡后触发服务器关机(适用于GM测试或专属场景),通过服务端脚本编写,基于角色死亡事件触发,无需本地工具,适配所有客户端。
1. 脚本写法(放入QFunction全局脚本)
路径:MirServer\Mir200\Envir\Market_Def\QFunction-0.txt,脚本核心为检测角色死亡事件,触发关机命令,代码如下:
// 角色死亡后自动关机(可添加权限限制,仅指定角色触发)
#IF
@MonDie // 触发角色死亡事件
CHECKNAME 测试角色 // 可选:限制仅指定角色死亡触发,删除则所有角色死亡触发
#ACT
SENDMSG 1 【系统提示】角色已死亡,服务器将立即关机! // 全服提示
MAPM2EXE shutdown -s -t 0 // 调用系统关机命令,部分引擎用ENGINEEXE
2. 适配与调整
1. 权限限制:若仅需GM角色死亡触发,添加“CHECKADMIN 0”命令(放在CHECKNAME下方),确保仅0级GM死亡时执行关机,避免普通角色误触发。
2. 命令兼容:部分引擎不支持MAPM2EXE调用系统命令,可替换为“RUNCMD shutdown -s -t 0”,或联系引擎开发者获取对应执行命令。
3. 场景适配:适合GM测试角色强度、专属副本死亡结算等场景,正式服需谨慎使用,避免误关机影响玩家体验。
三、替代方案(无编程基础可用)
若无易语言编程基础,可通过“按键精灵”实现简易触发,步骤如下:
1. 打开按键精灵,新建脚本,添加“后台找色”命令,捕捉传奇客户端血量条低于50%时的颜色(如红色血条末端颜色)。
2. 设置循环检测,当捕捉到目标颜色时,执行“运行命令”,输入“shutdown -s -t 0”,触发自动关机。
3. 保存脚本,绑定快捷键,启动传奇客户端后运行脚本,即可实现血量过低自动关机,无需读取内存地址,操作更简单。
四、常见问题排查
1. 易语言脚本无法读取血量:检查内存地址是否正确、进程名是否匹配,确保客户端与脚本编译位数一致,关闭杀毒软件(可能拦截内存读取)。
2. 关机命令无效:Windows系统需以管理员身份运行脚本,否则无权限执行关机命令;部分服务器禁止调用系统命令,需调整引擎配置。
3. 服务端脚本不触发:确认脚本放入正确路径(QFunction-0.txt),重启M2引擎加载脚本;检查@MonDie事件是否被其他脚本覆盖,调整脚本优先级。
4. 按键精灵脚本误触发:精准调整找色范围,仅捕捉血量条对应区域颜色,避免背景色干扰,可添加多次验证逻辑,减少误判。

