## 一、攻沙脚本放在哪个文件里
攻沙脚本涉及多个文件,根据功能不同分布在不同的目录。
### 攻城触发脚本位置
攻沙的核心脚本通常存放在 `D:\MirServer\Mir200\Envir\Market_Def` 文件夹里。你需要找的文件名一般是与沙巴克相关的NPC脚本,比如:
- `沙巴克大使-3.txt`(-3代表土城)
- `攻城管理员-3.txt`
- `沙巴克成员-3.txt`
攻城战开始和结束的触发逻辑,通常写在 `QFunction-0.txt` 文件里。这个文件在 `D:\MirServer\Mir200\Envir\` 目录下,里面会有类似 `[@StartSabukWall]`(攻城开始触发)和 `[@EndSabukWall]`(攻城结束触发)的脚本段。
### 攻城申请信息存储位置
攻城申请的数据保存在 `D:\MirServer\Mir200\Envir\Castle` 文件夹里:
- `AttackSabukWall.txt`:记录申请攻城的信息
- `SabukW.txt`:沙巴克城堡配置文件,包括城主行会、攻城时间等
### 攻城奖励脚本位置
如果你版本里有攻沙结束后自动发奖励的功能,脚本通常放在两个地方:
- **NPC对话脚本**:`Market_Def\` 下专门领奖的NPC文件,比如 `攻沙奖励-3.txt`
- **机器人自动脚本**:`Robot_def\` 文件夹里的 `RobotManage.txt`,配合 `AutoRunRobot.txt` 定时触发
## 二、在哪修改开区后第一次攻沙时间
第一次攻沙时间的修改有两种方式:通过M2界面可视化修改,或者直接改脚本文件里的时间参数。
### 方法一:通过M2界面修改(推荐)
这是最简单直接的方法,适合大多数引擎:
1. 打开正在运行的 **M2Server.exe**(游戏引擎控制台)
2. 点击顶部菜单 **选项** → **参数设置** → **时间控制**
3. 找到 **攻城开始时间** 或 **传奇局域网攻城开启时间**
4. 修改时间为你想要的数值,比如晚上8点就填 **20**(24小时制)
5. 点击保存或确定
**同时要检查攻城天数设置**:在同一个界面里,找到 **申请攻城天数**,这个参数控制开区后多少天才能攻城。默认一般是10天,如果你想开区当天就攻城,把这个值改成 **0** 或 **1**。
### 方法二:修改攻城脚本文件里的时间
有些版本的攻沙时间直接写在脚本里,光改M2参数没用,必须改脚本。
1. 打开 `D:\MirServer\Mir200\Envir\Market_Def\` 文件夹
2. 找到沙巴克相关的NPC脚本文件,通常是 `沙巴克大使-3.txt` 或类似名字
3. 用记事本打开,按 `Ctrl+F` 搜索关键词:**HOUR** 或 **攻城时间**
4. 你会看到类似这样的代码段:
```text
#IF
HOUR 20 20
#ACT
;这里是攻城开始的脚本
```
这表示只在晚上8点这个小时段触发。把 **20 20** 改成你想要的数字,比如 **21 21** 就是晚上9点
### 方法三:手动添加攻城设置(如果开区忘记设置)
如果你开区后才发现忘了设置攻城,可以用应急方法:
1. 在M2里点击 **管理** → **城堡管理**
2. 手动把要攻城的行会添加进去
3. 然后按上面的方法改攻城时间,比如当前时间已经过了8点,就改到9点
4. 到点系统就会自动触发攻城
### 攻城时间相关的其他参数
在M2的时间控制界面里,还有几个相关参数可以调整:
- **攻城时长**:默认120分钟(2小时),可以按需改短或延长
- **禁止占领时间**:攻城开始后多少分钟内不允许占领皇宫,默认1分钟
- **攻沙结束提示**:攻城结束前多少分钟系统发提示
- **爆物品可捡时间**:攻城期间打出的物品多少分钟内只有打出者能捡
## 三、领取元宝这个脚本在哪
元宝相关的脚本通常有两种:元宝充值/领取脚本,和元宝兑换/消费脚本。
### 领取元宝的NPC脚本位置
玩家通过NPC领取元宝的脚本,存放在 `D:\MirServer\Mir200\Envir\Market_Def\` 文件夹里。找文件名带以下关键词的文件:
- `元宝使者-3.txt`
- `充值大使-3.txt`
- `福利领取-3.txt`
- `钱多多-3.txt`
打开文件后,你会看到类似这样的脚本段:
```text
[@领取元宝]
#IF
#ACT
GAMEGOLD + 1000
SENDMSG 6 你领取了1000元宝!
```
### 元宝变量的命名规则
不同引擎的元宝变量写法不同,在脚本里看到这些就是操作元宝的命令:
- **GAMEGOLD**:主流引擎的元宝变量(加元宝用 `GAMEGOLD + 数量`,扣元宝用 `GAMEGOLD - 数量`)
- **GAMEPOINT**:部分引擎的元宝变量,或代表另一种货币
- **GAMEGIRD**:灵符等其他货币
### 元宝自动发放脚本位置
如果你想要的是那种玩家满足条件后自动获得元宝的脚本(比如攻沙奖励自动发),通常在以下位置:
- **QFunction-0.txt**:各种触发事件里加元宝,比如 `[@ KillMon]` 杀怪触发
- **Robot_def\RobotManage.txt**:机器人定时脚本,每天固定时间自动发元宝
- **QuestDiary\**:很多版本会把元宝功能脚本拆出来放在这个文件夹里,然后在NPC里用 `CALL` 命令调用
### 攻沙奖励元宝的脚本示例
以攻沙结束后自动发放元宝奖励为例,脚本通常长这样:
```text
[@EndSabukWall]
#IF
ISCASTLEMASTER
#ACT
GAMEGOLD + 500000
SENDMSG 0 恭喜沙巴克城主领取了攻沙奖励50万元宝!
```
这段脚本在攻城结束时触发,检测如果是城主就加50万元宝。
## 四、修改后的生效方法
改完以上任何文件后,必须让引擎重新加载:
1. **重启M2Server**:关闭M2再打开,所有配置重新加载
2. **在线重载**:在M2里点 **管理** → **重新加载所有脚本** 或 **重新加载NPC**
3. **GM命令**:游戏里用GM号输入 `@重载QF` 或 `@ReloadQF` 重载功能脚本
攻城时间修改后,最好进游戏到沙巴克NPC那里测试一下,看时间参数是否生效。
传奇攻沙脚本与元宝脚本文件位置及首次攻城时间修改教程
来源:
作者:
点击:

