#----------------------------------------------------------------------------
# 複数出現するエネミーに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
|