广告拦截插件使用说明
========================

插件功能
--------
本插件用于拦截通过仿盛大顶部渐隐消息发送的广告消息，支持自定义关键词和动态菜单管理。

版本信息
--------
- 插件名称：广告拦截插件
- 版本号：1.0
- 功能：拦截仿盛大顶部渐隐消息中的广告
- 支持：从TXT文件批量管理关键词
- 更新日期：2025-01-03

安装部署
--------
### 1. 安装插件
1. 将 `AdBlockPlugin.dll` 文件复制到 M2Server 的 Mir200 目录，在PlugList.txt中新起一行写入  AdBlockPlugin.dll
2. 重启 M2Server 服务
3. 插件会自动在插件同目录下创建 `AdKeywords.txt` 关键词文件

### 2. 文件结构
```
M2Server\Mir200\
├── AdBlockPlugin.dll          # 插件主文件
├── PlugList.txt               # 插件加载文件
└── AdKeywords.txt             # 关键词配置文件（自动创建）
```

菜单功能
--------

### 菜单结构
```
插件
  └── 广告过滤
       └── 广告屏蔽
            ├── 开启广告拦截
            ├── 关闭广告拦截
            ├── ────────── (分隔线)
            ├── 显示关键词列表
            ├── 重载关键词
            ├── 保存关键词
            └── 测试关键词
			
### 菜单功能说明

1. **开启广告拦截**
   - 启用广告拦截功能
   - 控制台输出："广告拦截已开启"

2. **关闭广告拦截**
   - 禁用广告拦截功能
   - 控制台输出："广告拦截已关闭"

3. **显示关键词列表**
   - 显示当前加载的所有广告关键词
   - 控制台输出："当前关键词: 关键词1,关键词2,..."

4. **重载关键词**
   - 从 `AdKeywords.txt` 文件重新加载关键词
   - 控制台输出："从文件重载关键词成功，共加载 X 个关键词"

5. **保存关键词**
   - 将当前关键词保存到 `AdKeywords.txt` 文件
   - 控制台输出："关键词已保存到文件，共 X 个关键词"

6. **测试关键词**
   - 测试关键词匹配功能
   - 控制台输出："[广告测试] 测试消息"测试结果"匹配结果: True/False"

关键词管理
----------

### 关键词文件格式
关键词文件 `AdKeywords.txt` 支持以下格式：

```
# 广告拦截插件关键词文件
# 每行可以包含多个逗号分隔的关键词，或每行一个关键词
# 以#开头的行是注释，不会被读取

广告,推广,购买,QQ群,微信群
QQ号,微信号,网址,www.,http
优惠,特价,促销,充值,元宝
金币,代练,外挂,辅助,私服
```

### 关键词编辑规则
1. **逗号分隔**：一行可以包含多个逗号分隔的关键词
2. **单行单词**：每行也可以只包含一个关键词
3. **注释支持**：以 `#` 开头的行是注释，不会被读取
4. **空行忽略**：空行会被自动忽略
5. **不区分大小写**：关键词匹配不区分大小写

### 默认关键词
插件首次运行时会自动创建包含以下默认关键词的文件：
- 广告、推广、购买、QQ群、微信群
- QQ号、微信号、网址、www.、http、https
- 优惠、特价、促销、充值、元宝、金币
- 代练、外挂、辅助、私服

聊天命令
--------
插件支持以下聊天命令（在游戏聊天框中输入）：

### 基本命令
- `@adblock_enable` - 开启广告拦截
- `@adblock_disable` - 关闭广告拦截
- `@adblock_showkeywords` - 显示关键词列表

### 关键词管理命令
- `@adblock_addkeyword 关键词` - 添加单个关键词
- `@adblock_test 测试消息` - 测试消息是否匹配关键词
- `@adblock_reloadkeywords` - 重载关键词文件
- `@adblock_savekeywords` - 保存关键词到文件

### 命令示例
```
@adblock_showkeywords          # 显示当前关键词
@adblock_addkeyword 新关键词    # 添加新关键词
@adblock_test 这是一个广告      # 测试关键词匹配
@adblock_reloadkeywords        # 重载关键词文件
```

工作原理
--------

### 广告拦截机制
1. **消息拦截**：插件通过Hook消息处理函数拦截所有游戏消息
2. **关键词匹配**：检查消息内容是否包含广告关键词
3. **消息拦截**：如果匹配到关键词，则拦截该消息不显示
4. **日志记录**：记录拦截的广告消息到控制台

### 拦截日志格式
```
[广告拦截] 拦截广告消息: 具体的广告内容
```

故障排除
--------

### 常见问题

1. **菜单不显示**
   - 检查插件是否正确加载
   - 查看控制台是否有加载成功消息

2. **关键词不生效**
   - 检查 `AdKeywords.txt` 文件是否存在
   - 使用"重载关键词"菜单重新加载
   - 使用"测试关键词"菜单测试匹配

3. **误拦截正常消息**
   - 调整关键词列表，避免过于宽泛的关键词
   - 使用更具体的关键词组合

4. **插件加载失败**
   - 检查DLL文件是否完整
   - 确认接口文件版本兼容性
   - 查看M2Server错误日志

### 调试方法
1. 使用"测试关键词"功能验证匹配逻辑
2. 查看控制台输出的拦截日志
3. 逐步调整关键词列表优化拦截效果

更新日志
--------

### 版本 1.0 (2025-01-03)
- ? 初始版本发布
- ? 支持动态菜单管理
- ? 支持TXT文件关键词管理
- ? 支持聊天命令操作
- ? 广告消息拦截功能
- ? 拦截日志记录

技术支持
--------
如有问题，请检查：
1. M2Server控制台输出信息
2. 插件加载状态
3. 关键词文件格式是否正确
4. 菜单功能是否正常响应

注意事项
--------
1. 插件可能会误拦截包含关键词的正常消息，请根据实际情况调整关键词
2. 建议先在测试环境中验证拦截效果
3. 定期更新关键词列表以适应新的广告形式
4. 关键词文件修改后需要重载才能生效

---
*本插件专为拦截游戏内广告消息设计，请合理使用*