挂机脚本基础架构
挂机脚本基于传奇引擎脚本系统实现,核心功能包含自动寻路、怪物识别、技能释放、物品拾取、状态检测五大模块。脚本文件存放于客户端Scripts文件夹,通过触发器调用执行。
;基础挂机脚本框架
[@MAIN]
ACT
CALL @CheckState
CALL @FindMonster
CALL @Attack
CALL @PickItem
CALL @ReturnTown
BREAK
[@CheckState]
ACT
CHECKHP 0
IF
BREAK
INC G_MapIndex
END
BREAK
坐标列表预先存储在变量数组中,每张地图配置五个至十个刷怪点。玩家可根据实际地图调整坐标数值,确保覆盖怪物密集区域。
;坐标配置示例
G_MapX[0]=300
G_MapY[0]=300
G_MapX[1]=350
G_MapY[1]=350
G_MapX[2]=400
G_MapY[2]=400
怪物识别与锁定
怪物识别通过CHECKMONCOUNT命令实现,检测指定范围内怪物数量。锁定目标后调用攻击脚本,优先攻击近距离怪物。
[@LockTarget]
ACT
CHECKMONCOUNT 沃玛卫士 1
IF
MOV G_TargetName 沃玛卫士
CALL @Attack
ELSE
CHECKMONCOUNT 沃玛战士 1
IF
MOV G_TargetName 沃玛战士
CALL @Attack
ELSE
CALL @FindMonster
BREAK
怪物优先级可自定义配置,BOSS类怪物优先于普通怪物。脚本按配置顺序检测,发现目标后立即锁定攻击。
;怪物优先级配置
沃玛教主
沃玛卫士
沃玛战士
沃玛卫士
半兽勇士
技能释放逻辑
技能释放根据职业类型配置不同脚本,战士使用刺杀、烈火,法师使用火墙、冰咆哮,道士使用灵魂火符、施毒术。
[@Attack]
IF
CHECKJOB 战士
CHECKLEVEL >= 35
ACT
SKILL 烈火剑法 1
WAIT 1500
SKILL 刺杀剑术 1
WAIT 1000
BREAK
IF
CHECKJOB 法师
CHECKLEVEL >= 35
ACT
SKILL 火墙 1
WAIT 2000
SKILL 冰咆哮 1
WAIT 1500
BREAK
IF
CHECKJOB 道士
CHECKLEVEL >= 35
ACT
SKILL 灵魂火符 1
WAIT 1000
SKILL 施毒术 1
WAIT 3000
BREAK
技能冷却时间通过WAIT命令控制,单位毫秒。根据实际技能CD调整等待时间,避免技能放空。蓝量不足时自动切换普通攻击。
[@AttackNormal]
ACT
CHECKMP = 30
CHECKLEVEL = 200
CHECKTIME 60
IF
SENDMSG 0 检测到卡死 尝试恢复
RANDOMMOVE
WAIT 5000
CALL @MAIN
ELSE
CHECKDISCONNECT
IF
SENDMSG 0 检测到断线 重连中
RECONNECT
BREAK
卡死检测通过位置变化判断,六十秒内位置无变化视为卡死。自动执行随机移动尝试脱困,失败后回城重启。
[@StuckRecover]
ACT
MOV G_LastX P_X
MOV G_LastY P_Y
WAIT 60000
CHECK P_X = G_LastX
CHECK P_Y = G_LastY
IF
CALL @RecoverAction
BREAK
挂机收益统计
收益统计功能计算挂机时段内获得物品总价值,包含装备、材料、金币三项。玩家可设置统计周期查看收益。
[@ProfitCount]
ACT
CALC G_TotalGold = G_TotalGold + P_Gold
CALC G_TotalExp = G_TotalExp + P_Exp
SAVEVAR G_TotalGold
SAVEVAR G_TotalExp
SENDMSG 0 累计金币:%G_TotalGold 累计经验:%G_TotalExp
BREAK
统计周期支持小时、日、周三种模式。周期结束时自动清零重新统计,或保存至历史数据供对比分析。
[@DayReset]
ACT
GETTIME D
CHECK D = 1
IF
SAVEVAR G_TotalGold
SAVEVAR G_TotalExp
MOV G_TotalGold 0
MOV G_TotalExp 0
BREAK
脚本启动与停止
脚本启动通过快捷键或命令触发,停止同样支持快捷操作。运行状态在界面显示,便于玩家监控。
;启动命令
@StartHangup=CALL @MAIN
;停止命令
@StopHangup=CLEAR G_HangupFlag
;状态查询
@CheckHangup=SENDMSG 0 挂机状态:%G_HangupFlag
快捷键配置在客户端设置中完成,建议设置F1启动、F2停止。状态图标显示在角色头像旁,绿色表示运行,红色表示停止。
;快捷键配置
F1=@StartHangup
F2=@StopHangup
F3=@CheckHangup
F4=@ReturnTown
脚本调试方法
脚本调试开启日志输出模式,查看每步执行结果。使用SENDMSG命令输出变量值,确认数据准确。
[@DebugMode]
ACT
SENDMSG 0 当前血量:%P_HP
SENDMSG 0 当前蓝量:%P_MP
SENDMSG 0 当前坐标:%P_X:%P_Y
SENDMSG 0 怪物数量:%G_MonCount
BREAK
调试模式完成後关闭日志输出,避免影响挂机性能。正式使用前测试各项功能,确认无问题后部署。
[@DebugOff]
ACT
SET G_DebugMode 0
SENDMSG 0 调试模式已关闭
BREAK
常见问题处理
挂机不移动检查地图坐标是否正确,寻路脚本是否调用。怪物不攻击确认技能配置是否匹配职业,蓝量是否充足。
物品不拾取检查背包空间是否已满,拾取列表是否包含目标物品。频繁回城确认药品阈值是否过低,适当调整百分比。
;问题排查清单
检查脚本语法错误
确认坐标数值准确
验证技能名称正确
检测药品数量充足
查看日志报错信息
脚本卡死时强制停止重启,清理变量后重新执行。断线重连后自动恢复挂机状态,无需手动干预。
[@AutoRecover]
ACT
CHECKDISCONNECT
IF
WAIT 10000
CALL @MAIN
ELSE
WAIT 5000
CALL @AutoRecover
BREAK

