传奇双倍经验药物脚本:物品触发死亡不消失与庄园地图代码

来源: 作者: 点击:
制作双倍经验药物,需要同时处理物品数据库、触发脚本、状态保存和地图配置四个部分。

一、在DBC数据库中添加药物

打开DBC2000,在StdItems表中新增一行。物品名称填写双倍经验药或双倍卷轴,StdMode建议设为31,表示可使用的消耗品。Anicount字段填写一个自定义数值,例如50,用于在脚本中识别这个物品。Shape和DuraMax按需要设置,DuraMax可设为1000。

二、编写物品触发脚本

在Mir200Envir目录下打开QFunction-0.txt,找到[@StdModeFunc]段。如果该段不存在,手动添加。写入以下内容:

[@StdModeFunc]
IF
CHECKITEM 双倍经验药 1
ACT
KILLMONEXPRATE 200 1800
SENDMSG 6 已获得双倍经验,持续30分钟
TAKE 双倍经验药 1

其中KILLMONEXPRATE第一个参数为倍率,200表示2倍经验,1800表示持续1800秒即30分钟。数值除以100为实际倍率。

三、死亡和下线不消失

在Mir200!Setup.txt中查找SaveKillMonExpRate参数。设为0表示下线或死亡后双倍状态不保留,设为1表示保留剩余时间。

如果引擎版本不支持该参数,说明该版本的双倍状态默认不保存。此时需要改用自定义变量记录剩余秒数,在QFunction-0.txt的[@PlayLevelUp]或[@KillMon]段中判断变量是否大于0,手动维持经验倍率。

四、脚本放置位置

物品触发脚本放在QFunction-0.txt的[@StdModeFunc]段中。如果版本使用GOM引擎的物品触发系统,也可以在QuestDiaryTriggerItem目录下新建物品ID.txt文件,使用@Use:触发器编写。

五、庄园小地图代码

盛大版本中,卧龙山庄的地图代码为HERO1,小地图编号为10302,对应客户端Dataminimap301.mmap文件。

在服务端MapInfo.txt中添加:

[HERO1 卧龙山庄]

在MiniMap.txt中添加:

HERO1 10302

如果版本使用的是其他庄园地图,需要在MapInfo.txt中搜索庄园相关地图代码,再在MiniMap.txt中配置对应小地图编号。

六、排查顺序

先在DBC中添加物品并记录Anicount值;再在QFunction-0.txt中编写触发脚本;接着在!Setup.txt中设置SaveKillMonExpRate为1;最后测试吃药后是否显示双倍提示、死亡和下线后状态是否保留。庄园地图需要在MapInfo.txt和MiniMap.txt两处同时配置。