✓ ESS21仅限 【TA】【特性】016 Normalize Armor(0618)

TAAAAAAA

天王
管理成员
2024/06/16
279
4
39
1,270
016 Example:Normalize Armor

这期教程,我们继续来讲解特性实例。

那么,这期教程我们要讲解的是一般化装甲。
一般化装甲(Normalize Armor):被攻击时,以一般属性计算伤害。

首先是PBS部分——
1722228680526.png

接着,找到这个方法——
1722228695097.png
这个方法就是在计算伤害时计算属性的伤害的。

我们在这个方法里增加一行——
1722228714297.png
这里的意思是,原本会计算目标精灵的全部属性,现在,我们在原本属性计算结果的后面,再额外加了一行代码。
意思就是,当满足某某条件时,就不再使用原本的计算结果,而是使用某某属性的计算结果。
而我们就是通过pbCalcTypeFake这个方法来实现这个目标的。

那我们接着就来看一下pbCalcTypeFake这个方法——
1722228729316.png
这个方法先是定义了new_ret和types,new_ret默认是效果一般,types默认是nil。
接着,根据你的条件,重新定义types,在这里是目标是否有一般化装甲,有就重新定义到[:NORMAL]。
接着,如果types有被重新定义过,那就重新计算属性的伤害,并且让ret等于新计算出的new_ret。
最后,返回ret,也就是说,返回的ret会根据types是否重新定义过而返回不同的值,而types是否被重新定义由是否有一般化装甲这个特性决定。
如果types被重新定义过,那么实际上会返回new_ret,如果types没有被重新定义过,那么会直接返回原本的ret,而原本的ret就是使用精灵原本的属性计算出来的结果。

通过这个方法,我们就可以快速新建装甲类特性,并且不仅仅局限于一种属性。
我们暂且把,被攻击时,以某某属性计算伤害,的这类特性,称为装甲类特性。

比如说这样——
1722228763792.png
这里我们就新建了一个新的特性XXX,这个特性的精灵被攻击时,会以水属性和火属性计算伤害。

那这个时候,可能会有同学有疑问,那这个装甲类特性和属性破坏类特性有什么区别呢?
的确,它们之间的区别很小,比如说这样,我们就可以实现斩龙的效果——
1722228777370.png

我只能说,目前没有区别,但是,以后可能就有区别了。
它们的区别在于,被攻击的精灵是否真的改变了属性。
装甲类特性没有改变属性,而属性破坏类是改变了属性的。

比如说,某个精灵的特性是,被攻击时会使用破坏死光进行反击,我们假设这只精灵的属性是一般。
那么,当这只精灵被斩龙攻击时,反击所使用的破坏死光将不会受到自身的本系加成。

另外,装甲类特性和属性破坏类特性并不矛盾,属性破坏是视为某某属性;
而装甲是以某某属性进行伤害计算,本身什么属性并不影响伤害计算。

举个例子,斩龙用暗影爪是打不到一般性装甲的。

最后,加个出场提示——
1722228789761.png
 

在线成员

现在没有成员在线。

论坛统计

主题
543
消息
2,480
成员
3,147
最新成员
执余-