第一中文网

第一百五十六章 村庄与掠夺更新后的自定义交易 (第5/6页)

天才一秒记住【第一中文网】地址:www.dyzww.cc

t wiki的用户Nickid2018终于将百科的计算公式改了。新的计算公式如下:

e =声望影响的降价+村庄英雄效果影响的降价

y = clamp(mx〔1+axp〕+e,1,m)

a······该交易项目demand标签的值

p······价格乘数

e······该交易项目specialprice标签的值

m······原价

m······村民收购的第一个物品的堆叠上限

这个公式与上面作者自己得出的公式相差不大,但仍有一个可能的问题:

e(specialprice)的值的计算方式可能有误

要说明为什么有这个问题,我们得先了解一下specialprice的机制。

当一名玩家打开村民的交易界面时,游戏会计算每个交易项目的实际价格。这时候,游戏会先计算言论和村庄英雄效果的影响,并将它们的值加到每个交易项目的specialprice标签中。第二步,游戏才会根据demand等其他标签,综合计算出每个交易项目的值。在这个过程中,specialprice标签会加到计算的值中。第三步,也就是向玩家展示这些交易项目。最后,当玩家关闭村民的交易界面时,游戏会把每个交易项目的specialprice标签清零。

也就是说,如果要使得交易打折,specialprice的值必须要为负。

但是,如果根据minecraft wiki的计算方式,specialprice为负的情况只有一种可能:村民对于玩家具有过多的负面言论。而这是不可能的。

当然,我们也别过多纠结这个问题,该改正的总会改正,只不过是时间问题。我们更加需要关心的有两件事情:

1.我们肯定不希望我们自定义的商品价格被随意改变,所以我们该怎么办呢?

2.specialprice的性质可以弄出什么效果呢?

对于第一个问题,我们的解决方法很简单——仔细观察上面的公式,我们不难发现『p价格乘数』都是一个及其重要的变量。

既然是『乘数』,如果我们把这东西改为0,那问题是不是就解决了?

试一试!当p=0时

e =-〔(5A + b + c - d - 5E)x 0〕-〔((V-1)x0.0625+0.3)xm〕+f

e =-〔((V-1)x0.0625+0.3)xm〕+f

y = clamp(〔ax0xm〕+m -〔((V-1)x0.0625+0.3)xm〕+f, 1 ,m)

y = clamp(m -〔((V-1)x0.0625+0.3)xm〕+f, 1 ,m)

不难发现,就算p=0解决了大多数问题,但村庄英雄效果和specialprice的原始值仍然会影响到价格。但村庄英雄效果毕竟是很难得到的,specialprice的原始值又是只能通过命令改变,所以总体上来说影响很小。

总结下来,相比更新之前,我们在新版本中自定义村民交易,还需要注意将价格乘数pricemultiplier设为0.0(有没有一种可能,不设置其实也默认是0)。举个例子:

\/summon villager ~~~{Villagerdata:{level:6,profession:“minecraft:farmer“},offers:{Recipes:[{rewardExp:1,maxUses:,b

本章未完,请点击下一章继续阅读!若浏览器显示没有新章节了,请尝试点击右上角↗️或右下角↘️的菜单,退出阅读模式即可,谢谢!

如遇章节错误,请点击报错(无需登陆)

新书推荐

都市超品仙医 活在两个世界 大秦:这个太子总想着造反 与其说瞎话不如 穿越万界:神功自动满级 诛神乾坤 多子多福,仙女都被他抢了怎么办