ネームポップを改造、イベントの頭上に名前だけじゃなく変数も表示する
*注意:バージョンアップしました
イベントの頭上に変数だけでなく、アイコンも複数表示 - RGSS3・RPGツクールVXAceメモ
依頼があったので、ひきも記さんのネームポップスクリプトを改造、変数も表示できるようにしてみました。
規約とかは自由なので、お好きにお使い下さい。
http://kirara111.sakura.ne.jp/tukulu/namep_variables.zip
サンプルプロジェクトを見れば大体使い方が分かると思いますが、
通常のnamepopの書き方の後に@v(変数番号)@と書けば、その番号の中身を表示します。
例:
<namepop 兵数は@v(110)@です>
またツクールVX系の変数はスクリプトで指定すると任意の文字列を入れられるので、
状況に合わせて表示名を変える…なんて事も可能です。
一つ注意なのは、変数に変更を加えただけでは、表示が反映されないこと。
変数操作をした後にはスクリプトで
update_namepop
と書いて下さい。そうすると表示が変わります。
一応テキストとしても貼っておきます。。。
[コードを表示する]
#============================================================================== # ★ RGSS3_ネームポップ Ver1.11 #============================================================================== =begin 元作者:tomoaky webサイト:ひきも記 (http://hikimoki.sakura.ne.jp/) イベント名かイベント実行内容の先頭に『注釈』コマンドで <namepop 文字列> と記述してください。 イベントキャラクターの頭上に文字列が表示されます。 イベント名で指定した場合はイベント全ページに適用されますが、 優先度は注釈コマンドの方が高くなっています。 文字を消したい場合は <namepop none> としてください。 =end =begin 改造:111 webサイト:http://gamecome.hateblo.jp/ 2015.1.18 変数を表示できるようにしてみました。 変数の値を変えた後は スクリプトから update_namepop と書いて、更新しないと反映されません =end #============================================================================== # □ 設定項目 #============================================================================== module TMNPOP FONT_SIZE = 22 # フォントサイズ FONT_OUT_ALPHA = 255 # フォントの縁取り不透明度 end #============================================================================== # ■ Game_Character #============================================================================== class Game_Character #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :namepop # ポップアップテキスト #-------------------------------------------------------------------------- end #============================================================================== # ■ Game_Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ● イベントページの設定をクリア #-------------------------------------------------------------------------- alias tmnpop_game_event_clear_page_settings clear_page_settings def clear_page_settings tmnpop_game_event_clear_page_settings @namepop = nil end #-------------------------------------------------------------------------- # ● イベントページの設定をセットアップ #-------------------------------------------------------------------------- alias tmnpop_game_event_setup_page_settings setup_page_settings def setup_page_settings tmnpop_game_event_setup_page_settings namepop_set end def namepop_set @namepop = nil if @list @namepop = $1 if /<namepop\s*(\S+?)>/i =~ @event.name @list.each do |list| if list.code == 108 || list.code == 408 @namepop = $1 if /<namepop\s*(\S+?)>/i =~ list.parameters[0] else break end end end if @namepop =~ /(\S*?)@[Vv]\((\d+?)\)@(\S*)/ number = $game_variables[$2.to_i] @namepop = $1 + number.to_s + $3 end end def update_namepop namepop_set end end #============================================================================== # ■ Sprite_Character #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- alias tmnpop_sprite_character_dispose dispose def dispose dispose_namepop tmnpop_sprite_character_dispose end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias tmnpop_sprite_character_update update def update tmnpop_sprite_character_update update_namepop if @character.namepop != @namepop @namepop = @character.namepop start_namepop end end #-------------------------------------------------------------------------- # ○ namepopの開始 #-------------------------------------------------------------------------- def start_namepop dispose_namepop return if @namepop == "none" || @namepop == nil @namepop_sprite = ::Sprite.new(viewport) h = TMNPOP::FONT_SIZE + 4 @namepop_sprite.bitmap = Bitmap.new(h * 10, h) @namepop_sprite.bitmap.font.size = TMNPOP::FONT_SIZE @namepop_sprite.bitmap.font.out_color.alpha = TMNPOP::FONT_OUT_ALPHA @namepop_sprite.bitmap.draw_text(0, 0, h * 10, h, @namepop, 1) @namepop_sprite.ox = h * 5 @namepop_sprite.oy = h update_namepop end #-------------------------------------------------------------------------- # ○ namepopの更新 #-------------------------------------------------------------------------- def update_namepop if @namepop_sprite @namepop_sprite.x = x @namepop_sprite.y = y - height @namepop_sprite.z = z + 200 end end #-------------------------------------------------------------------------- # ○ namepopの解放 #-------------------------------------------------------------------------- def dispose_namepop if @namepop_sprite @namepop_sprite.bitmap.dispose @namepop_sprite.dispose @namepop_sprite = nil end end end # # ネームプレートを更新させる # class Game_Interpreter def update_namepop $game_map.events.each_value{|event| event.update_namepop } end end