设置物品在GVG地图禁止使用

有时候我们可能希望在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地图使用药水会有什么提示:

最后会发现,药水无法使用,聊天栏会有如上图所示的提示,并且药水也会被消耗掉(以后我们再研究如何在此种情况下,不消耗药水)。

请大家也动手试一试,如何禁止在城镇里面使用枯树枝呢?