添加一个用官服图档的魔物

魔物最主要的数据文件mob_db我们之前已经在《剖析mob_db各个字段的含义以及作用》里面讲解了,接下来我们来学习一些和魔物相关的数据文件。

今天我们来讲讲db目录下的mob_avail.txt文件,它可以改变魔物的外观形象,让A魔物看起来类似B魔物,哪怕A魔物是你自己新增的,而且客户端没有图档的情况下也完全没问题(因为mob_avail.txt会告诉客户端这个新增的A魔物需要读取B的图档)。

目标:

为了帮助我们更好的了解这个文件的用法,我们要假定一个学习目标。这样会更有意思一些。我们的目标是:要添加一个有虎王能力的魔物,但是他的攻击力比虎王弱50%,然后样子长得像波利,魔物名称叫——“波利特种兵”!

分配魔物ID:

我们目的很明确啦,我们要添加一个新的魔物,那么我们就给他分配新的魔物ID。我们可以看一下现在整个mob_db中有什么空白的ID可以使用~ 请打开你的mob_db.txt文件并滚动到最后,看看rAthena默认情况下最后一个魔物ID是多少……

可以看到最后一个魔物ID是2308(我这里使用的是pre-re的mob_db.txt,如果你用的是re版本的mob_db.txt的话,那么最后一个魔物ID应该是3355左右),在我这个例子中我把“波利特种兵”的魔物ID定义为2400!

撰写mob_db数据

既然我们已经有了魔物的ID,那么接下来就是开始撰写这个魔物的mob_db数据啦,但是魔物的mob_db那么多个字段,数都很难数过来,有没有什么快捷的方法呢?

当然有啦,我们是以虎王为基础设计出“波利特种兵”的,我们直接复制一下虎王的mob_db数据岂不就可以大大节省时间啦?说干就干!在开始之前我们需要查出虎王的魔物ID是多少,我这查到虎王的魔物ID是1115,如下图所示:

然后我们复制出虎王的这一行mob_db数据,然后放到mob_db.txt的最末尾,然后将魔物ID改成刚刚我们定的2400,然后魔物的图档名称改成“SUPER_PORING”,中文名改成“波利特种兵”,英文名改成“Super Poring”,结果如下图所示:

到这里我们已经完成了大半部分了!我们继续回顾一下我们的目标,发现还有一件事情我们没做,那么就是让他的攻击力只有虎王的50%(也就是一半),那么我们知道魔物的攻击力主要是由mob_db中的ATK1和ATK2两个字段在管理的,在这里我认为波利特种兵的力量属性(即STR字段)也应该是虎王的一半,在明确了要做的事情后,动手!

接下来最痛苦的就是数字段了,我们在《剖析mob_db各个字段的含义以及作用》中查到了ATK1和ATK2分别在第11和12个字段,虎王的值是:1215,1565 如下图所示:

那么我们把这两个数除以2,我这边取个整数是607和782,把它写到我们的波利特种兵的数据中,这样我们就算已经把最关键的攻击力给削弱了一半,如下图所示:

然后别忘记了还有一个力量属性,这次我不会告诉你力量属性的位置的,你自己数一数吧!虎王的STR原来是:78,我们把它除以二变成39,并填写到我们的波利特种兵数据中……什么?你还没数到STR的位置?就在第15个字段啊!改好了效果如下图:

然后我们还需要处理一下,不能让波利特种兵掉落虎王的卡片……不然这样就不科学了不是么?我们知道魔物卡片的物品ID和掉落概率是在最后的2个字段,那么只需要把最后2个字段改成0即可:

至此,波利特种兵的mob_db信息撰写并添加完毕,我们保存好刚刚修改的mob_db.txt文件!

小试牛刀

我们现在还缺少一个步骤,那就是往mob_avail.txt文件中加数据,但是在这之前,我希望你能先进入游戏试试召唤出我们的“波利特种兵”,看看客户端会出现什么样的错误。在游戏中我们可以用@monster 2400这条GM指令来召唤魔物编号为2400的怪(也就是我们的波利特种兵啦)出来,结果……

默认情况下的外观居然是一只小恶魔!哈哈哈,但是对于我们这“波利特种兵”的设定来说,这货必须长得像波利才说的过去,否则怎么能够麻痹遇到他的冒险家呢!

改变魔物外观

好了,本章节的重点介绍的文件mob_avail.txt马上就要派上用场了,我们先打开它来看一下:

这个数据文件每一行是一条记录,格式为:MobID,SpriteID{,Equipment} 其中最后一个参数{,Equipment}用大括号括起来,表示这是可选的!

翻译过来的话,格式为:要调整外观的魔物ID,要调整成哪种魔物的外观{,魔物的装备物品编号} 在我们这个例子中,要调整外观的魔物ID是我们的特种兵:2400!然后要调整成和波利一样的外观,波利的魔物ID是:1002!

那么我们只需要在文件末尾新起一行,写上2400,1002即可,记住逗号要用英文的逗号!

然后保存文件,然后重启服务端,或者在游戏中用GM指令:@reloadmobdb来让map-server读取我们刚刚加的记录。然后再到游戏里面用@monster 2400来刷一只波利特种兵试试……

哈哈,我们已经达成目标了,我们新制造了一只很厉害的波利特种兵,如果玩家粗心大意以为它是普通波利的话……嘿嘿嘿……

第三个字段的说明

mob_avail.txt中,刚刚可以看到有第三个字段{,魔物的装备物品编号},不过这个机制目前工作好像有问题,波利的魔物装备是物品编号为10013的“宠物书包”,但是实际上我刚刚测试了一下,设置完毕了但是游戏里面的波利特种兵还是没有背上书包的效果,所以大家也暂时也别试了。否则的话,让波利特种兵背个书包也是一个很好玩的事情!等空了我再查查是什么原因……

还有更好玩的

在本章,我们只是讲解了mob_avail.txt文件最简单的用法,接下来这个文件还能弄出更好玩的事情出来……比如:让魔物变成和玩家一样的外表,可以是男的也可以是女的,还可以指定武器和头饰外观等等,特别好玩。明天晚上我们继续。