✓ ESS21仅限 【TA】【特性】008 External More(0718)

TAAAAAAA

天王
成员
2024-06-16
173
1
27
1,110
008 External More

这期教程,我们来讲解如何使用基于battler的变量。

在之前的教程中,我们已经是介绍过基于battle的变量和基于battler的变量的区别了,所以这里就不再重复了,如果你还不太清楚区别,请去看之前的教程。

在第9代的时候,有些特性得到了削弱,比如说苍响的不挠之剑,就变成了一场战斗只能发动一次,这个我们在之前的教程中已经说过该怎么做了;
比如说闪焰王牌的自由者,就变成了一次出场只能发动一次。

这期教程,我们将通过如何让一个特性一次出场只能发动一次,来讲解基于battler的变量的使用。

在讲解基于battle的变量的时候,我们说“当你想加一个基于battle的变量的时候,就在001_Battle.rb里加,照着格式来,第一步,增加attr_accessor :xxx;第二步,初始化。”
那么现在是基于battler的变量,实际上也是同理的。

我们首先需要找到在哪里加,接着——第一步,增加attr_accessor :xxx;第二步,初始化。

那么在哪里加呢?
打开\Pokemon Essentials v21.1 2023-07-30\Data\Scripts\011_Battle\002_Battler里的001_Battle_Battler.rb。

往下拉,找到这个地方——
1721295685927.png
接着在下面增加attr_accessor :abilityTrigger——
1721295697778.png

接着,初始化。
基于battler的变量的初始化并不和基于battle的变量的初始化一样,基于battler的变量需要在另一个地方初始化。

打开\Pokemon Essentials v21.1 2023-07-30\Data\Scripts\011_Battle\002_Battler里的002_Battler_Initialize.rb。
往下拉,找到这个方法——
1721295711650.png
继续往下拉,找到这里——
1721295728794.png
在这个地方初始化——
1721295739852.png

这里的初始化比较简单,直接false就好了。
因为这个变量是基于battler的变量,那么对于单个battler来说,特性要么发动了,要么没有发动,不是false,就是true。
所以默认直接false就好了,false就是特性还没有发动过,在特性发动过之后,就会变成true了,并且,在精灵换下场之后,这个变量会重置为false,这样就实现了特性一次出场只能发动一次的目标。

那么,如何让这个变量变成true呢?
在之前讲解基于battle的变量的时候,我们是新加了一个方法,来控制是否要变成true,但是在这里的话,实际上,我们其实并不需要新加一个方法。
但是,为了统一,我们也还是新加一个方法吧。

我们按照和之前相似的格式,新加一个方法——
Ruby:
  def battler_abilityTrigger?
    if @abilityTrigger
      return true
    else
      @abilityTrigger = true
      return false
    end
  end
我们把这个方法加到pbInitEffects(batonPass)的下方,这样就好了——
1721295777485.png

我们也可以对比一下之前的方法,可以发现简单了很多,这个是之前的——
Ruby:
  def battle_abilityTrigger?(battler)
    if @abilityTrigger[battler.index & 1][battler.pokemonIndex]
      return true
    else
      @abilityTrigger[battler.index & 1][battler.pokemonIndex] = true
      return false
    end
  end

这个方法的逻辑和之前battle_abilityTrigger?(battler)的是一样的,这里就不解释了。
同样的,如果理解不了,那也至少要会用。

那么怎么使用battler_abilityTrigger?这个方法呢?
battler_abilityTrigger?的使用和battle_abilityTrigger?(battler)的使用一模一样,只需要在你所有想要一次出场只会发动一次的特性里,都加上检查这个方法就好了。

比如说这样——
1721295813414.png
这样的话活力焕发就精灵每次出场只会发动一次了。

另外就是,因为battler_abilityTrigger?这个方法是写在Battler里的,所以你要对battler调用这个方法——
1721295829779.png

最后,请进游戏自行测试活力焕发是否现在真的一次出场只会发动一次了。

这样,到目前为止,我们就新实现了两个方法——
battle_abilityTrigger?(battler),用于一场战斗只能发动一次的特性。
battler_abilityTrigger?,用于一次出场只能发动一次的特性。

那么这期教程就到此为止,下期教程我们将会讲解分散在战斗系统中的那些特性的发动逻辑。

视频预览(0718)——

浏览附件2024-07-18 22-27-14.mp4

感谢阅读。
 
最后编辑:

在线成员

现在没有会员在线。

论坛统计

主题
458
消息
2,072
会员
2,854
最新会员
jiuchuan

关于我们

  • 宝可梦以及其他相关名称是任天堂的商标,版权归宝可梦公司所有。宝可饭堂是一个同人游戏中文社区,不隶属于宝可梦公司。在宝可饭堂上的粉丝游戏亦未获得其授权,请支持正版游戏。
© 2022- pokefans.cn
点此延长宝可饭堂生命