Permanent
Creation

RPGツクールXP/VX用のRGSS素材です。
一部英語版対応です。 (A few materials can be used for English RPG MAKER XP/VX.)
競合率はルファーの独断と偏見なのでたまにハズレます。


スクリーンショット
↑スクリーンショット (クリックで拡大)
#==============================================================================
# ■ マップ名を表示
#------------------------------------------------------------------------------
#  マップ画面で、マップ名を表示するスクリプトです。カスタマイズもできます。
# (C) ルファー
# WebSite  https://tkoolerlufar.pages.dev/
#==============================================================================

=begin
  =対応RGSS
  1 2

  =必要なライブラリ
  ルファー作スクリプト素材共通ライブラリ

  =他の素材との競合の可能性
  !.. 低い

  =RPGツクールXPでの導入方法
  Scene_Titleより下に新セクションを作成して、このプログラムをそこにコピーする

  =設定の変更方法。
  項目の説明を見て目的の項目を探し、
  半角の「=」の横に値を入れます。
  * 「整数」  と書かれている場合
  ・・・項目ごとに指定された範囲の整数をそのまま半角で入力
  * 「文字列」と書かれている場合
  ・・・半角の二重引用符("←これ)の中に任意の文字列を入力
  二重引用符の中の文字列は全角でも良い
  * 「真偽」  と書かれている場合
  ・・・tureで真(ON)、falseで偽(OFF)
  もちろん半角
  * 「配列」  と書かれている場合
  ・・・複数の値を入力
  値を半角カンマで区切って大カッコで囲む
  「[値1, 値2, ...]」という感じで増やします
  値の量は項目ごとに指定されています
  値を0個にしたい場合は「[]」、
  1個にしたい場合は「[値]」と入れます
  * 「nil」   と書かれている場合・・・半角で「nil」と入力

  =項目の説明。
  * Arial 使用フラグ (真偽)
  ・・・真にすると半角の英文が Arial で表示されます。
  * メイリオ 使用フラグ (真偽)
   ・・・真にすると Windows Vista では メイリオ で表示されます。
  * 標準の書体番号 (整数)
  ・・・0以上4以下の数値を入れて書体を変化させます。
  0:ゴシック (MS ゴシック)
  1:明朝 (MS 明朝)
  2:プロポーショナル ゴシック (MS Pゴシック)
  3:プロポーショナル 明朝 (MS P明朝)
  4:ユーザー インターフェース用ゴシック (MS UI Gothic)
  * その他のフォント (文字列の配列)
  ・・・それ以外で使用したいフォントを指定します。
  値の数はいくつでも構いません。
  * 文字の大きさ (整数)
  ・・・文字の高さを入れます。単位はピクセルです。
  エラーを起こさない範囲ならいくつでもOK。
  * 区切り文字 (文字列 または nil)
  ・・・親マップが存在する場合、親マップと子マップの名前を区切る時に使う
  文字列を入れます。
  nilの場合は、親マップの名前を表示しません。

  =更新履歴
  2010/03/01 RPGツクールVXに対応
  2008/02/03 導入した瞬間バグる致命的バグ修正
  ----/--/-- 公開

  =再定義しているメソッド
  Spriteset_Map#initialize (エイリアス使用)
  Spriteset_Map#dispose (エイリアス使用)
  Spriteset_Map#update (エイリアス使用)

  =新規定義しているメソッド
  なし
=end
#----------------------------------------------------------------------------
# ◇ Lufar モジュール
#----------------------------------------------------------------------------
module Lufar
  #--------------------------------------------------------------------------
  # ◇ MapName モジュール
  #--------------------------------------------------------------------------
  module MapName
    #------------------------------------------------------------------------
    # ◇ 素材ユーザーによる設定項目
    #------------------------------------------------------------------------
    FONT_USE_ARIAL = false          # Arial 使用フラグ
    FONT_USE_MEIRYO = false         # メイリオ 使用フラグ
    FONT_NUMBER = 2                 # 書体番号
    FONT_OTHER = ["UmePlus Gothic"] # その他のフォント
    TEXT_SIZE = 24                  # 文字の大きさ
    PUNC_CHAR = "/"                 # 区切り文字
  end
end
#----------------------------------------------------------------------------
# ◇ Sprite_MapName クラス
#----------------------------------------------------------------------------
class Sprite_MapName < Sprite
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  def initialize
    super
    if (defined? $data_mapinfos) != "global_variable"
      extension = rpgxp? ? "rxdata" : "rvdata"
      $data_mapinfos = load_data("Data/MapInfos." + extension)
    end
    screen_width = (rpgxp? ? 640 : Graphics.width) - 88
    self.bitmap = Bitmap.new(548, Lufar::MapName::TEXT_SIZE + 16)
    font_name = Array.new(Lufar::MapName::FONT_OTHER)
    font_name.push("Arial")    if Lufar::MapName::FONT_USE_ARIAL
    font_name.push("メイリオ") if Lufar::MapName::FONT_USE_MEIRYO
    case Lufar::MapName::FONT_NUMBER
    when 0
      font_name.push("MS ゴシック")
    when 1
      font_name.push("MS 明朝")
    when 2
      font_name.push("MS Pゴシック")
    when 3
      font_name.push("MS P明朝")
    when 4
      font_name.push("MS UI Gothic")
    end
    self.bitmap.font = Font.new(font_name, Lufar::MapName::TEXT_SIZE)
    self.x = 4
    self.y = 0
    self.z = 500
    update
  end
  #--------------------------------------------------------------------------
  # ○ 解放
  #--------------------------------------------------------------------------
  def dispose
    unless self.bitmap.nil?
      self.bitmap.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ○ フレーム更新
  #--------------------------------------------------------------------------
  def update
    super
    if @map_id != $game_map.map_id
      @map_id = $game_map.map_id
      self.bitmap.clear
      self.bitmap.font.color.set(255, 255, 255)
      self.bitmap.draw_text(self.bitmap.rect, map_name(@map_id))
    end
  end
  #--------------------------------------------------------------------------
  # ● マップ名を取得
  #--------------------------------------------------------------------------
  def map_name(n)
    if $data_mapinfos[n].parent_id != 0 and Lufar::MapName::PUNC_CHAR
      text = map_name($data_mapinfos[n].parent_id) + Lufar::MapName::PUNC_CHAR
    else
      text = ""
    end
    text.concat($data_mapinfos[n].name)
    return text
  end
end
#----------------------------------------------------------------------------
# ◆ Spriteset_Map クラス
#----------------------------------------------------------------------------
class Spriteset_Map
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias _LufarMN_old_init initialize
  def initialize
    @mapname_sprite = Sprite_MapName.new
    _LufarMN_old_init
  end
  #--------------------------------------------------------------------------
  # ● 解放
  #--------------------------------------------------------------------------
  alias _LufarMN_old_disp dispose
  def dispose
    @mapname_sprite.dispose
    _LufarMN_old_disp
  end
  #--------------------------------------------------------------------------
  # ● フレーム更新
  #--------------------------------------------------------------------------
  alias _LufarMN_old_updt update
  def update
    @mapname_sprite.update
    _LufarMN_old_updt
  end
end

戻る