Versione: 1.00
Autore/i: kaisouryouiki
Informazioni:
Quando si accede al menù e si seleziona qualche comando, all'uscita e al rientro nel menù, questo riparte dalla posizione iniziale.
Con questo script invece la selezione rimarrà memorizzata...spero di essermi spiegato xD
Istruzioni:
Basta inserire lo script sopra Main.
Script:
=begin
★コマンドインデックス記憶★
プレイヤーの以下の行動を記憶させることで、
次の行動以降の初期カーソル位置を変更し、同じ行動を取る際の補助とします。
◆ 記憶する内容
・メニュー:プレイヤーが最後に選択したコマンドのカーソル位置
・戦闘 :各アクターが最後に選択したアクターコマンドのカーソル位置
・戦闘 :各アクターが最後に選択したエネミー ※1
・戦闘 :各アクターが最後に選択したアクター
※1 => 戦闘終了後リセットされます
● 仕様 ●==========================================================
エネミーで記憶したインデックスは、
それぞれの対象が存在しなくなった場合(撃破後)にリセットされます。
--------------------------------------------------------------------
各、記憶された情報はセーブデータにも保存され、ロード後にも引き継がれます。
====================================================================
● 注意 ●==========================================================
ニューゲームから始めないとエラーを吐きます。
--------------------------------------------------------------------
全てエイリアスで構成されてますので、素材の下の方に挿入してください。
====================================================================
ver1.00
Last Update : 2009/08/19
8/19 : 新規
ろかん http://kaisouryouiki.web.fc2.com/
=end
$rsi = {} if $rsi == nil
$rsi["コマンドインデックス記憶"] = true
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :last_battle_index
attr_accessor :last_enemy
attr_accessor :last_actor
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias battle_index_initialize initialize unless $!
def initialize(actor_id)
battle_index_initialize(actor_id)
@last_battle_index = 0
@last_enemy = nil
@last_actor = nil
end
end
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :last_menu_index
attr_accessor :last_item
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias menu_index_initialize initialize unless $!
def initialize
menu_index_initialize
@last_menu_index = 0
end
end
class Scene_Menu < Scene_Base
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias last_menu_index_set initialize unless $!
def initialize(menu_index = 0)
last_menu_index_set(menu_index = 0)
@menu_index = $game_party.last_menu_index
end
#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
alias last_menu_index_memory terminate unless $!
def terminate
unless $scene.is_a?(Scene_Map)
$game_party.last_menu_index = @command_window.index
end
last_menu_index_memory
end
#--------------------------------------------------------------------------
# ● アクター選択の開始
#--------------------------------------------------------------------------
alias last_menu_index_memory_dummy start_actor_selection unless $!
def start_actor_selection
$game_party.last_menu_index = @command_window.index
last_menu_index_memory_dummy
end
end
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 終了処理
#--------------------------------------------------------------------------
alias enemy_index_reset terminate unless $!
def terminate
for i in $game_party.members do i.last_enemy = nil end
enemy_index_reset
end
#--------------------------------------------------------------------------
# ● 次のアクターのコマンド入力へ
#--------------------------------------------------------------------------
alias last_battle_index_memory next_actor unless $!
def next_actor
n = @actor_index + 1
if @actor_command_window.active && ! (@active_battler.action.kind == 0 &&
@active_battler.action.basic < 0)
@active_battler.last_battle_index = @actor_command_window.index
end
unless $game_party.members.size == n
@actor_command_window.index = $game_party.members[n].last_battle_index
end
last_battle_index_memory
end
#--------------------------------------------------------------------------
# ● アクターコマンド選択の開始
#--------------------------------------------------------------------------
alias last_battle_index_set start_actor_command_selection unless $!
def start_actor_command_selection
last_battle_index_set
@actor_command_window.index = @active_battler.last_battle_index
end
#--------------------------------------------------------------------------
# ● 対象敵キャラ選択の開始
#--------------------------------------------------------------------------
alias last_enemy_index_set start_target_enemy_selection unless $!
def start_target_enemy_selection
last_enemy_index_set
@active_battler.action.target_index = -1
unless @active_battler.last_enemy == nil
if $game_troop.existing_members.include?(@active_battler.last_enemy)
@target_enemy_window.index =
$game_troop.existing_members.index(@active_battler.last_enemy)
end
end
end
#--------------------------------------------------------------------------
# ● 対象敵キャラ選択の終了
#--------------------------------------------------------------------------
alias last_enemy_index_memory end_target_enemy_selection unless $!
def end_target_enemy_selection
unless @active_battler.action.target_index == -1
@active_battler.last_enemy = @target_enemy_window.enemy
end
last_enemy_index_memory
end
#--------------------------------------------------------------------------
# ● 対象アクター対象選択の開始
#--------------------------------------------------------------------------
alias last_actor_index_set start_target_actor_selection unless $!
def start_target_actor_selection
last_actor_index_set
@active_battler.action.target_index = -1
unless @active_battler.last_actor == nil
if $game_party.members.include?(@active_battler.last_actor)
@target_actor_window.index =
$game_party.members.index(@active_battler.last_actor)
end
end
end
#--------------------------------------------------------------------------
# ● 対象アクター選択の終了
#--------------------------------------------------------------------------
alias last_actor_index_memory end_target_actor_selection unless $!
def end_target_actor_selection
unless @active_battler.action.target_index == -1
@active_battler.last_actor =
$game_party.members[@target_actor_window.index]
end
last_actor_index_memory
end
end













