传奇攻沙脚本与元宝脚本文件位置及首次攻城时间修改教程

来源: 作者: 点击:
##一、攻沙脚本放在哪个文件里

攻沙脚本涉及多个文件,根据功能不同分布在不同的目录。

###攻城触发脚本位置

攻沙的核心脚本通常存放在`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
HOUR2020
#ACT
;这里是攻城开始的脚本
```
这表示只在晚上8点这个小时段触发。把**2020**改成你想要的数字,比如**2121**就是晚上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
SENDMSG6你领取了1000元宝!
```

###元宝变量的命名规则

不同引擎的元宝变量写法不同,在脚本里看到这些就是操作元宝的命令:

-**GAMEGOLD**:主流引擎的元宝变量(加元宝用`GAMEGOLD+数量`,扣元宝用`GAMEGOLD-数量`)
-**GAMEPOINT**:部分引擎的元宝变量,或代表另一种货币
-**GAMEGIRD**:灵符等其他货币

###元宝自动发放脚本位置

如果你想要的是那种玩家满足条件后自动获得元宝的脚本(比如攻沙奖励自动发),通常在以下位置:

-**QFunction-0.txt**:各种触发事件里加元宝,比如`[@KillMon]`杀怪触发
-**Robot_def\RobotManage.txt**:机器人定时脚本,每天固定时间自动发元宝
-**QuestDiary\**:很多版本会把元宝功能脚本拆出来放在这个文件夹里,然后在NPC里用`CALL`命令调用

###攻沙奖励元宝的脚本示例

以攻沙结束后自动发放元宝奖励为例,脚本通常长这样:

```text
[@EndSabukWall]
#IF
ISCASTLEMASTER
#ACT
GAMEGOLD+500000
SENDMSG0恭喜沙巴克城主领取了攻沙奖励50万元宝!
```

这段脚本在攻城结束时触发,检测如果是城主就加50万元宝。

##四、修改后的生效方法

改完以上任何文件后,必须让引擎重新加载:

1.**重启M2Server**:关闭M2再打开,所有配置重新加载
2.**在线重载**:在M2里点**管理**→**重新加载所有脚本**或**重新加载NPC**
3.**GM命令**:游戏里用GM号输入`@重载QF`或`@ReloadQF`重载功能脚本

攻城时间修改后,最好进游戏到沙巴克NPC那里测试一下,看时间参数是否生效。
[顶部]