欢迎光临散文网 会员登陆 & 注册

Mod里制作剑(一)

2023-09-03 00:09 作者:道家深湖  | 我要投稿

浅海:请问,如何(在Minecraft mod里)制作一把剑?

深湖:你想做一把剑?不错不错,比想做一把枪的靠谱多了。

浅海:……这有很大区别吗?

深湖:有。剑是原版就有的概念,可以靠继承ItemSword实现大部分内容。枪这种东西原版没有,而且基本每个想做枪的人都想要左键开火、右键瞄准,但mc原版的交互逻辑是左键近战攻击、右键使用物品与交互。想要做枪的话,得把整个逻辑都重做。而且,制作子弹涉及到实体与运动的处理,基础就要说很多,也有很多坑要避免。

浅海:那么那些枪械mod……?

深湖:Bingo!正确的学习“如何做一把枪”的方式是找那些枪械mod的源码自己慢慢翻看,而不是去群里问怎么做一把枪。

浅海:……所以我们可以开始做剑了吗?

深湖:很遗憾,还不行。我得确认你对剑的理解正确,否则你可能会在后面制作的时候遇到一堆问题,看ItemSword源码的时候一头雾水。

浅海:对剑的理解是指?

深湖:有设计和代码的两方面问题。设计上是“剑的意义”,代码上是“属性加成”。虽然很多萌新都急急急得不行,完全不知道自己连设计mod都做不到,就更别提用代码写出来了。因此,我要先从设计,或者游戏策划上确认这件事。你觉得玩家为什么会合成一把剑?比如,铁剑?

浅海:为了打怪?

深湖:对。假如手持铁剑的攻击伤害是6,但铁镐是12,那你觉得玩家还会做铁剑吗?

浅海:大概不会了。铁镐的伤害更高,还能用来挖东西,完爆铁剑了。

深湖:那么斧子呢?铁斧的攻击伤害比剑高,还能砍树,照这个说法岂不是一样导致铁剑没有用武之地?斧子甚至还能穿盾牌。

浅海:啊……这个……我想是因为攻击速度的影响?如果按照攻速乘伤害=每秒伤害(DPS)来说的话,铁剑的DPS为9.6,略高于铁斧。

铁套用攻速x伤害算出的DPS
石制

深湖:不错,这确实是原因之一。此外,剑能横扫打AoE,这件事是在EntityPlayer::attackTargetEntityWithCurrentItem里写死的,且没有用于patch的事件。

N级的横扫之刃附魔剑,在主目标伤害为K的时候,可以对横扫目标造成(1+X*  (N/N+1))的伤害。虽然说没有这个附魔,横扫伤害是1吧,不过有点击退也是好的。此外,剑也能用来高速(15x)摧毁蜘蛛网,快速(1.5x)摧毁植物,不过这只是个锦上添花。哦,关于挖掘类别,这些是写在ItemSword的getDestroySpeed里的,相对好覆写一些。

浅海:那看来剑的数值要仔细设计了。

深湖:或者说,其实是斧子的数值要仔细设计。剑的数值默认是跟着材质套公式的,但是斧子的攻速和伤害跟质地完全无关,单独hardcode了。ItemAxe没法像剑那样直接指定了质地就了事,不单独设置伤害和攻速的话它会报错。

浅海:我还真没考虑过斧子应该是多少……

深湖:那你可以先干脆不做对应的斧子。做游戏策划的时候,多一事不如少一事,加入太多干扰项反而会让你的核心设计崩溃。

浅海:容我先仔细想想……我还要不要做这把剑。

Mod里制作剑(一)的评论 (共 条)

分享到微博请遵守国家法律