アイコン256個制限解除 in VX Ace



VX Aceのひとまとめアイコンではなく、XP風に個別アイコンを表示させてみます。

変更点
2012:01:15
・外部フラグ追加

#==============================================================================
# ■ XP風アイコン描画 VX Ace By 貪藻矢射妥←
#------------------------------------------------------------------------------
#  VX Aceのひとまとめアイコンではなく、XP風に個別アイコンを表示させてみます。
#  
#  ※注意!
#  ・アイコンファイルはGraphics/Systemにインポートしてください
#  
#==============================================================================
# 更新っぽいもの
# 2012:01:15
# ・外部フラグ追加

$OuterFlgs = {} if $OuterFlgs == nil
$OuterFlgs["Icon_Extend"] = true

module DIA_IC
  # ◆ カスタマイズ用"カッコ"
  # ※別のスクリプトとかを使用しており、"[", "]"が使用不能なのはイタイという
  #  場合に。
  STT = "《"
  FIN = "》"
end

class Window_Base < Window
  include DIA_IC
  attr_accessor :icon_name                # アイコンの名前
  #--------------------------------------------------------------------------
  # ● アイコンの描画
  #     icon_index : アイコン番号
  #     x          : 描画先 X 座標
  #     y          : 描画先 Y 座標
  #     enabled    : 有効フラグ。false のとき半透明で描画
  #--------------------------------------------------------------------------
  def draw_icon(icon_index, x, y, enabled = true)
    bitmap = Cache.system("Iconset")
    rect = Rect.new(icon_index % 16 * 24, icon_index / 16 * 24, 24, 24)
    draw_icon_root(bitmap, rect, x, y, enabled)
  end
  #--------------------------------------------------------------------------
  # ● アイコンの描画(XP版)
  #     icon_name : アイコンネーム
  #     x         : 描画先 X 座標
  #     y         : 描画先 Y 座標
  #     enabled   : 有効フラグ。false のとき半透明で描画
  #--------------------------------------------------------------------------
  def draw_icon_XP(icon_name, x, y, enabled = true)
    bitmap = Cache.system(@icon_name)
    rect = Rect.new(0, 0, 24, 24)
    draw_icon_root(bitmap, rect, x, y, enabled)
  end
  #--------------------------------------------------------------------------
  # ● アイコンの描画(おおもと)
  #     bitmap  : ビットマップキャッシュ
  #     rect    : ビットマップの表示Rect
  #     x       : 描画先 X 座標
  #     y       : 描画先 Y 座標
  #     enabled : 有効フラグ。false のとき半透明で描画
  #--------------------------------------------------------------------------
  def draw_icon_root(bitmap, rect, x, y, enabled = true)
    self.contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
  end
  #--------------------------------------------------------------------------
  # ● アイテム名の描画
  #     item    : アイテム (スキル、武器、防具でも可)
  #     x       : 描画先 X 座標
  #     y       : 描画先 Y 座標
  #     enabled : 有効フラグ。false のとき半透明で描画
  #--------------------------------------------------------------------------
  def draw_item_name(item, x, y, enabled = true, width = 172)
    return unless item
    text = item.note.clone
    
    # アイコンネーム抽出
    @icon_name = text =~ /ICON#{DIA_IC::STT}(\S+)#{DIA_IC::FIN}/ ? $1 : nil
    
    #msgbox(@icon_name)
    
    # アイコンネームがある場合XP版で描画する
    if  @icon_name != nil
      draw_icon_XP(@icon_name, x, y, enabled)
    else
      draw_icon(item.icon_index, x, y, enabled)
    end
      
    change_color(normal_color, enabled)
    draw_text_ex(x + 24, y, item.name)
  end
end
上のように設定を行います。 文中にある通りカッコは"《》"でなくても薄緑色の部分で自由に設定できます。 ※アイコン素材はXPと同じ24×24の規格で作り、Systemにインポートしてください。 で、実際に使用すると以下のようになります。 (実はこのスクショを見てもイマイチ制限が解除されているのかどうかわからないという・・・)

戻る