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

  =他の素材との競合の可能性
  !.. ベンチシステムなどと競合するかもしれません

  =導入方法
  Game_Partyより上に新セクションを作成して、このプログラムをそこにコピーする

  =更新履歴
  2010/06/01 タイプミスで全く機能していなかったのを修正
  2010/05/04 公開

  =再定義しているメソッド
  Game_Party#initialize (エイリアス使用)
  Game_Party#setup_starting_members (エイリアス使用)
  Game_Party#refresh

  =新規定義しているメソッド
  Game_Party#_Lufar_NoCopyActor_ConvertActorObject
  Game_Party::Array_Actors#marshal_dump
  Game_Party::Array_Actors#marshal_load
=end
#----------------------------------------------------------------------------
# ◇ Game_Party クラス
#----------------------------------------------------------------------------
class Game_Party
  #--------------------------------------------------------------------------
  # ◇ Array_Actors クラス
  #--------------------------------------------------------------------------
  class Array_Actors < Array
    #------------------------------------------------------------------------
    # ○ ユーザー定義の Marshal (ダンプ)
    #------------------------------------------------------------------------
    def marshal_dump
      Array.new(self.length) {|index| self[index].id }
    end
    #------------------------------------------------------------------------
    # ○ ユーザー定義の Marshal (ロード)
    #     obj : marshal_dump でダンプされたオブジェクト
    #------------------------------------------------------------------------
    def marshal_load(obj)
      self.clear
      obj.each {|actor_id| self.push($game_actors[actor_id]) }
    end
  end
  #--------------------------------------------------------------------------
  # ○ アクターオブジェクトの変換
  #--------------------------------------------------------------------------
  def _Lufar_NoCopyActor_ConvertActorObject
    @actors = Array_Actors.new(@actors)
  end
  #--------------------------------------------------------------------------
  # ● オブジェクト初期化
  #--------------------------------------------------------------------------
  alias _Lufar_NoCopyActor_Initialize initialize
  def initialize
    _Lufar_NoCopyActor_Initialize
    _Lufar_NoCopyActor_ConvertActorObject
  end
  #--------------------------------------------------------------------------
  # ● 初期パーティのセットアップ
  #--------------------------------------------------------------------------
  alias _Lufar_NoCopyActor_SetupStartingMembers setup_starting_members
  def setup_starting_members
    _Lufar_NoCopyActor_SetupStartingMembers
    _Lufar_NoCopyActor_ConvertActorObject
  end
  #--------------------------------------------------------------------------
  # ● パーティメンバーのリフレッシュ
  #--------------------------------------------------------------------------
  def refresh
  end
end

戻る