封挂功能配置
引擎单区/通区封禁玩家脚本
通过 AC 封挂网关与大数据客户端配合,使用脚本实现引擎层面的单区或通区封禁/解封玩家角色。
功能概述
AC 反外挂程序 8.9.7.3 版本起,大数据客户端支持通过调用脚本实现引擎层面的封禁与解封。GM 可安装配套脚本或自由发挥,实现单区/通区引擎脚本封禁解封。
以下所有功能必须搭配最新 8.9.7.3 AC 网关使用(大数据程序也需同步更新),老程序不生效。封禁或解封角色所在游戏分区必须确保至少有一名玩家在线,否则通信失败。
脚本安装
1. UserCmd.txt 配置
在 D:\MirServer\Mir200\Envir\UserCmd.txt 中加入以下内容:
AC反挂封禁触发 36
AC反挂解封触发 37
已在运行的区可以在 M2 - 查看 - 列表设置 - 其他功能列表 - 自定义命令列表中手动添加。编号 36、37 不能与已有 UserCmd 编号冲突。
2. QManage.txt 登录脚本
在 QManage.txt 的 [@login] 段新增:
[@login]
#IF
; 检测 INTS23 = 99(被封禁标记)
Compval <$INTS23> = 99
#ACT
; 踢下线
KICK
3. QFunction-0.txt 脚本
在 QFunction-0.txt 中加入封禁与解封的触发逻辑:
[@UserCmd36]
#ACT
; 返回执行封禁结果到大数据客户端
MOV SACFJ CMD=【AC反挂封禁触发】<$param(1)>|封禁成功**************************************************************************************
DEC SACFJ 100 200
sendmsg 6 <$STR(SACFJ)>
; 赋值被封禁角色名到变量 SacName
Mov SacName <$param(1)>
; 设置被封角色 INTS23 的值为 99,配合登录脚本使用
GMEXECUTE INTS 23 <$Str(SacName)> = 99
; 踢掉被封角色
<$Str(SacName)>.Kick
Break
[@UserCmd37]
#ACT
; 返回执行解封结果到大数据客户端
MOV SACFJ CMD=【AC反挂解封触发】<$param(1)>|解封成功************************************************************************************
DEC SACFJ 100 200
sendmsg 6 <$STR(SACFJ)>
Mov SacName <$param(1)>
; 设置被封角色 INTS23 的值为 0,取消禁止登录
GMEXECUTE INTS 23 <$Str(SacName)> = 0
Break
自定义封禁脚本(使用禁止登录列表)
如果需要使用自己的封禁列表而非 INTS 标记,可按以下方式编写:
QManage.txt 登录检测
[@login]
#IF
; 检测角色名是否在禁止登录列表中
CheckNameList ..\QuestDiary\禁止登录.txt
#ACT
KICK
QFunction-0.txt 封禁逻辑
[@UserCmd36]
#ACT
; 返回执行封禁结果到大数据客户端
MOV SACFJ CMD=【AC反挂封禁触发】<$param(1)>|封禁成功**************************************************************************************
DEC SACFJ 100 200
sendmsg 6 <$STR(SACFJ)>
; 赋值被封禁角色名到变量 SacName
Mov SacName <$param(1)>
; 添加角色名到禁止列表
INSERTLINE ..\QuestDiary\禁止登录.txt 1 <$Str(SacName)>
; 踢掉被封角色
<$Str(SacName)>.Kick
Break
[@UserCmd37]
#ACT
; 返回执行解封结果到大数据客户端
MOV SACFJ CMD=【AC反挂解封触发】<$param(1)>|解封成功************************************************************************************
DEC SACFJ 100 200
sendmsg 6 <$STR(SACFJ)>
Mov SacName <$param(1)>
; 从封禁列表中删除要解封的角色名
DELLINELIST ..\QuestDiary\禁止登录.txt 1 <$Str(SacName)>
Break
操作流程
- GM 在大数据客户端中选中目标玩家,点击封禁
- 大数据客户端向引擎发送封禁指令
- 引擎触发
@UserCmd36,执行封禁脚本 - 脚本将被封角色踢下线并标记禁止登录
- 解封流程同理,触发
@UserCmd37执行解封
注意事项
- 封禁或解封角色所在游戏分区必须确保至少有一名玩家在线,否则通信失败
- INTS 变量和 UserCmd 编号不能与版本中已有的冲突
- 大数据服务端需保持连接状态,无特殊情况不会断开
相关阅读
- AC封挂原理与增强模式 — 封禁机制背后的原理
- 速度限制配置 — 反加速限制
- 实名认证 — 账号实名与白名单管理
