第189章 ,/.

在上一章,我们了解了Operation的『属性增量』和『倍率增量』计算模式,还有一个『最终倍乘』。那什么是最终倍乘呢?

『最终倍乘』是这样计算的:

R=C?×(1+A?)×(1+A?)×......×(1+A?)

C?=C?×(1+a?+a?+.....+a?)

C?=C+m?+m?+.....+m?

R······最终结果

A??...?······计算模式为『最终倍乘』的修饰符的Amount值

a??...?······计算模式为『倍率增量』的修饰符的Amount值

m??...?······计算模式为『属性增量』的修饰符的Amount值

C?······『倍率增量』计算结果

C?······『属性增量』计算结果

举个例子,假设现在有这些修饰符:

{AttributeName:'generic.max_health',Amount:5.0,Operation:0}

{AttributeName:'generic.max_health',Amount:3.0,Operation:0}

{AttributeName:'generic.max_health',Amount:2.0,Operation:1}

{AttributeName:'generic.max_health',Amount:1.5,Operation:1}

{AttributeName:'generic.max_health',Amount:1.1,Operation:2}

{AttributeName:'generic.max_health',Amount:0.1,Operation:2}

当这些修饰符在一个玩家身上全部生效,且该名玩家的最大生命值仅仅受这些修饰符影响时,这名玩家的生命值上限将会从20.0点变成291.06点。这个『291.06』是这样得出来的:

[(20+5+3)×(1+2+1.5)]×(1+1.1)×(1+0.1)

↓先计算『属性增量』↓

[28×(1+2+1.5)]×(1+1.1)×(1+0.1)

↓再计算『倍率增量』↓

126×(1+1.1)×(1+0.1)

↓最后计算『最终倍乘』↓

291.06

这就是『最终倍乘』,到这Operation的全部内容也就讲完了。

但这不代表本章到此结束。还记得上一章提到的/attribute指令吗?让我们来了解下这指令如何使用:

/attribute

作用:可以更改和读取属性

存在版本:Java1.16-今