传奇世界挂机脚本编写与配置完整指南

来源: 作者: 点击:
挂机脚本核心功能包括自动寻路、怪物攻击、物品拾取、血量监控和回城补给。脚本需根据服务端类型(如GOM、Hero、Mir2)调整指令,以下以通用Mir引擎为基础说明实现方法。

脚本主文件通常命名为AutoHang.txt,置于MirserverMir200EnvirQuestDiary目录下。入口标签为[@AutoStart],由NPC或命令触发。

1. 基础移动与攻击逻辑
[@AutoStart]
; 设置挂机地图编号,例如祖玛寺庙为3
MOV M0 3
; 检查当前地图是否为目标地图
IF
EQUAL D0 M0
ACT
GOTO @CheckMonster
ELSEACT
MAPMOVE M0 100 100
WAIT 5000
GOTO @AutoStart

[@CheckMonster]
; 检测周围是否有怪物(假设怪物名称含“教主”)
IF
MONCOUNT 教主 > 0
ACT
GOTO @Attack
ELSEACT
; 无怪时随机移动
RANDOMMOVE 30
WAIT 2000
GOTO @CheckMonster

[@Attack]
; 使用技能攻击最近目标
USESKILL 1
WAIT 1000
; 持续攻击直到怪物死亡
IF
MONCOUNT 教主 > 0
ACT
GOTO @Attack

2. 自动拾取设置
在QFunction.txt中添加[@PickUp]标签:
[@PickUp]
IF
CHECKITEM 金条 1
ACT
PICKUPITEM 金条
IF
CHECKITEM 装备 1
ACT
PICKUPITEM 装备

需配合服务端开启自动拾取开关,部分引擎需在!Setup.txt中设置AutoPickUp=1。

3. 血量与药水控制
通过HP比例触发吃药动作:
[@CheckHP]
IF
HP

[@StartHang]
ACT
STARTTIMER H 1 ; 每1秒执行一次检查
SENDMSG 5 挂机已启动

[@StopHang]
ACT
STOPTIMER H
SENDMSG 5 挂机已停止

定时器H关联的[@OnTimerH]标签需包含上述所有检测逻辑。

6. 引擎差异处理
GOM引擎:使用CHECKBAG空格判断背包,指令为CheckBag;
Hero引擎:拾取用GetItem,移动用MoveTo;
Mir3:需指定地图层参数,如MAPMOVE 3:1 100 100。

7. 调试技巧
在关键步骤插入日志输出:
ACT
LOG AutoHang.log 当前HP:HP 怪物数:MONCOUNT

查看MirserverLog目录下日志文件定位问题。

脚本生效需重启M2或执行“Reload Script”。挂机效率受网络延迟和服务器刷新频率影响,建议初始测试时缩短移动距离,避免角色卡墙。