很多兄弟可能还不知道翎风引擎有免费的封速插件可以使用,这个是大佬传奇千秋的公益作品!
希望越来越多的人喜欢,群服的话封个速就很不错了兄弟们! 起码能提升你不少收益!
传奇千秋封速插件 v2026090801.zip 附件大小:99.41 KB | 售价:1金币 | 记录
设置1个金币只是统计下下载人数而已,大家不要在意这些细节!
翎风引擎千秋封速插件是传奇开服圈针对翎风引擎生态开发的一款专业反加速科技插件,核心作用是精准拦截玩家使用的变速齿轮、加速器等作弊工具,保障游戏攻速、移动速度的公平性。 🛡️ 核心功能特性- 多层封速校验:覆盖移动速度、攻击速度、魔法释放速度三个核心维度,从底层拦截变速类科技,避免出现玩家超速跑图、无限出刀**服内平衡的情况。
- 翎风原生适配:和翎风引擎的底层逻辑深度兼容,相比通用封速插件,不会出现技能卡顿、攻速判定异常等常见冲突问题,适配PC端原生翎风引擎环境。
- 自定义规则配置:支持GM根据自己版本的攻速上限,灵活设置不同职业、不同装备的速度阈值,超出阈值自动触发警告、踢下线或封号处理。
- 低性能占用:插件运行时资源占用极低,不会额外增加服务器CPU负载,百人同服场景下也不会出现卡顿掉帧。
使用方法说明:
一、插件简介
本插件面向翎风 M2Server 服务端,依据翎风引擎官方服务端插件 API 规范,采用 ISO C11 标准开发。
本插件未引入第三方库,未混淆代码,未加密,未加壳,纯C实现,确保极致性能。
为了性能考量,本插件最多支持检测256个在线角色,单角色约 1.6 KB,256 人约 410 KB 状态表占用,压测Hook p99 低于 7μs。
理论上,遵循相同或兼容官方插件 API 的翎风引擎版本具备兼容基础。作者已在 20240613 和 20260707 版本完成测试,其他版本未经验证,使用前请自行确认兼容性。
本插件属于封速插件,并不等同于封挂,仅在服务端判断玩家的操作频率是否异常,并在达到阈值后执行预设的处置动作。
在作者测试环境中,可识别并处置变速齿轮/CE以及市面上常见的加速/倍攻科技。
但本插件不保证 100% 准确识别所有异常操作,误判、漏判或处置延迟均有可能发生。请在正式启用前完成充分的测试和验证,并合理设置检测参数。
二、安装与启用
1. 确保 M2Server 已停止运行。
2. 将 CQQQAntiCheat.dll 放入 Mir200 目录。
3. 在 Mir200\PlugList.txt 中添加一行:CQQQAntiCheat.dll
4. 启动 M2Server。
5. 引擎启动完成后,M2 顶部主菜单中会出现“传奇千秋封速”,点击即可打开设置窗口。
请勿重复添加插件行。正式启用处置功能前,建议先使用测试服验证。
当修改了 M2Server 配置中的各项速度设置或者修改了技能数据库的 Delay 字段时,需要重新打开插件设置并点击保存使本插件可以正确读取近期更新的速度参数。
三、设置说明
(一)检测策略
1. 宽容度
用于吸收网络波动、服务器负载和正常计时误差。数值越大,检测越宽松;数值越小,检测越严格。
2. 处置阈值
在5分钟时间窗口内,某类异常累计达到该次数后,进入异常处置流程。
预设按钮参数如下:
严格:宽容度 2,处置阈值 1 (建议慢速/复古版本使用)
均衡:宽容度 3,处置阈值 1 (一般建议使用此设定)
宽松:宽容度 3,处置阈值 2 (高攻速版本/服务器网络较差时使用)
手动输入并保存的数值优先生效。
(二)异常处置
1. 警告
向玩家发送提示并弹出提示,锁定角色 5 秒。
2. 下线
发送提示后强制断开玩家连接。
3. 封号
执行下线,同时将账号加入黑名单,禁止再次登录。
4. 封号+机器码
执行封号,并将账号和机器码同时加入黑名单。
5. 关闭
不执行自动处置,但仍会执行通知中的设置。
(三)通知方式
1. 本地
在 M2 主窗口输出处置日志,并将处置记录写入:Mir200\传奇千秋封速日志.txt
2. 推送
向配置的 HTTP 接口发送异常事件,并根据接口返回结果执行后续操作。
配置接口地址和密钥后,保存前必须完成测试请求,并收到包含 ok:true 的标准 JSON 响应。
完整请求字段、响应格式和接入示例请参考:传奇千秋封速推送协议.txt
3. 脚本
调用 QF 内的 [@CQQQAntiCheat] 脚本块,由脚本进行个性化处理。
在 [@CQQQAntiCheat] 脚本块中可以使用 GetPlayInfo 或 <$USERNAME> 等获取玩家信息用于写入自己的日志/封号文件或用作其他处理
例如:
```
[@CQQQAntiCheat]
#ACT
GetPlayInfo ID S1
SENDMSG 5 账号:<$STR(S1)>
SENDMSG 5 角色:<$USERNAME>
GetPlayInfo IP S1
SENDMSG 5 IP:<$STR(S1)>
SENDMSG 5 机器码:<$MACHINEID>
```
四、黑名单与白名单
1. 黑名单
账号或机器码进入黑名单后,登录时会被自动拒绝或断开连接。
2. 白名单
账号加入白名单后,将跳过速度监控和自动处置。
3. 优先级
黑名单优先于白名单。
黑名单和白名单可通过设置窗口维护,并持久化到插件配置。 传奇千秋封速插件更新日志
V2026090801
========================================
优化检测逻辑,检测更准确,减少误判
调整预设按钮的参数
严格:宽容度 2,处置阈值 1
均衡:宽容度 3,处置阈值 1
宽松:宽容度 3,处置阈值 2
优化移动的检测逻辑,减少误判
V2026082303
========================================
严重:修复了部分自定义技能会导致误判的问题(部分开关类型的自定义技能被错误的判断为了施法导致误判)
修复通知方式为本地时未在 M2 中打印的问题
增加检测到异常后把相关数据写入日志文件,便于分析
如果您在使用中出现了可确认的误判,请将 Mir200\传奇千秋封速.log 通过邮件发送给我们用于分析优化
V2026082201:
========================================
通知方式调整为多选 可同时执行多个通知方案
通知方式增加调用QF内的 [@CQQQAntiCheat] 脚本块,可由脚本进行个性化处理
在 [@CQQQAntiCheat] 脚本块中可以使用 GetPlayInfo 等获取玩家信息用于写入自己的日志/封号文件或用作其他处理
例如:
```
[@CQQQAntiCheat]
#ACT
GetPlayInfo ID S1
SENDMSG 5 账号:<$STR(S1)>
SENDMSG 5 角色:<$USERNAME>
GetPlayInfo IP S1
SENDMSG 5 IP:<$STR(S1)>
SENDMSG 5 机器码:<$MACHINEID>
```
对性能进行了优化
M2日志/推送/写日志现在采用独立线程避免阻塞插件或M2主进程
对部分逻辑进行了优化,减少了不必要的计算和内存占用
调整了动态门禁和检测窗口,低风险角色放行窗口期动态增加,减少性能消耗
角色首次登录后增加数据预热,降低首次登录时的大量噪音干扰导致误判
优化服务器/M2在高负载时可能出现的误判问题(仍需进一步优化)
优化了技能数据库 Delay 的计算方式,有效避免检测窗口内多技能循环造成的额外噪音干扰
V2026082004:
========================================
初始版本 实现基础封速功能 传奇千秋封速推送协议
====================
1. 协议概览
-----------
本协议用于设置窗口选择“推送”后的保存测试和运行时异常玩家通知。两者共用同一个接口地址和 HTTP POST 通道,仅通过 event 区分请求用途。
- 请求方法:POST
- 支持协议:HTTP、HTTPS
- 请求体:UTF-8 编码的 JSON 对象
- 请求头:Content-Type: application/json
- 协议版本:1
- 成功状态码:HTTP 2xx
- 密钥传递:直接放在 JSON 请求参数 secret 中,不使用自定义请求头
选择推送后,保存设置会向同一个接口发送 event=settings_test 的完整虚拟报文;测试失败、HTTP 状态码不是 2xx 或返回值不满足要求时,设置不会保存。运行时异常使用 event=speed_illegal_candidate。
密钥不应写入接口地址查询字符串、插件日志或 M2 日志。生产环境建议使用 HTTPS。
2. 保存时测试请求
-----------------
保存推送配置时,插件向配置的同一个接口地址发送一次测试请求。测试请求使用通用事件、身份字段和固定虚拟数据,便于对接方只实现一个 POST 接口。
2.1 请求格式
请求体示例:
POST / HTTP/1.1
Content-Type: application/json
{
"secret": "接口自定义密钥",
"event": "settings_test",
"plugin": "CQQQAntiCheat",
"protocol": 1,
"server_name": "测试服",
"sequence": 1787184000123,
"session_id": 0,
"window": "movement",
"account": "__CQQQAntiCheatSettingsTest__",
"machine_id": "00000000000000000000000000000000",
"character_name": "__CQQQAntiCheatSettingsTest__"
}
字段说明:
字段 类型 必填 说明
-------------- ------- ---- ---------------------------------------------------
secret string 是 设置窗口中填写的自定义密钥
event string 是 固定为 settings_test
plugin string 是 固定为 CQQQAntiCheat
protocol integer 是 固定为 1
server_name string 是 M2 [Server] ServerName;读取失败时为 <unavailable>
sequence integer 是 Unix 毫秒时间戳;同一毫秒内连续请求会递增以保持稀缺
session_id integer 是 固定为 0
window string 是 固定为 movement
account string 是 固定为 __CQQQAntiCheatSettingsTest__
machine_id string 是 固定为全零 32 位十六进制字符串
character_name string 是 固定为 __CQQQAntiCheatSettingsTest__
2.2 返回格式
接口测试成功时返回:
{
"ok": true
}
ok 必须是 JSON 布尔值 true。以下情况都会导致保存失败:
- 请求无法连接、超时或发送失败;
- HTTP 状态码不是 200–299;
- 返回内容不是合法 JSON 对象;
- 缺少 ok 字段;
- ok 不是布尔值 true,例如 false、"true" 或 1。
测试响应中可以附带运行时响应字段,但保存阶段只要求 ok:true,不会根据测试响应执行封禁、机器码封禁或写入激活码。
3. 运行时异常推送请求
---------------------
速度检测达到非法候选条件后,插件将请求放入有界队列,由后台线程发送一次异常通知。网络请求不在玩家 Hook 热路径中执行。
运行时请求只上传事件、服务器、会话、速度窗口和玩家身份字段,不上传间隔、均值、异常计数、阈值或 illegal_candidate 等诊断参数。
3.1 请求格式
请求体示例:
{
"secret": "接口自定义密钥",
"event": "speed_illegal_candidate",
"server_name": "测试服",
"sequence": 1787184000456,
"session_id": 345678,
"window": "movement",
"account": "test_account",
"machine_id": "00112233445566778899AABBCCDDEEFF",
"character_name": "测试角色"
}
字段说明:
字段 类型 必填 说明
-------------- ------- ---- --------------------------------------------------------------------------------
secret string 是 设置窗口中填写的自定义密钥
event string 是 固定为 speed_illegal_candidate
server_name string 是 M2 [Server] ServerName;读取失败时为 <unavailable>
sequence integer 是 Unix 毫秒时间戳,永久稀缺值
session_id integer 是 玩家当前登录会话标识,用于帮助服务端决策
window string 是 速度窗口:movement、attack 或 spell
account string 是 账号;无法获取时为 <unavailable>
machine_id string 是 机器码;无法获取时为 <unavailable>
character_name string 是 角色名;无法获取时为 <unavailable>
账号、机器码和角色名由 M2 原始编码转换为 UTF-8 后写入 JSON。JSON 字符串中的引号和反斜杠会进行转义。
4. 运行时返回格式
-----------------
接口处理异常通知后返回 JSON 对象:
{
"ok": true,
"ban": true,
"machine_ban": false,
"activation_code": "ACT-20260818-0001"
}
字段说明:
字段 类型 必填 默认值 说明
--------------- ------- ---- -------- --------------------------------------------
ok boolean 是 无 必须为 true,否则本次响应无效
ban boolean 否 false 为 true 时请求对匹配的玩家执行封号决策
machine_ban boolean 否 false ban:true 时为 true,同时封禁机器码
activation_code string 否 空字符串 写入处置审计日志,用于自定义用途
响应中的布尔值必须是 JSON 布尔值,不能使用字符串或数字代替。例如应使用 true,不能使用 "true" 或 1。
4.1 决策规则
- ok:false、缺少 ok、返回值格式错误或请求失败:不执行远程封禁。
- ok:true, ban:false:本次不执行封禁;machine_ban 不单独触发封禁。
- ok:true, ban:true, machine_ban:false:执行账号封禁。
- ok:true, ban:true, machine_ban:true:执行账号和机器码封禁。
- 返回的 activation_code 会随处置事件写入插件日志;未返回时按空值处理。
- 插件会校验 session_id 和玩家对象,返回决策只会作用于原异常玩家的当前会话。
- 远程封禁生效后会立即写入黑名单、锁定登录并将该角色踢下线。
5. 服务端实现建议
-----------------
接口服务端建议:
1. 读取 JSON 请求体中的 secret,校验通过后再处理事件。
2. 先校验 event 和 protocol,再校验运行时事件字段。
3. settings_test 请求返回 {"ok":true},确认地址、网络和密钥可用;测试请求中的固定账号和角色名不得触发真实处置。
4. 运行时请求无论是否决定封禁,都返回明确的 ok 布尔值。
5. 对重复的 sequence 或 session_id 做幂等处理,避免网络重连或服务端重复处理造成重复操作;sequence 按 Unix 毫秒时间戳解析和存储。
6. 使用 HTTPS,并避免在服务端普通访问日志中明文记录 secret。
6. 配置示例
-----------
[policy]
notification_mode=2
notification_endpoint=https://example.com/anti-cheat/notify
notification_secret=change-this-secret
notification_endpoint 和 notification_secret 为空时不能保存推送配置。服务器名称不在插件配置中重复保存,而是从 M2 官方 INI 接口读取。接口响应不符合本协议时,插件会记录推送失败并放弃本次远程决策。
|