読者です 読者をやめる 読者になる 読者になる

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

プログラミングやRPGツクール、DTM、VOCALOIDについてのんびり書きます。

【メモ】装備状況を変数に記録する(RPGツクールVX ace)

メモ RPGツクールVXace

装備状態によって、イベントの内容を変化させたい場合に対応する必要があった。

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が入る