エネミー名称 VXA



複数出現するエネミーにABCなどの文字を付与

VXAにある複数出現するエネミーにABCの文字を付与するスクリプトです。
※ぶっちゃけVXAのパクり。。

VXAとの最大の違いはASCIIコードからアルファベットを組み立てる点です。

変更点
まだなし

#----------------------------------------------------------------------------
# 複数出現するエネミーにABCなどの文字を付与 by 貪藻矢射妥←
#----------------------------------------------------------------------------
# VXAにある複数出現するエネミーにABCの文字を付与するスクリプトです。
# ※ぶっちゃけVXAのパクり。。
#
# VXAとの最大の違いはASCIIコードからアルファベットを組み立てる点です。
# 
#============================================================================
# 変更点
# まだなし

#==============================================================================
# ■ Game_System
#==============================================================================
class Game_System
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :names_count              # 敵キャラ名の出現数記録ハッシュ
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_Enemy_Name_VXA initialize
  def initialize
    # 元の処理を実施
    initialize_Enemy_Name_VXA
    
    @names_count = {}
  end
end

#==============================================================================
# ■ Game_Enemy
#==============================================================================

class Game_Enemy < Game_Battler
  #--------------------------------------------------------------------------
  # ● 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :letter                   # 名前につける ABC の文字
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias initialize_Enemy_Name_VXA initialize
  def initialize(index, enemy_id)
    # 元の処理を実施
    initialize_Enemy_Name_VXA(index, enemy_id)
    
    @letter = ""
  end
end

#==============================================================================
# ■ Game_Troop
#==============================================================================

class Game_Troop
  #--------------------------------------------------------------------------
  # ● セットアップ
  #     troop_id : トループ ID
  #--------------------------------------------------------------------------
  alias setup_Enemy_Name_VXA setup
  def setup(troop_id)
    # 元の処理を実施
    setup_Enemy_Name_VXA(troop_id)
    
    make_unique_names
  end
  #--------------------------------------------------------------------------
  # ● 同名の敵キャラに ABC などの文字を付加
  #--------------------------------------------------------------------------
  def make_unique_names
    $game_troop.enemies.each do |enemy|
      next unless enemy.exist?
      next unless enemy.letter.empty?
      n = $game_system.names_count[enemy.id] || 0
      enemy.letter = sprintf(" %c", 65 + n % 24)
      $game_system.names_count[enemy.id] = n + 1
    end
  end
end

#==============================================================================
# ■ Window_Help
#==============================================================================

class Window_Help < Window_Base
  #--------------------------------------------------------------------------
  # ● エネミー設定
  #     enemy : 名前とステートを表示するエネミー
  #--------------------------------------------------------------------------
  def set_enemy(enemy)
    text = enemy.name
    # ボスにはABCなどの文字を付与しない
    if $OuterFlgs["I_Am_Boss"] && $game_system.boss_flg[enemy.id] == true
      # なにもしない
    else
      text += enemy.letter
    end
    state_text = make_battler_state_text(enemy, 112, false)
    if state_text != ""
      text += "  " + state_text
    end
    set_text(text, 1)
  end
end

#==============================================================================
# ■ Scene_Battle (分割定義 1)
#==============================================================================

class Scene_Battle
  #--------------------------------------------------------------------------
  # ● バトル終了
  #     result : 結果 (0:勝利 1:敗北 2:逃走)
  #--------------------------------------------------------------------------
  alias battle_end_Enemy_Name_VXA battle_end
  def battle_end(result)
    # ABCなどの文字の付与をリセット
    $game_system.names_count = {}
    
    # 元の処理を実施
    battle_end_Enemy_Name_VXA(result)
  end
end

戻る