有时候我们可能希望在GVG地图或者PVP地图时,禁止使用一些物品、装备或者卡片,那么我们应该怎么做才能达到我们的目的呢?没错,也是通过rAthena自带的配置文件就可以解决。
这个配置文件为db目录下(re\pre-re)文件夹里面的item_noequip.txt文件,本章我们就来讲解这个文件的数据结构以及如何进行配置。
在开始之前你需要知道,在rAthena中地图是可以划分类别的。比如GVG地图、PVP地图、战场地图,以及除此之外的普通地图。而且作为GM我们也是可以为地图划分类别的,而这些类别将成为本章的关键(下面会讲到)。
现在请大家打开这个文件,如果你是复兴前的就打开db\pre-re目录里面的,如果你是复兴后的就打开db\re目录里面的,这个文件叫“物品禁用数据库”:
这个文件的格式为:
> ItemID,Flag
翻译过来的话是:
> 物品编号,禁止使用的地图类型
下面我们挨个解释上面每个字段的意思~
物品编号(Item ID):这个是指要禁用的物品的ID
禁止使用的地图类别(Flag):这个是指想在什么类型的地图上禁止使用此物品,采用掩码方式来计算,可选值有以下几种
- 1 – 禁止用于普通地图
- 2 – 禁止用于PVP地图
- 4 – 禁止用于GVG地图
- 8 – 禁止用于战场地图
- 32 – 禁止用于区域1的地图
- 64 – 禁止用于区域2的地图
- 128 – 禁止用于区域3的地图
- 256 – 禁止用于区域4的地图
- 512 – 禁止用于区域5的地图
- 1024 – 禁止用于区域6的地图
- 2048 – 禁止用于区域7的地图
上面其实前4个选项都比较好理解,但是后面的“区域1的地图”是指什么呢?是指一些我们自己单独划出分类的地图。比如你可以将所有城镇地图都划分到“区域7”,这样子的话你若配置一个物品禁止在区域7使用,那么意味着这个物品就无法在所有城镇地图使用了。
有一些区域已经被rAthena划分出来使用了,目前的使用情况如下所示:
- 区域1:艾尔帕兰跑步比赛(Aldebaran Turbo Track)
- 区域2:监狱(Jail)
- 区域3:伊斯鲁德战斗竞技场(Izlude Battle Arena)
- 区域7:城镇地图(Towns)
到了这里你或许会问,那我如何将一张地图划分到某个区域呢?很简单,只需要给地图配置一个“地图标记”就可以了,关于地图标记我们后续还会再展开讲解,现在请你试着打开rAthena目录中的npc\mapflag\restricted.txt文件,你会看到一些如下图所示的定义:
上图中,可以看到alde_tt02地图被赋予了一个mapflag(地图标记),这个标记的名字叫做restricted后面跟着的数字是1,这就表示了这张地图被划分到了区域1。继续往下看可以发现,sec_pri这张地图被定义为了区域2(也就是监狱)…
到了这里大家就应该知道,如何把一张地图定义为某个区域了吧?如果你企图动手添加的话,请记得:alde_tt02 mapflag restricted 1他们之间的空格,实际上是制表符,也就是说如果你自己想添加,那么空格位置应该用键盘上的TAB键,而不是空格键。
现在我们来动手做个例子,比如我们希望在GVG地图和PVP地图里面,禁止使用红色药水,那么应该怎么做呢?根据上面的介绍,我们知道GVG地图类别的对应编号是4、而PVP地图类别的对应编号是2,那么他们相加就是6,我们只需要在item_noequip.txt文件中加入以下信息,即可做到:
之后我们可以进入游戏看一下,在PVP地图和GVG地图使用药水会有什么提示:
最后会发现,药水无法使用,聊天栏会有如上图所示的提示,并且药水也会被消耗掉(以后我们再研究如何在此种情况下,不消耗药水)。
请大家也动手试一试,如何禁止在城镇里面使用枯树枝呢?