2014-08-19

ディフェンダーの改造

Space not farさんとこにある、
http://muspell.raindrop.jp/file/material.htm

ディフェンダーscript。

このスクリプトを基準に、ある確率で攻撃を無効化する表現を再現していましたが、
「行動不能」のstateがaddした場合でも、「○○は、敵の攻撃を防いだ!」という、なんともシュールな展開になっていました。stateが麻痺やら石化やら睡眠中に、効果が発揮されます。

で、改造。

Script知識がとても幼稚なレベルなので、とてもひどい改造文ですが、このようにしたら、成功しました。「もしステートが○○なら」なif例文探しまくった、、、w


▼state(32)が付加されているときに、ディフェンダーを発動させない。


lass Game_Battler
  attr_reader   :defender

 alias snf_defender_clear_action_results clear_action_results
  def clear_action_results
    snf_defender_clear_action_results
    @defender = false
  end
  
  alias snf_defender_make_attack_damage_value make_attack_damage_value
  def make_attack_damage_value(attacker)
    snf_defender_make_attack_damage_value(attacker)
    if self.is_a?(Game_Actor) # アクターですか?
      defender_rate = 0

の後に、

  if states.include?($data_states[32])
        return          # ディフェンダーが、動いて欲しくないステートなので返す
      else

を足すだけでした。[ ]内は、state_id。
2種類以上のstateを書く場合は、

 if states.include?($data_states[32]) or states.include?($data_states[33])

と、orで繋げる。さらに増やす場合もorで繋げる。ただし、1行で記入。




▼100%ディフェンダー時の、通常の挙動(actor_グスダフ)
  、、、ダメージを防ぐ

▼100%ディフェンダー時の、行動不能時の挙動(actor_グスダフ)
、、、防げれない






0 件のコメント: