#============================================================================= # ■ マップ名表示 #----------------------------------------------------------------------------- # 設定されたマップ名を表示します # モジュールにて設定したマップ名→ツリーマップのマップ名の順に優先されます # # *月の下の宿 # URL:http://gekkasou.shiteyattari.com/ #============================================================================= module An_MapName #マップIDを記憶する変数。 #セーブするときに代入処理をしますので代入してもよい変数にしてください Map_id = 1 #行数を増やす #2行じゃぜんぜん足りない!という人向け Add_Row = false #マップ名設定 #ID=>"マップの名前"と設定してください(改行は\n) #ここで指定されてない場合はマップ名をツクール側から取得します Map_Name = { } #現在地をあらわす文字列。 #デフォルトは"現在地" Map_Now = "Place" #特定不可能メッセージ #IDが0だったりそのマップが存在しない(消したなど)時に代わりに表示する No_Map = "特定不可能" #メニュー画面で現在地を表示する Map_View_Menu = true #セーブデータに現在地を表示する Map_View_Save = true #設定ここまで #-------------------------------------------------------------------------- # ● マップ名の取得 #-------------------------------------------------------------------------- def self.mapname(id = nil) @map = load_data("Data/MapInfos.rvdata") if @map.nil? return No_Map if id == nil || id == 0 || @map[id].nil? if Map_Name.has_key?(id) return Map_Name[id] end return @map[id].name end #-------------------------------------------------------------------------- # ● マップ名の保存 #-------------------------------------------------------------------------- def self.save_mapname $game_variables[An_MapName::Map_id] = $game_map.map_id end end if An_MapName::Map_View_Save #============================================================================== # ■ Window_SaveFile #------------------------------------------------------------------------------ #  セーブ画面およびロード画面で表示する、セーブファイルのウィンドウです。 #============================================================================== class Window_SaveFile < Window_Base #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- alias an_mapname_refresh refresh def refresh an_mapname_refresh if @file_exist draw_mapname(@name_width+16, 0) end end #-------------------------------------------------------------------------- # ● マップ名の描画 # x : 描画先 X 座標 # y : 描画先 Y 座標 #-------------------------------------------------------------------------- def draw_mapname(x, y) id = @game_variables[An_MapName::Map_id] mapname = An_MapName::mapname(id) mapname = mapname.sub("\n", "") self.contents.font.color = system_color newnow = An_MapName::Map_Now+":" nowwidth = [contents.text_size(newnow).width, 1].max self.contents.draw_text(x, y, nowwidth, WLH, newnow) self.contents.font.color = normal_color mapwidth = [contents.text_size(mapname).width, 1].max self.contents.draw_text(x+nowwidth+8, y, mapwidth, WLH, mapname) end end end #============================================================================== # ■ Window_Mapname #------------------------------------------------------------------------------ #  ウインドウにマップ名を描画するウインドウです #============================================================================== class Window_Mapname < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize(y) super(0, y, 160, An_MapName::Add_Row ? 104 : 80) @mapid = $game_variables[An_MapName::Map_id] refresh end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.font.color = system_color place = An_MapName::Map_Now self.contents.draw_text(0, 0, width-32, WLH, place, 0) self.contents.font.color = normal_color text = An_MapName.mapname($game_variables[An_MapName::Map_id]) text.sub!(/^\n/, "") x = 0 y = 0 for n in text.split(/\n/) for i in n.scan(/./) text_width = self.contents.text_size(i).width if x + text_width >= self.contents.width x = 0 y += WLH break if WLH + y >= self.contents.height end self.contents.draw_text(x, WLH + y, text_width + 2, WLH, i) x += text_width end x = 0 y += WLH end @mapid = nil @align = nil end end if An_MapName::Map_View_Menu #============================================================================== # ■ Scene_Menu #------------------------------------------------------------------------------ #  メニュー画面の処理を行うクラスです。 #============================================================================== class Scene_Menu < Scene_Base #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- alias an_mapname_start start def start an_mapname_start an_reset_custome An_MapName.save_mapname @an_mapname_window = Window_Mapname.new(@an_custommenu_y) @an_custommenu_y += @an_mapname_window.height end #-------------------------------------------------------------------------- # ● 追加パーツの座標 #-------------------------------------------------------------------------- def an_reset_custome return if @an_custommenu_y != nil @an_custommenu_y = @command_window.height end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias an_mapname_terminate terminate def terminate an_mapname_terminate @an_mapname_window.dispose end end end #============================================================================== # ■ Scene_File #------------------------------------------------------------------------------ #  ファイル画面の処理を行うクラスです。 #============================================================================== class Scene_File < Scene_Base #-------------------------------------------------------------------------- # ● セーブデータの書き込み # file : 書き込み用ファイルオブジェクト (オープン済み) #-------------------------------------------------------------------------- alias an_mapname_write_save_data write_save_data def write_save_data(file) An_MapName.save_mapname an_mapname_write_save_data(file) end end #Ver1.01