気ままなタンス*プログラミングなどのノートブック

プログラミングやRPGツクール、DTM等について、学んだことや備忘録をアウトプットとして残し、情報を必要としている誰かにとって「かゆいところに手が届く」ブログとなることを願いながら記事を書いています。

【RPGツクールVXace】[Tips]装備しているアイテム情報[ID]を変数に記録する

スポンサーリンク

こんにちは! 主人公パーティーメンバーが装備している武器や防具によって、イベントの内容を変化させたいことってありませんか?

僕は今回、まさに装備している防具で会話の内容を変更するという機能に対応する必要がありました。 対応内容について、メモを書きます

概要

Scene_Equipというプログラムを改修することで、変数に装備アイテムIDを設定することができます。

具体的な修正箇所

  • 以下のメソッドを改修を加えます
    • command_clear
    • on_item_ok
  • 最強装備には、対応してません。。
class Scene_Equip < Scene_MenuBase
  # (中略)

  #--------------------------------------------------------------------------
  # ● コマンド[全て外す]
  #--------------------------------------------------------------------------
  def command_clear
    Sound.play_equip
    @actor.clear_equipments
    
    # 装備変数をクリア
    start_index = 100#装備用変数の開始位置。今回は100~104番を利用
    end_index = start_index + 4
    for i in start_index..end_index
      $game_variables[i] = 0
    end
    @status_window.refresh
    @slot_window.refresh
    @command_window.activate
  end
  
  #--------------------------------------------------------------------------
  # ● アイテム[決定]
  #--------------------------------------------------------------------------
  def on_item_ok
    Sound.play_equip
    @actor.change_equip(@slot_window.index, @item_window.item)
    
    _val_idx = 100+@slot_window.index
    # 装備変数にアイテム番号をセット
    if @item_window.item != nil
      $game_variables[_val_idx] = @item_window.item.id
    else
      $game_variables[_val_idx] = 0      
    end

    
    @slot_window.activate
    @slot_window.refresh
    @item_window.unselect
    @item_window.refresh
  end  
  
end

上のコードを適用することによって、下記のような動作が実現できます!

  • 装備している場合に、各変数に入る
    • 変数100: 武器のアイテムID
    • 変数101: 盾のアイテムID
    • 変数102: 頭のアイテムID
    • 変数103: 身体のアイテムID
    • 変数104: 装飾品のアイテムID
  • 装備していない場合
    • それぞれに0が入る

それでは皆様も楽しいツクールライフを!