✓ ESS21仅限 【TA】【特性】017 Time Traveler(0617)

TAAAAAAA

天王
管理成员
2024/06/16
279
4
39
1,270
017 Example:Time Traveler

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

那么,这期教程我们要讲解的是时间旅者。
时间旅者(Time Traveler)——
濒死时,进行时间旅行,回到最后一次受到伤害之前的状态;
每打倒一个对手,就可以额外旅行一次。

首先是PBS部分——
1722319357159.png

这个特性分为两个部分,那我们就先来看第一部分——
1722319369943.png
第一部分到上面的代码为止,我觉得你应该是写得出来的。
唯一的难点应该就是,如何得到濒死之前的HP的值。

我们搜索pbReduceHP这个方法——
1722319385801.png
这个方法会在HP减少的时候调用。

我们加上这行代码——
1722319400105.png
也就是说,我们需要新加一个基于battler的变量,来记录造成濒死时受到的伤害。

那么,我们补上——
1722319420655.png
到这里的话,其实我想说,并不是所有的这些额外的变量都需要初始化,就比如说这个,其实就不需要,但是,为了以防万一,保证你绝对不会出错,我们还是初始化一下吧——
1722319437214.png

这样就好了,那么就是——
1722319461158.png
这样就能进行时间旅行了。

但是,目前这样的话可以进行无限次时间旅行,显然这并不是我们想要的,所以我们接着来做第二部分。
第二部分是,每打倒一个对手,就可以额外旅行一次。

我们很容易就可以想到,自信过度就有类似的效果——
1722319474366.png
也就是说,我们可以这样——
1722319484807.png
所以,这里我们还需要一个额外的基于battle的变量来存储进行时间旅行的次数。

那么——
1722319496174.png
初始化——
1722319507543.png
初始化到了1,也就是说,默认可以进行1次时间旅行。

接着,写两个方法,一个用来检测是否可以进行时间旅行,另一个用来控制可以进行额外时间旅行的次数。
1722319521424.png
这些基本上都没有必要过多解释了,看不懂的话去看前面的教程吧。

唯一需要说一下的就是这里出现了-=和+=,那么这两个是什么呢?
我们还是用例子来进行说明吧。
a = a - 1,可以直接简写成a -= 1,这样写更加简略;
同理,a = a + 1,可以直接简写成a += 1。
那我们就假设a = 5,a -= 2就是a = a - 2,先算右边,就是a = 5 - 2,就是a = 3,所以最后a == 3。
+的时候也是同理。

所以,上面的话就是新写了两个方法,第一个pbTravelOver?方法用来检测是否可以进行时间旅行,当可进行的时间旅行的次数是0的话,就不能进行时间旅行了;
当能进行时间旅行时,会把可进行的时间旅行的次数减少1。
而后一个pbExtraTravel方法是,通过amount参数来增加可进行的时间旅行的次数。

所以,我们把相应的特性部分的代码补完整——
1722319575160.png
1722319581225.png
这样就只有当可以进行时间旅行时,才会在自身濒死时进行时间旅行,而不是可以进行无限次数的时间旅行。
另外需要注意,因为travelTime是基于battle的变量,所以可以进行时间旅行的次数在精灵下场后是不会刷新的,是几次就是几次,不会多也不会少。

接着,增加一下出场提示——
1722319613433.png
想一下这样可以吗?
这样当然是不可以的,因为pbTravelOver?每调用一次,就会使可以进行的时间旅行的次数减少1。
而在这里,我们并不想让它减少1,那么该怎么做呢?
我们可以直接这样——
1722319626658.png
这样的话,在精灵上场时,如果能进行时间旅行,就会出现特性条提示,如果不能,就不会出现提示。

请自行进入游戏测试这个特性。

那么这期教程就到此为止。

视频预览(0730)——

浏览附件2024-08-01 22-26-54.mp4

感谢阅读。
 

在线成员

论坛统计

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