#### 一、核心攻城文件体系架构
在传奇私人服务器中,攻城系统的实现依赖于**多层级文件协同**,主要分布在服务端的以下目录中:
```mermaid
graph TB
A[MirServer] --> B(Mir200)
B --> C(Envir)
C --> D[Robot_def] ; 自动攻城脚本
C --> E[QuestDiary] ; 攻城申请记录
C --> F[Npc_def] ; 攻城相关NPC配置
C --> G[AdminList.txt] ; GM权限管理
C --> H[Mongen.txt] ; 怪物攻城刷新规则
```
---
#### 二、核心文件定位与功能解析
##### 1. **自动攻城脚本文件**
- **路径**:
`D:\MirServer\Mir200\Envir\Robot_def\`
包含:
- **AutoRunRobot.txt**:定义攻城触发时间与频率
```ini
; 示例:每天20点自动开启攻城
#AutoRun NPC RUNONDAY 20:00 @StartCastleWar
```
- **RobotManage.txt**:执行具体攻城逻辑
```lua
[@StartCastleWar]
#ACT
StartSabukWar 0 ; 启动沙巴克攻城
```
##### 2. **攻城申请与记录文件**
- **路径**:
`D:\MirServer\Mir200\Envir\QuestDiary\`
关键文件:
- **攻城申请.txt**:存储行会申请信息
```txt
行会名称|申请时间|申请状态
战神殿|2025-03-10 12:00|已受理
```
- **沙城日志.txt**:记录历次攻城结果
##### 3. **NPC配置文件**
- **路径**:
`D:\MirServer\Mir200\Envir\Npc_def\`
相关NPC脚本:
- **沙城官员.txt**:处理攻城注册与奖励
```lua
(@@InPutString @@InPutInteger)
%100
欢迎来到沙巴克管理界面!\
选择操作:\
<申请攻城/@applywar>\
<查看规则/@showrule>
```
- **传送员-3.txt**:配置攻城地图传送点
##### 4. **怪物攻城配置文件**
- **路径**:
`D:\MirServer\Mir200\Envir\Mongen.txt`
定义怪物刷新规则 :
```ini
; 格式:地图编号 坐标X 坐标Y 怪物名称 刷新范围 数量 刷新间隔(分)
3 330 330 赤月恶魔 10 5 60 ; 沙城皇宫每小时刷5只
```
##### 5. **GM管理文件**
- **路径**:
`D:\MirServer\Mir200\Envir\AdminList.txt`
添加GM权限以操作攻城系统 :
```txt
* 测试GM1 ; 超级管理员
1 测试GM2 ; 普通管理员
```
---
#### 三、高级攻城参数配置
##### 1. **M2引擎时间控制**
通过`M2Server`→**选项**→**参数设置**→**时间控制**,可配置以下关键参数 :
| 参数名称 | 取值范围 | 功能说明 |
|------------------|----------|-------------------------|
| 攻城天数 | 1-7 | 每周开放攻城的天数 |
| 攻城时长 | 60-180 | 单次攻城持续时间(分钟) |
| 攻城开始时间 | 00:00-23:59 | 每日攻城启动时刻 |
| 战后保护期 | 0-1440 | 禁止再次申请的时间(分) |
##### 2. **脚本化怪物攻城**
使用GOM引擎特定语法实现高级控制 :
```lua
#ACT
MonGenTD 3 330 330 祖玛教主 50 2 0 0 0 0 0
[@TDMonFunc]
#IF
CheckRangeMonCountEx 3 330 330 10 祖玛教主 < 10
#ACT
MonFindPath 3 330 330 赤月恶魔 ; 剩余怪物自动寻路进攻
```
---
#### 四、常见问题解决方案
##### 1. **攻城无法触发**
- **排查步骤**:
1. 检查`AutoRunRobot.txt`时间格式是否正确(需24小时制)
2. 确认`RobotManage.txt`中存在`@StartCastleWar`标签
3. 验证`M2Server`→**管理**→**城堡管理**中沙城状态为"可争夺"
##### 2. **怪物不刷新**
- **修复方案**:
1. 检查`Mongen.txt`地图编号与实际匹配
2. 在`MapInfo.txt`添加`MONGEN`参数允许刷怪 :
```ini
[3 沙巴克] MONGEN
```
##### 3. **玩家无法申请攻城**
- **原因分析**:
- `QuestDiary\攻城申请.txt`权限设置为只读
- `Npc_def\沙城官员.txt`脚本未调用申请接口
**解决命令**:
```lua
; 强制开启申请
#IF
CheckCastleWarReady
#ACT
SetCastleWarReady 1
```
---
#### 五、文件备份与安全策略
1. **增量备份脚本**:
```powershell
$date = Get-Date -Format "yyyyMMdd"
Compress-Archive -Path D:\MirServer\Mir200\Envir\ -Update -DestinationPath D:\Backup\攻城配置_$date.zip
```
2. **权限管理矩阵**:
| 文件/目录 | 管理员 | 开发者 | 测试员 |
|----------------------|--------|--------|--------|
| Robot_def | 读写 | 只读 | 无 |
| QuestDiary | 读写 | 读写 | 只读 |
| AdminList.txt | 读写 | 无 | 无 |
---
#### 六、跨版本适配指南
| 引擎类型 | 攻城脚本差异 | 适配方案 |
|------------|-----------------------------|------------------------------|
| **HERO** | 使用StartSabukWar命令 | 直接兼容原版配置 |
| **GOM** | 需添加TDMonFunc怪物触发函数 | 增加路径寻敌逻辑 |
| **BLUE** | 依赖CastleWar.txt独立文件 | 迁移配置至Robot_def目录 |
| **V8** | 支持动态修改攻城时间 | 使用SetCastleWarTime命令 |
---
通过以上系统化梳理,可全面掌握传奇私人服务器攻城文件的分布与配置逻辑。核心文件集中在`Envir`目录下的**Robot_def**(触发逻辑)、**QuestDiary**(申请管理)、**Npc_def**(交互界面)三个子文件夹中。建议每次修改前执行第六章的备份策略,并通过M2引擎的**重新加载**功能(`@ReloadRobot`)快速验证配置生效。对于高级需求,可结合GOM引擎的怪物寻路函数实现智能攻城 。
传奇攻城文件全解析,从脚本配置到核心参数定位的终极指南
来源:
作者:
点击:

