1.76复古传奇自动打怪脚本编写详解

来源: 作者: 点击:
1.76版本的传奇服务端通常基于Mir2或996引擎,其脚本系统依赖QFunction-0.txt、QManage.txt以及QuestDiary目录下的子程序。实现自动打怪功能需结合怪物检测、坐标移动与攻击逻辑,不依赖外部工具,仅通过服务端脚本指令完成。

首先,在QuestDiary中创建挂机脚本目录,例如“AutoFight”。进入该目录后,新建主控脚本文件“Start.txt”,内容用于初始化挂机状态并设置循环检测。核心在于持续扫描地图内符合条件的怪物,并执行移动和攻击动作。

脚本第一步是查找目标怪物。使用命令:
IF
CHECKMONMAP 地图名 怪物名称
ACT
MOVRUNTO 怪物名称
DELAYCALL 500 @AttackMonster

其中,CHECKMONMAP用于判断当前地图是否存在指定名称的怪物;MOVRUNTO命令使角色向最近的该怪物奔跑移动。为避免频繁触发,加入DELAYCALL延迟500毫秒后再执行攻击。

攻击部分在@AttackMonster标签中处理:
[@AttackMonster]
IF
CHECKTARGET 怪物名称
ACT
ATTACK 怪物名称
DELAYCALL 1000 @CheckMonsterAlive

ATTACK命令对已选中的目标发起攻击。随后通过DELAYCALL调用存活检测,防止攻击已死亡目标。

怪物存活检测逻辑如下:
[@CheckMonsterAlive]
IF
CHECKTARGET 怪物名称
ACT
DELAYCALL 800 @AttackMonster
ELSEACT
DELAYCALL 1000 @FindNewMonster

若目标仍存在,则继续攻击;否则跳转至寻找新怪物流程。

寻找新怪物通过重新调用主检测实现:
[@FindNewMonster]
IF
CHECKMONMAP 地图名 怪物名称
ACT
MOVRUNTO 怪物名称
DELAYCALL 500 @AttackMonster
ELSEACT
WAIT 3000
GOTO @FindNewMonster

若未发现怪物,等待3秒后重新扫描,形成持续挂机循环。

为提升效率,可限定打怪范围。在MOVRUNTO前加入距离判断:
IF
CHECKMONRANGE 怪物名称 10
ACT
MOVRUNTO 怪物名称

CHECKMONRANGE确保只攻击10格以内的怪物,避免无效跑图。

脚本需通过QManage.txt注册触发点。例如在玩家点击“开始挂机”按钮时调用:
[@Main]
SAY

[@CallAutoFight]
ACT
CALL [AutoFight\Start.txt] @Main

CALL指令加载外部脚本,实现模块化管理。

此外,需配置怪物行为参数。在MonGen.txt中确保怪物类型非和平(Race≠0),且在MonItems目录下为每个怪物设置掉落物品,否则可能被判定为无效目标。部分引擎要求怪物HP大于0且可攻击,需在Def文件中确认属性正确。

脚本运行期间,角色会持续检测、移动、攻击,直至手动停止或离开地图。整个过程无需人工干预,完全由服务端逻辑驱动,适用于1.76复古版本的标准架构。