####一、核心攻城文件体系架构
在传奇中,攻城系统的实现依赖于**多层级文件协同**,主要分布在服务端的以下目录中:
```mermaid
graphTB
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点自动开启攻城
#AutoRunNPCRUNONDAY20:00@StartCastleWar
```
-**RobotManage.txt**:执行具体攻城逻辑
```lua
[@StartCastleWar]
#ACT
StartSabukWar0;启动沙巴克攻城
```
#####2.**攻城申请与记录文件**
-**路径**:
`D:\MirServer\Mir200\Envir\QuestDiary\`
关键文件:
-**攻城申请.txt**:存储行会申请信息
```txt
行会名称|申请时间|申请状态
战神殿|2025-03-1012: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怪物名称刷新范围数量刷新间隔(分)
3330330赤月恶魔10560;沙城皇宫每小时刷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
MonGenTD3330330祖玛教主50200000
[@TDMonFunc]
#IF
CheckRangeMonCountEx333033010祖玛教主<10
#ACT
MonFindPath3330330赤月恶魔;剩余怪物自动寻路进攻
```
---
####四、常见问题解决方案
#####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
SetCastleWarReady1
```
---
####五、文件备份与安全策略
1.**增量备份脚本**:
```powershell
$date=Get-Date-Format"yyyyMMdd"
Compress-Archive-PathD:\MirServer\Mir200\Envir\-Update-DestinationPathD:\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引擎的怪物寻路函数实现智能攻城。
在传奇中,攻城系统的实现依赖于**多层级文件协同**,主要分布在服务端的以下目录中:
```mermaid
graphTB
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点自动开启攻城
#AutoRunNPCRUNONDAY20:00@StartCastleWar
```
-**RobotManage.txt**:执行具体攻城逻辑
```lua
[@StartCastleWar]
#ACT
StartSabukWar0;启动沙巴克攻城
```
#####2.**攻城申请与记录文件**
-**路径**:
`D:\MirServer\Mir200\Envir\QuestDiary\`
关键文件:
-**攻城申请.txt**:存储行会申请信息
```txt
行会名称|申请时间|申请状态
战神殿|2025-03-1012: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怪物名称刷新范围数量刷新间隔(分)
3330330赤月恶魔10560;沙城皇宫每小时刷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
MonGenTD3330330祖玛教主50200000
[@TDMonFunc]
#IF
CheckRangeMonCountEx333033010祖玛教主<10
#ACT
MonFindPath3330330赤月恶魔;剩余怪物自动寻路进攻
```
---
####四、常见问题解决方案
#####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
SetCastleWarReady1
```
---
####五、文件备份与安全策略
1.**增量备份脚本**:
```powershell
$date=Get-Date-Format"yyyyMMdd"
Compress-Archive-PathD:\MirServer\Mir200\Envir\-Update-DestinationPathD:\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引擎的怪物寻路函数实现智能攻城。

