#============================================================================== # 「隊列操作」(ACE) Ver.1.0 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇利用規約 # この素材はフリーゲームにのみご利用頂けます。 # シェアウェア、販売作品への利用は原則として禁止します。(詳細はブログ参照) # 利用される場合はスクリプト作成者として「奈々」とURLを明記し # 配布時にブログで利用規約の確認と、利用報告を必ず行って下さい。 # #------------------------------------------------------------------------------ # # 隊列を直接操作するイベントコマンドを追加します。 # イベントコマンド「スクリプト」で以下のコマンドを記入します。 # # add_member_pos(id, n) # id番のアクターをパーティのn番目に追加します。 # # add_member_pos(id, n, true) # と記述すると、追加時にアクターの初期化を行います。 # # change_memper_pos(n, m) # パーティメンバーのn番目とm番目を入れ替えます。 # メンバー数より大きい数が入っている場合は最後尾が選ばれます。 # #============================================================================== #============================================================================== # ■ Game_Party #------------------------------------------------------------------------------ #  パーティを扱うクラスです。所持金やアイテムなどの情報が含まれます。このクラ # スのインスタンスは $game_party で参照されます。 #============================================================================== class Game_Party < Game_Unit #-------------------------------------------------------------------------- # ● アクターを加える(位置指定) #-------------------------------------------------------------------------- def add_actor_pos(actor_id, pos) return false if @actors.include?(actor_id) @actors.push(actor_id) temp = [] for i in 0...@actors.size do case when i < pos temp.push(@actors[i]) when i == pos temp.push(@actors.last) when i > pos temp.push(@actors[i - 1]) end end @actors = temp $game_player.refresh $game_map.need_refresh = true end #-------------------------------------------------------------------------- # ● アクターを入れ替える #-------------------------------------------------------------------------- def change_actor_pos(pos1, pos2) pos1 = @actors.size if pos1 > @actors.size - 1 pos2 = @actors.size if pos2 > @actors.size - 1 temp = [] for i in 0...@actors.size do case when i == pos1 temp.push(@actors[pos2]) when i == pos2 temp.push(@actors[pos1]) else temp.push(@actors[i]) end end @actors = temp $game_player.refresh $game_map.need_refresh = true end end #============================================================================== # ■ Game_Interpreter #------------------------------------------------------------------------------ #  イベントコマンドを実行するインタプリタです。このクラスは Game_Map クラス、 # Game_Troop クラス、Game_Event クラスの内部で使用されます。 #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● アクターを加える(位置指定) #-------------------------------------------------------------------------- def add_member_pos(actor_id, pos, setup = false) $game_actors[actor_id].setup(actor_id) if setup $game_party.add_actor_pos(actor_id, pos - 1) end #-------------------------------------------------------------------------- # ● アクターを入れ替える #-------------------------------------------------------------------------- def change_memper_pos(pos1, pos2) $game_party.change_actor_pos(pos1 - 1, pos2 - 1) end end