封挂功能配置

引擎单区/通区封禁玩家脚本

通过 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

操作流程

  1. GM 在大数据客户端中选中目标玩家,点击封禁
  2. 大数据客户端向引擎发送封禁指令
  3. 引擎触发 @UserCmd36,执行封禁脚本
  4. 脚本将被封角色踢下线并标记禁止登录
  5. 解封流程同理,触发 @UserCmd37 执行解封

注意事项

  • 封禁或解封角色所在游戏分区必须确保至少有一名玩家在线,否则通信失败
  • INTS 变量和 UserCmd 编号不能与版本中已有的冲突
  • 大数据服务端需保持连接状态,无特殊情况不会断开

相关阅读