#============================================================================== # □ 先頭アクター切替 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20111215 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["先頭アクター切替"] = true if $rgsslab["先頭アクター切替"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::First_Actor_Change #-------------------------------------------------------------------------- # ○ アクター切替ボタン # アクター切替のボタンの設定を行います。 # # 他の素材と併用時において、ボタンが重複しないようご注意下さい。 # # 切替できるのは、Scene_Map(マップ画面)時で且つ # イベント起動していない場合(並列イベントは除く)に # メッセージウィンドウが開いていない状態に限ります。 #-------------------------------------------------------------------------- BUTTON = :Z end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::First_Actor_Change [module] #============================================================================== module RGSSLAB::First_Actor_Change #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "先頭アクター切替" VERSION = 1 RELEASE = 20111215 end #============================================================================== # ■ Game_System [class] #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rgsslab076 #-------------------------------------------------------------------------- # ● オブジェクト初期化 [エイリアス] #-------------------------------------------------------------------------- alias first_actor_change_initialize initialize def initialize first_actor_change_initialize @rgsslab076 = RgssLab_076.new end end #============================================================================== # □ RgssLab_076 [class] #============================================================================== class RgssLab_076 #-------------------------------------------------------------------------- # ○ 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :first_actor_change #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @first_actor_change = 0 end end #============================================================================== # ■ Game_Player [class] #============================================================================== class Game_Player < Game_Character #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_076 = RGSSLAB::First_Actor_Change #-------------------------------------------------------------------------- # ● 対応するアクターの取得 [再定義] #-------------------------------------------------------------------------- def actor $game_party.battle_members[$game_system.rgsslab076.first_actor_change] end #-------------------------------------------------------------------------- # ● 移動中でない場合の処理 [再定義] # last_moving : 直前に移動中だったか #-------------------------------------------------------------------------- def update_nonmoving(last_moving) return if $game_map.interpreter.running? if last_moving $game_party.on_player_walk return if check_touch_event end if movable? && Input.trigger?(:C) return if get_on_off_vehicle return if check_action_event end if Input.trigger?(RGSSLAB_076::BUTTON) $game_system.rgsslab076.first_actor_change += 1 if $game_party.battle_members.size < $game_system.rgsslab076.first_actor_change + 1 $game_system.rgsslab076.first_actor_change = 0 end refresh end update_encounter if last_moving end end #============================================================================== # ■ Game_Follower [class] #============================================================================== class Game_Follower < Game_Character #-------------------------------------------------------------------------- # ● 対応するアクターの取得 [再定義] #-------------------------------------------------------------------------- def actor p_max = $game_party.battle_members.size default = $game_system.rgsslab076.first_actor_change m_index = eval("(default + @member_index) > (p_max - 1) ? @member_index - (p_max - default) : default + @member_index") return if $game_party.battle_members[@member_index] == nil return $game_party.battle_members[m_index] end end end