何でもかんでも制御文字が使用できるようにするものです。
注意点:
①制御文字が使用できる場合は幅調節機能、中央揃え、右揃えを失います。
②色を変えた時のその後の色は誰も保証してくれません。
コード: 全て選択
=begin
◆概要
本来制御文字が使用できない場所でも制御文字が使用できるようになります。
◆機能
・上記の通り。
・下記設定項目でON/OFFしてください。
・ついでに制御文字「\n」を追加します。改行です。
◆仕様
・draw_text(制御文字が使用できない文字描画)は幅に合わせて縮小する機能がついて
いますが、draw_text_ex(制御文字が使用できる文字描画)はそれがありません。
言いたいことはお分かりですね。
・デフォルトのみ動作保証しています。
◆使用上の注意
・●……再定義 ★……エイリアス
・だいたい再定義でできているので競合の可能性は高いです。仕方ないね。
◆作者:faida @faida3983
◆更新履歴
ver1.0 : 公開
=end
FAI_DRAW_TEXT_EX = {}
# 以下のモノとか場面とかで制御文字を使用できるようにする(true/false)
FAI_DRAW_TEXT_EX[:actor_name] = false # アクターの名前
FAI_DRAW_TEXT_EX[:class_name] = false # 職業
FAI_DRAW_TEXT_EX[:nickname] = false # アクターの二つ名
FAI_DRAW_TEXT_EX[:item_name] = true # アイテム名
FAI_DRAW_TEXT_EX[:command_window] = false # コマンドウィンドウ全部
FAI_DRAW_TEXT_EX[:map_name] = false # マップ名表示(中央揃えがないので注意)
FAI_DRAW_TEXT_EX[:battle_enemy] = true # 敵キャラ選択画面
class Window_Base < Window
#--------------------------------------------------------------------------
# ★ 制御文字の事前変換
#--------------------------------------------------------------------------
alias fai_fdtx_convert_escape_characters convert_escape_characters
def convert_escape_characters(text)
result = fai_fdtx_convert_escape_characters(text)
result.gsub!(/\en/i) { "\n" }
result
end
if FAI_DRAW_TEXT_EX.values.any?{|value|value}
#--------------------------------------------------------------------------
# ● フォント設定のリセット
#--------------------------------------------------------------------------
def reset_font_settings
#~ change_color(normal_color)
contents.font.size = Font.default_size
contents.font.bold = false
contents.font.italic = false
end
end
if FAI_DRAW_TEXT_EX[:actor_name]
#--------------------------------------------------------------------------
# ● 名前の描画
#--------------------------------------------------------------------------
def draw_actor_name(actor, x, y, width = 112)
change_color(hp_color(actor))
draw_text_ex(x, y, actor.name)
change_color(normal_color)
end
end
if FAI_DRAW_TEXT_EX[:class_name]
#--------------------------------------------------------------------------
# ● 職業の描画
#--------------------------------------------------------------------------
def draw_actor_class(actor, x, y, width = 112)
change_color(normal_color)
draw_text_ex(x, y, actor.class.name)
change_color(normal_color)
end
end
if FAI_DRAW_TEXT_EX[:nickname]
#--------------------------------------------------------------------------
# ● 二つ名の描画
#--------------------------------------------------------------------------
def draw_actor_nickname(actor, x, y, width = 180)
change_color(normal_color)
draw_text(x, y, actor.nickname)
change_color(normal_color)
end
end
if FAI_DRAW_TEXT_EX[:item_name]
#--------------------------------------------------------------------------
# ● アイテム名の描画
#--------------------------------------------------------------------------
def draw_item_name(item, x, y, enabled = true, width = 172)
return unless item
draw_icon(item.icon_index, x, y, enabled)
change_color(normal_color, enabled)
draw_text_ex(x + 24, y, item.name)
change_color(normal_color, enabled)
end
end
end
if FAI_DRAW_TEXT_EX[:command_window]
class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def draw_item(index)
change_color(normal_color, command_enabled?(index))
draw_text(item_rect_for_text(index), command_name(index), alignment)
end
end
end
if FAI_DRAW_TEXT_EX[:map_name]
class Window_MapName < Window_Base
#--------------------------------------------------------------------------
# ● リフレッシュ
#--------------------------------------------------------------------------
def refresh
contents.clear
unless $game_map.display_name.empty?
draw_background(contents.rect)
rect = contents.rect
draw_text_ex(rect.x, rect.y, $game_map.display_name)
end
end
end
end
if FAI_DRAW_TEXT_EX[:battle_enemy]
class Window_BattleEnemy < Window_Selectable
#--------------------------------------------------------------------------
# ● 項目の描画
#--------------------------------------------------------------------------
def draw_item(index)
change_color(normal_color)
name = $game_troop.alive_members[index].name
rect = item_rect_for_text(index)
draw_text_ex(rect.x, rect.y, name)
end
end
end