【解決!】楽ちん名前枠 で表示した名前の文字色を変更するには

サワラ

【解決!】楽ちん名前枠 で表示した名前の文字色を変更するには

投稿記事by サワラ » 2017年6月11日(日) 19:17

弓猫様制作の楽ちん名前枠(http://lucky-duet.com/archives/972)についてです。
ネームウィンドウで表示させた文字列(名前の部分)の文字色を変更したいのですが、
こちらのスクリプト側で指定する方法がありましたら、教えてくださるとありがたいです…
(睡工房様のメッセージ自動置換と組み合わせて名前を表示させています)
最後に編集したユーザー サワラ on 2017年6月13日(火) 21:54 [ 編集 1 回目 ]

TOMO
記事: 343
登録日時: 2015年11月16日(月) 20:12
連絡を取る:

Re: 楽ちん名前枠 で表示した名前の文字色を変更するには

投稿記事by TOMO » 2017年6月12日(月) 04:39

これを「楽ちん名前枠」の下に入れれば出来ます

コード: 全て選択

module YT002_NAME
  NAME_COLOR = {
    "Actor[1]" => 2,
    "ウルリカ" => 3,
    "\eENEMY[1]" => 4,
  }
end

class Window_NameShow < Window_Base
  #--------------------------------------------------------------------------
  # ☆ リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    contents.clear
    if @name != "" && @name != nil
      w = window_width
      move(self.x, self.y, w, self.height)
      list = NAME_COLOR.clone
      NAME_COLOR.each do |key, color|
        if key.match(/\eENEMY\[(\d+)\]/i)
          list[$data_enemies[$1.to_i].name] = color
          list.delete(key)
        elsif key.match(/\eACTOR\[(\d+)\]/i)
          list[$game_actors[$1.to_i].name] = color
          list.delete(key)
        end
      end
      change_color(text_color(list[@name] ? list[@name] : 0))
      draw_text(-standard_padding, 0, w , line_height, @name,1)
    elsif @name_from_face != "" && @name_from_face != nil
      w = window_width
      move(self.x, self.y, w, self.height)
      change_color(text_color(@name_color))
      draw_text(-standard_padding, 0, w, line_height, @name_from_face,1)
    end
  end
  #--------------------------------------------------------------------------
  # 顔グラフィックから名前を取得
  #--------------------------------------------------------------------------
  def get_name_from_face
    name = $game_message.face_name + "_" + $game_message.face_index.to_s
    @name_from_face = FACE_NAME[name]  if FACE_NAME[name] != nil
    @name_color = NAME_COLOR[@name_from_face] ? NAME_COLOR[@name_from_face] : 0
    if @name_from_face[/Actor\[(\d+)\]/i] != nil
      @name_from_face.sub(/Actor\[(\d+)\]/i, "")
      @name_from_face = $game_actors[$1.to_i].name
    end
  end
end

設定する際は、¥ではなく¥eとして下さい

ただ、楽ちん名前枠の方にバグがあるっぽいので、
使用はあまりお勧めしません
(動作サンプルの1番左のイベントを1回実行した後、
その隣のイベントを実行すると、
最初のメッセージで名前枠が表示された)
サワラ

Re: 楽ちん名前枠 で表示した名前の文字色を変更するには

投稿記事by サワラ » 2017年6月13日(火) 21:53

TOMO 様
スクリプトのご提供、感謝いたします!!
おかげで、好きな文字色の名前を表示させることができました。

楽ちん名前枠 のバグはこちらでも同様の現象を確認しました。
ただ自分が製作中のゲーム内では、とくに目立った問題はなく名前を表示できているので
とても使い勝手の良いスクリプトということもあり
ひとまず、継続して使っていく予定です。(素人の軽率な判断です…)

改めて 楽ちん名前枠の拡張機能スクリプトを作成していただき、ありがとうございます!
表現したかったメッセージデザインが実現できました…!

“VX / Ace:質問” へ戻る