戦闘時のダメージの上のテキストの拡張

p-sight: Annex - Critical Text Extend

Tag: 戦闘関連 / 表示関連

説明

ダメージの上の「CRITICAL」の表示部分に、さまざまなテキストを設定可能にします。

設定可能な項目

WORD_CRITICAL

クリティカルヒットの際にダメージの上に表示されるテキストを設定します。

WORD_CRITICAL = "CRITICAL"

WORD_WEAKEN

属性攻撃をした際、相手の弱点をついた場合はダメージの上にこのテキストが表示されます。

WORD_WEAKEN = "WEAKNESS"

WORD_BLOCK

属性攻撃をした際、ダメージが半減した場合はダメージの上にこのテキストが表示されます。

WORD_BLOCK = "BLOCK"

WORD_CURE

属性攻撃をした際、ダメージが吸収された場合はダメージの上にこのテキストが表示されます。

WORD_CURE = "REVERSE"

WORD_STATES

攻撃やスキルなどでステートが付加された場合にダメージの上、 あるいはダメージが設定されていない場合はダメージ表示部分にこのテキストが表示されます。
一番最初からステートIDの順に並べてください。
下記の設定はデフォルトでのステートの並びに対応した英単語が並んでいます。

WORD_STATES = ["DEAD", "STUN", "POISON", "DAZZLE", "SILENT", "CONFUSION", "SLEEP", "PARALYSIS", "WEAKEN", "CLUMSY", "DELAY", "FEEBLE", "SHARP", "BARRIER", "RESIST", "BLINK"]

上記すべてについて、テキストを表示したくない場合は「""」と設定してください。

例:ダメージが半減した際にテキストを表示したくない場合
WORD_BLOCK = ""

仕様

テキスト表示の優先順位は「クリティカル>ステート変化>属性修正」となっています。
つまり、相手の弱点を突いた上でクリティカルヒットの場合は「CRITICAL」と表示され、 相手の耐性を突いたけど毒の追加効果がついた場合は「POISON」と表示されます。
また、同時に複数のステートにかかった際は 「もっともレーティングが高く、IDが若く、テキストが設定されているもの」 が表示されます。

スクリーンショット

ダメージ表示の拡張(1) ダメージ表示の拡張(2)

他のスクリプトとの競合について

正常に動作しない場合は、以下のメソッドが他のRGSS素材で再定義されていないかなどを確認してください。

class Sprite < ::Sprite
 def damage(value, critical)

aliasを使って再定義しているメソッド

正常に動作しない場合は、以下のメソッドが他のRGSS素材で再定義されていないかなどを確認してください。

class Game_Battler
 def elements_correct(element_set)
 def add_state(state_id, force = false)
 def states_plus(plus_state_set)

ソースと導入方法

導入方法

スクリプトの「Game_Battler2」より下、「Main」よりも上に以下のソースを丸々挿入してください。

ソースと更新履歴

Critical Text Extend: ソース

更新履歴

2006 9/09 公開。


2006 9/14 ミスした時や回復呪文についても属性修正のテキストが表示される仕様の訂正。
変更部分は下記の通り。

# ☆ココから変更
bitmap.draw_text(0, 12, 180, 36, damage_string, 1)

の下に新たに以下の二行を追加。

# ダメージが「Miss」の場合フラグをfalseにする
critical = false if damage_string == "Miss"

新たに以下の二つのメソッドをclass Game_Battlerに追加。

#--------------------------------------------------------------------------
# ○ スキルの効果適用
# user : スキルの使用者 (バトラー)
# skill : スキル
#--------------------------------------------------------------------------
alias text_extend_skill_effect skill_effect
def skill_effect(user, skill)
  # 呼び戻してbool値を取得
  boolean = text_extend_skill_effect(user, skill)
  # スキルの威力が負の数で、属性修正によるテキスト表示が出ている場合
  if skill.power < 0
    if self.critical == Annex::WORD_WEAKEN or
        self.critical == Annex::WORD_CURE or
        self.critical == Annex::WORD_BLOCK
      # クリティカルフラグをクリア
      self.critical = false
      end
    end
  return boolean
end
#--------------------------------------------------------------------------
# ○ アイテムの効果適用
# item : アイテム
#--------------------------------------------------------------------------
alias text_extend_item_effect item_effect
def item_effect(item)
  # 呼び戻してbool値を取得
  boolean = text_extend_item_effect(item)
  # アイテムの回復量を取得
  recover_hp = maxhp * item.recover_hp_rate / 100 + item.recover_hp
  recover_sp = maxsp * item.recover_sp_rate / 100 + item.recover_sp
  # スキルの回復量が正の場合
  if not(recover_hp < 0 or recover_sp < 0)
    if self.critical == Annex::WORD_WEAKEN or
        self.critical == Annex::WORD_CURE or
        self.critical == Annex::WORD_BLOCK
      # クリティカルフラグをクリア
      self.critical = false
    end
  end
  return boolean
end


This page is written in Japanese(Shift_JIS)
(c) T-Akf, in p-sight