金币检测回城脚本一般用于引擎内挂机逻辑,核心逻辑为持续读取角色当前金币数量,和预设最低金币阈值对比,当金币低于设定数值时,执行回城指令,同时停止寻路、打怪、拾取动作,避免继续消耗药水。下面这套脚本适配GOM引擎常用脚本语法,可直接放入挂机功能NPC或者挂机脚本文件内使用,相关指令可以根据引擎类型小幅调整。
首先是基础变量定义部分,先设定警戒金币数值,这里设置2000作为示例,可自行修改数字。
[@main]
#IF
CHECKGOLD < 2000
#ACT
SENDMSG 6 金币数量不足,准备回城
H.StopAutoPickUp
H.StopAutoMonster
H.StopAutoMove
MOVR A0 1
GOTO @BACKHOME
#ELSEACT
SENDMSG 6 金币充足,继续挂机
DELAYCALL 1000 @main
BREAK
[@BACKHOME]
#IF
#ACT
MAPMOVE 3 330 330
SENDMSG 6 已经返回主城,挂机暂停
BREAK
脚本运行逻辑,进入[@main]标签之后,脚本每隔1秒循环检测一次金币,CHECKGOLD指令用来读取人物身上金币,判断是否小于设定值。一旦条件成立,先关闭自动拾取、自动打怪、自动寻路,防止回城途中继续执行挂机动作造成异常,随后跳转到回城标签,执行地图跳转指令。金币充足的情况下,延时1000毫秒之后再次调用自身,持续循环检测。
如果使用GEE引擎,部分指令写法存在差异,自动功能关闭指令需要替换,参考版本如下。
[@main]
#IF
CHECKGOLD < 2000
#ACT
SENDMSG 6 金币不足,即将回城
SETAUTOPICKUP 0
SETAUTOMONSTER 0
SETAUTOMOVE 0
GOTO @BACKHOME
#ELSEACT
SENDMSG 6 金币正常挂机中
TIMER 1 @main
BREAK
[@BACKHOME]
#IF
#ACT
MAPMOVE 3 330 330
SENDMSG 6 回城完成,挂机停止
BREAK
脚本里的数值可以按需调整,警戒金币不要设置太低,角色回城路上消耗药水也会扣除金币,预留一部分余量能够防止卡在野外反复判定。延时时间单位为毫秒,1000毫秒等于1秒,不建议设置太短,频繁循环检测会增加运行负载,容易出现卡顿。MAPMOVE后面的地图编号和坐标,替换成自身想要回到的安全区域,部分环境传送指令需要换成RECAL或者其他回城命令。
额外增加容错分支,可以加上背包回城卷判断,优先消耗回城卷轴回城,没有回城卷再使用定点传送,扩展脚本如下。
[@main]
#IF
CHECKGOLD < 2000
#ACT
SENDMSG 6 金币不足,检测回城道具
H.StopAutoPickUp
H.StopAutoMonster
H.StopAutoMove
GOTO @CHECKITEM
#ELSEACT
DELAYCALL 1000 @main
BREAK
[@CHECKITEM]
#IF
CHECKITEM 回城卷 1
#ACT
USEITEM 回城卷
SENDMSG 6 使用回城卷返回
BREAK
#ELSEACT
MAPMOVE 3 330 330
SENDMSG 6 无回城卷,直接传送回城
BREAK
脚本部署有两种方式,第一种挂载在挂机NPC,点击NPC启动之后脚本常驻循环检测;第二种放在挂机定时器内,和打怪拾取脚本合并写在一起。需要注意检测顺序,金币判断放在打怪逻辑之前,优先判断资源状态,资源达标之后再执行寻路打怪流程。部分引擎自带挂机模块,自带的自动功能指令不通用,替换关闭自动功能的指令即可。
运行过程中常见问题,金币已经低于阈值但是不回城,优先核对指令关键字,确认CHECKGOLD是否拼写正确,区分身上金币和仓库金币,这条指令只读取人物随身携带金币,仓库金币不会计入判断。如果触发回城之后依旧继续打怪,是自动功能关闭指令和引擎不匹配,更换对应引擎的关闭挂机指令。传送失效,检查地图编号是否正确,目标地图是否允许传送,部分地图禁止MAPMOVE跳转,需要更换回城方式。
想要增加提醒功能,可以在触发判定的时候增加文字提示,也可以搭配喇叭信息发送给自身查看,方便确认脚本触发状态。整套脚本没有复杂嵌套逻辑,可和血量回城、负重满回城的判断写在同一个检测模块,多个条件依次判断,任意一项满足就触发回城流程。
传奇金币不足触发自动回城脚本编写思路与完整代码示例
来源:
作者:
点击:

