安全区禁止红名停留,一旦红名角色踏入安全区域,系统自动抓取并传送至监狱地图,这套脚本依靠地图触发标签和人物状态判断实现,编写前先确认监狱地图编号、监狱入口坐标,同时做好脚本文件备份,防止代码错误导致地图触发失效。
打开地图文件,找到安全区对应的地图编号,在地图参数内增加触发标记,开启地图进入触发功能。只要玩家踏入该地图范围,就会调用Q-Function内的[@OnMapEnter]触发段,所有进入地图的人物都会执行这段脚本逻辑。脚本开头读取人物PK值,PK值大于设定数值就判定为红名,接着增加判断,确认当前地图为安全区地图编号,两个条件同时满足才执行抓捕动作。
脚本主体逻辑,检测到红名进入安全区,先发送屏幕提示文字,告知玩家安全区不允许红名停留,随后执行传送指令,将角色移动到监狱预设坐标。传送完成后,增加锁定逻辑,短时间内禁止该角色离开监狱地图,防止红名被抓后立刻回城逃脱。可以增加提示给到全服,播报红名玩家名称,实现公示效果,该部分代码按需保留,不需要则直接删除。
增加防重复抓捕判断是必要步骤,红名停留在安全区内会持续触发进入地图事件,不加限制会反复传送,造成角色不停闪烁。设置人物临时变量,抓捕成功后写入标记,标记存续期间再次触发脚本,直接跳过传送代码。设置变量超时时间,角色离开监狱后清除标记,下次进入安全区可以正常检测。
脚本示例代码段,[@OnMapEnter]
#IF
ISADMIN==0
MAP3
PKPOINT>100
CHECKVARHUMAN监狱标记<1
#ACT
MOVHUMAN监狱标记1
MAPMOVE50100100
SENDMSG0玩家<$USERNAME>红名闯入安全区,已被投入监狱!
DELAYGOTO300CLEARVAR
#ACT
CLEARVARHUMAN监狱标记
#SACT
#IF
#ACT
SENDMSG7红名禁止进入安全区,现已送入监狱。
代码内的地图编号、PK阈值、监狱坐标可自行修改,PKPOINT数值根据红名标准调整,部分版本PK值超过六十即为红名,按需修改数字。ISADMIN==0代表管理员不受脚本限制,管理员红名进入安全区不会被抓捕,方便管理员测试功能。
脚本写完保存,在M2控制台重载脚本,不需要重启服务端。进入游戏测试,新建普通角色,刷取PK值变成红名,走入安全区,查看是否触发传送,确认提示文字正常弹出。留在安全区持续走动,验证不会重复传送。测试管理员账号,红名进入安全区,确认不会被脚本抓取。
需要拓展功能时,可以增加监狱关押时长,在传送监狱的同时开启计时器,时间到达之后,释放玩家到指定回城坐标。增加关押倒计时提示,玩家在监狱内查看剩余关押时间。还可以增加判断,玩家身上是否拥有免罪道具,持有道具则跳过抓捕逻辑。
排查常见故障,红名走进安全区没有任何反应,优先核对地图触发是否开启,地图编号是否和脚本内填写一致,检查脚本有没有语法错误,M2日志查看报错信息。出现反复传送,就是缺少临时变量标记,每次触发没有记录抓捕状态,加上变量判断即可修复。管理员也被抓,去掉ISADMIN判断,或者参数写错,修正管理员判断条件。
部分引擎对人物变量支持有差异,如果人物变量不稳定,可以改用全局变量搭配人物名称存储标记。测试完成后,多账号同时测试,多名红名进入安全区,检查脚本会不会出现变量错乱。全部功能验证无误之后,保存脚本文件,记录地图编号、PK阈值、监狱坐标,方便后续调整规则。如果后续要关闭这个抓捕功能,直接注释掉脚本对应的触发代码,重载脚本即可。
打开地图文件,找到安全区对应的地图编号,在地图参数内增加触发标记,开启地图进入触发功能。只要玩家踏入该地图范围,就会调用Q-Function内的[@OnMapEnter]触发段,所有进入地图的人物都会执行这段脚本逻辑。脚本开头读取人物PK值,PK值大于设定数值就判定为红名,接着增加判断,确认当前地图为安全区地图编号,两个条件同时满足才执行抓捕动作。
脚本主体逻辑,检测到红名进入安全区,先发送屏幕提示文字,告知玩家安全区不允许红名停留,随后执行传送指令,将角色移动到监狱预设坐标。传送完成后,增加锁定逻辑,短时间内禁止该角色离开监狱地图,防止红名被抓后立刻回城逃脱。可以增加提示给到全服,播报红名玩家名称,实现公示效果,该部分代码按需保留,不需要则直接删除。
增加防重复抓捕判断是必要步骤,红名停留在安全区内会持续触发进入地图事件,不加限制会反复传送,造成角色不停闪烁。设置人物临时变量,抓捕成功后写入标记,标记存续期间再次触发脚本,直接跳过传送代码。设置变量超时时间,角色离开监狱后清除标记,下次进入安全区可以正常检测。
脚本示例代码段,[@OnMapEnter]
#IF
ISADMIN==0
MAP3
PKPOINT>100
CHECKVARHUMAN监狱标记<1
#ACT
MOVHUMAN监狱标记1
MAPMOVE50100100
SENDMSG0玩家<$USERNAME>红名闯入安全区,已被投入监狱!
DELAYGOTO300CLEARVAR
#ACT
CLEARVARHUMAN监狱标记
#SACT
#IF
#ACT
SENDMSG7红名禁止进入安全区,现已送入监狱。
代码内的地图编号、PK阈值、监狱坐标可自行修改,PKPOINT数值根据红名标准调整,部分版本PK值超过六十即为红名,按需修改数字。ISADMIN==0代表管理员不受脚本限制,管理员红名进入安全区不会被抓捕,方便管理员测试功能。
脚本写完保存,在M2控制台重载脚本,不需要重启服务端。进入游戏测试,新建普通角色,刷取PK值变成红名,走入安全区,查看是否触发传送,确认提示文字正常弹出。留在安全区持续走动,验证不会重复传送。测试管理员账号,红名进入安全区,确认不会被脚本抓取。
需要拓展功能时,可以增加监狱关押时长,在传送监狱的同时开启计时器,时间到达之后,释放玩家到指定回城坐标。增加关押倒计时提示,玩家在监狱内查看剩余关押时间。还可以增加判断,玩家身上是否拥有免罪道具,持有道具则跳过抓捕逻辑。
排查常见故障,红名走进安全区没有任何反应,优先核对地图触发是否开启,地图编号是否和脚本内填写一致,检查脚本有没有语法错误,M2日志查看报错信息。出现反复传送,就是缺少临时变量标记,每次触发没有记录抓捕状态,加上变量判断即可修复。管理员也被抓,去掉ISADMIN判断,或者参数写错,修正管理员判断条件。
部分引擎对人物变量支持有差异,如果人物变量不稳定,可以改用全局变量搭配人物名称存储标记。测试完成后,多账号同时测试,多名红名进入安全区,检查脚本会不会出现变量错乱。全部功能验证无误之后,保存脚本文件,记录地图编号、PK阈值、监狱坐标,方便后续调整规则。如果后续要关闭这个抓捕功能,直接注释掉脚本对应的触发代码,重载脚本即可。

