Hi Jens..
First.. Congratulations for this great script, added with some cool icons will make an incredible look in any game =D
I'm using a couple of scripts, but the one that i 'think' that is causing trouble to work togheter with your is one special that have ' start_actor_command_selections ' ... All the others dont have anything like ' start_actor_command_selections ' ..
I can use the commands... like 'press and select magic' ( in screnshot) but the icons dont appear... they are in Graphics/Pictures with right names... I tested only on sbs 2.7 and worked perfectly , but on my project, with the scripts ( from
) , the crosscommand isn't showed...
With the scripts and without your crosscommand , i noticed that the command bar, isn't showed all the time... The command bar 'pop up' when the ATB Gauge got full... So I think that the problem is in the 'pop up', like making the crosscomand a pop up window... If you think that will need all scripts... ask me...
Please.. try to fix for me if it's possible.
some screnshots with your crosscommand... " invisible = ( "
#======================================================================
========
# ★RGSS2
# STR33a_アクティブタイムバトル v0.8 08/04/16
# サポート:http://strcatyou.u-abel.net/
#
# ・戦闘に時間の概念を加え、FFのATBのような戦闘形式にします。
# ・詳しい使用方法はSTR33bを参照してください。
#
#------------------------------------------------------------------------------
#
# 更新履歴
# ◇0.8
# 正式バージョン
# バグ修正・カウントダメージ機能追加
# ◇0.3β
# デバッグver3
#
#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :ctb_actionstart
attr_accessor :aw_ctb_actionstart
attr_accessor :action_waiting
attr_accessor :action_waitspeed
#--------------------------------------------------------------------------
# ● 詠唱カウント初期化
#--------------------------------------------------------------------------
def aw_gauge_clear
@aw_gauge = 0
@aw_ctb_actionstart = false
@action_waiting = false
@action_waitspeed = 0
end
#--------------------------------------------------------------------------
# ● 詠唱カウント取得
#--------------------------------------------------------------------------
def aw_gauge
@aw_gauge = 0 if @aw == nil
@aw_gauge
end
#--------------------------------------------------------------------------
# ● 詠唱カウント変更
#--------------------------------------------------------------------------
def aw_gauge=(n)
@aw_gauge = 0 if @aw_gauge == nil
if @action_waiting
@aw_gauge = [[max_ctb_gauge, @aw = n].min, 1].max
else
@aw_gauge = [[max_ctb_gauge, @aw = n].min, 0].max
end
@aw_ctb_actionstart = true if aw_gauge >= max_ctb_gauge
end
#--------------------------------------------------------------------------
# ● 詠唱カウント加算
#--------------------------------------------------------------------------
def aw_gauge_gain
return unless movable?
@aw_gauge = 0 if aw_gauge == nil
return if aw_gauge >= max_ctb_gauge
ctspeed = STRRGSS2::CTB.ctspeed
sp = self.agi * 1.0 / $game_troop.ctb_speed * ctspeed
sp *= @action_waitspeed
self.aw_gauge += sp
end
#--------------------------------------------------------------------------
# ● カウント取得
#--------------------------------------------------------------------------
def ctb_gauge
@ctb_gauge = 0 if @ctb_gauge == nil
@ctb_gauge
end
#--------------------------------------------------------------------------
# ● カウント変更
#--------------------------------------------------------------------------
def ctb_gauge=(n)
@ctb_gauge = 0 if @ctb_gauge == nil
@ctb_gauge = [[max_ctb_gauge, @ctb_gauge = n].min, 0].max
@ctb_actionstart = true if ctb_gauge >= max_ctb_gauge
end
#--------------------------------------------------------------------------
# ● カウント最大値取得
#--------------------------------------------------------------------------
def max_ctb_gauge
STRRGSS2::CTB::CT_MAX
end
#--------------------------------------------------------------------------
# ● カウント加算
#--------------------------------------------------------------------------
def ctb_gauge_gain
return unless movable?
return if self.ctb_gauge >= max_ctb_gauge
@ctb_gauge = 0 if @ctb_gauge == nil
ctspeed = STRRGSS2::CTB.ctspeed
self.ctb_gauge += self.agi * 1.0 / $game_troop.ctb_speed * ctspeed
end
#--------------------------------------------------------------------------
# ● ステートの付加
#--------------------------------------------------------------------------
alias add_state_str33x add_state
def add_state(state_id)
add_state_str33x(state_id)
unless movable?
@ctb_gauge = 0
aw_gauge_clear
end
end
#--------------------------------------------------------------------------
# ● 戦闘行動可能判定?(行動作成するか)
#--------------------------------------------------------------------------
def make_action
@ctb_actionstart
end
#--------------------------------------------------------------------------
# ● カウントダメージ
#--------------------------------------------------------------------------
def count_damage(action = 0)
if not action.is_a?(Numeric)
# メモ欄から設定取得
word = STRRGSS2::CTB::CT_DM_WORD
if action.note[/#{word}\[(\d+)\]/] != nil
ct_damage = $1.to_f
elsif action.note[/#{word}\[\-(\d+)\]/] != nil
ct_damage = -($1.to_f)
else
ct_damage = 0
end
else
ct_damage = action
end
# ダメージ
if @action_waiting
if self.aw_gauge < max_ctb_gauge
self.aw_gauge -= (max_ctb_gauge / 100.0) * ct_damage
end
else
if self.ctb_gauge < max_ctb_gauge
self.ctb_gauge -= (max_ctb_gauge / 100.0) * ct_damage
end
end
end
#--------------------------------------------------------------------------
# ● 通常攻撃の効果適用
#--------------------------------------------------------------------------
alias attack_effect_str33x attack_effect
def attack_effect(attacker)
attack_effect_str33x(attacker)
return if @skipped or @missed or @evaded or @hp_damage == 0
count_damage(STRRGSS2::CTB::CT_DM_ATTACK)
end
#--------------------------------------------------------------------------
# ● スキルの効果適用
#--------------------------------------------------------------------------
alias skill_effect_str33x skill_effect
def skill_effect(user, skill)
skill_effect_str33x(user, skill)
return if @skipped or @missed or @evaded or (skill.physical_attack and @hp_damage == 0)
count_damage(skill)
end
#--------------------------------------------------------------------------
# ● アイテムの効果適用
#--------------------------------------------------------------------------
alias item_effect_str33x item_effect
def item_effect(user, item)
item_effect_str33x(user, item)
return if @skipped or @missed or @evaded or (item.physical_attack and @hp_damage == 0)
count_damage(item)
end
end
#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 戦闘行動の作成
#--------------------------------------------------------------------------
alias str33x_make_action make_action
def make_action
return unless super
str33x_make_action
end
end
#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● オブジェクト初期化
#--------------------------------------------------------------------------
alias initialize_str33x initialize
def initialize(index, enemy_id)
initialize_str33x(index, enemy_id)
@ctbselfturn = 0
end
#--------------------------------------------------------------------------
# ● 行動条件合致判定
#--------------------------------------------------------------------------
alias conditions_met_str33x? conditions_met?
def conditions_met?(action)
case action.condition_type
when 1 # ターン数
n = @ctbselfturn # 自分の行動回数に置き換える
a = action.condition_param1
b = action.condition_param2
return false if (b == 0 and n != a)
return false if (b > 0 and (n < 1 or n < a or n % b != a %

)
return true
else
return conditions_met_str33x?(action)
end
end
#--------------------------------------------------------------------------
# ● 戦闘行動の作成
#--------------------------------------------------------------------------
alias str33x_make_action make_action
def make_action
return unless super
str33x_make_action
@ctbselfturn += 1
end
end
#==============================================================================
# ■ Game_Troop
#==============================================================================
class Game_Troop < Game_Unit
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :ctb_speed
attr_accessor :escape_count
attr_accessor :max_escape_count
attr_accessor :esc_p_average
attr_accessor :esc_t_average
#--------------------------------------------------------------------------
# ● クリア
#--------------------------------------------------------------------------
alias clear_str33x clear
def clear
clear_str33x
@ctb_speed = 0
@escape_count = 0
@max_escape_count = 0
@esc_p_average = 0
@esc_t_average = 0
end
#--------------------------------------------------------------------------
# ● 平均速度設定
#--------------------------------------------------------------------------
def ctb_speed_set
return ($game_party.average_agi + $game_troop.average_agi) / 2
end
#--------------------------------------------------------------------------
# ● セットアップ
#--------------------------------------------------------------------------
alias setup_str33x setup
def setup(troop_id)
setup_str33x(troop_id)
@ctb_speed = ctb_speed_set
end
#--------------------------------------------------------------------------
# ● ターンの増加
#--------------------------------------------------------------------------
alias increase_turn_str33x increase_turn
def increase_turn
increase_turn_str33x
# 平均スピード設定
@ctb_speed = ctb_speed_set
end
end
#==============================================================================
# ■ Scene_Battle
#==============================================================================
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# ● 文章表示中?(追加)
#--------------------------------------------------------------------------
def m_window_visible?
return ($game_message.visible or $game_message.texts.size > 0)
end
#--------------------------------------------------------------------------
# ● アクション実行するか?(追加)
#--------------------------------------------------------------------------
def start_action_atb?
return (@action_active_wait > 0 or @action_battlers.size == 0 or @atb_result)
end
#--------------------------------------------------------------------------
# ● カウントするか?(追加)
#--------------------------------------------------------------------------
def atb_count?
return true if (@process_p or $game_message.visible or @atb_result)
a_mode = STRRGSS2::CTB.wait_mode
return ((a_mode[0] == true and @acton_phase) or
(a_mode[1] == true and (@skill_window != nil or @item_window != nil)) or
(a_mode[2] == true and (@target_enemy_window != nil or @target_actor_window != nil)) or
(a_mode[3] == true and @actor_command_window.active))
end
#--------------------------------------------------------------------------
# ● カウントタイム(追加)
#--------------------------------------------------------------------------
def update_ctb
# ウェイト
@action_active_wait -= 1 if @action_active_wait > 0
escape_now = false
# カウント可否判定
return unless (Graphics.frame_count % STRRGSS2::CTB::EXTEND[:update]) == 0
return if atb_count?
# 全バトラーゲージ加算
if Input.press?(STRRGSS2::CTB::ESCAPE_KEY)
# 逃走カウント
escape_count_gain
escape_now = true
end
if STRRGSS2::CTB::ESCAPE_CSTOP == false or
(STRRGSS2::CTB::ESCAPE_CSTOP == true and escape_now == false)
escape_count_gain(:minus) if not escape_now and STRRGSS2::CTB::ESCAPE_LOSS
# 逃走していない時のみ加算
for i in $game_party.members
if i.action_waiting
i.aw_gauge_gain
else
i.ctb_gauge_gain
end
end
end
for i in $game_troop.members
if i.action_waiting
i.aw_gauge_gain
else
i.ctb_gauge_gain
end
end
# アクター行動開始判定
for i in $game_party.members
if i.ctb_actionstart
if i.auto_battle
i.make_action
i.ctb_actionstart = false
if aw_setup(i)
@acton_phase = true
@action_battlers.push(i)
break
end
else
i.ctb_actionstart = false
@waiting_battler.push(i)
break
end
elsif i.action_waiting and i.aw_ctb_actionstart
i.action_waiting = i.aw_ctb_actionstart = false
@acton_phase = true
@action_battlers.push(i)
break
end
end
# エネミー行動開始判定
return if @action_active_wait > 0
for i in $game_troop.members
if i.ctb_actionstart
i.make_action
i.ctb_actionstart = false
if aw_setup(i)
@acton_phase = true
@action_battlers.push(i)
break
end
elsif i.action_waiting and i.aw_ctb_actionstart
i.action_waiting = i.aw_ctb_actionstart = false
@acton_phase = true
@action_battlers.push(i)
break
end
end
end
#--------------------------------------------------------------------------
# ● 詠唱セットアップ(追加)
#--------------------------------------------------------------------------
def aw_setup(actor)
if actor.action.skill != nil and actor.action.skill.speed > 0
actor.aw_ctb_actionstart = false
actor.action_waiting = true
actor.action_waitspeed = actor.action.skill.speed / 100.0
return false
elsif actor.action.item != nil and actor.action.item.speed > 0
actor.aw_ctb_actionstart = false
actor.action_waiting = true
actor.action_waitspeed = actor.action.item.speed/100.0
return false
else
return true
end
end
#--------------------------------------------------------------------------
# ● アクターコマンド開始(追加)
#--------------------------------------------------------------------------
def start_atb_actor_command
a_mode = STRRGSS2::CTB.wait_mode
return if (a_mode[0] == true and @acton_phase) or $game_troop.interpreter.running?
return if @waiting_battler.size == 0 or @a_command_battler != nil or @atb_result
return if @actor_command_window.openness > 0
STRRGSS2::CTB::COMMANDSE.play
ctb_actor_command(@waiting_battler.shift.index)
end
#--------------------------------------------------------------------------
# ● アクターコマンド入力(追加)
#--------------------------------------------------------------------------
def ctb_actor_command(index)
@a_command_battler = $game_party.members[index]
@status_window.index = index
start_actor_command_selection
end
#--------------------------------------------------------------------------
# ● 情報を常に表示(追加)
#--------------------------------------------------------------------------
def info_visible_update
@info_viewport.visible = true
if @target_enemy_window != nil
info_rx = @party_command_window.width + @target_enemy_window.width
@info_viewport.rect.x = info_rx - @actor_command_window.width
@info_viewport.ox = info_rx
elsif @target_actor_window
info_rx = @party_command_window.width + @target_actor_window.width
@info_viewport.rect.x = info_rx - @actor_command_window.width
@info_viewport.ox = info_rx
else
@info_viewport.rect.x = 0
@info_viewport.ox = @party_command_window.width
end
end
#--------------------------------------------------------------------------
# ● バトラー情報すり替えA(追加)
#--------------------------------------------------------------------------
def c_battler_atb_a
@active_battler_clone = @active_battler if @active_battler != nil
@waiting_battler_clone = @active_battler = @a_command_battler if @a_command_battler != nil
end
#--------------------------------------------------------------------------
# ● バトラー情報すり替えB(追加)
#--------------------------------------------------------------------------
def c_battler_atb_b
@active_battler = @active_battler_clone if @active_battler_clone != nil
@a_command_battler = @waiting_battler_clone if @waiting_battler_clone != nil
@active_battler_clone = @waiting_battler_clone = nil
end
#--------------------------------------------------------------------------
# ● ウィンドウ開放(追加)
#--------------------------------------------------------------------------
def dispose_windows
end_skill_selection
end_item_selection
end_target_actor_selection if @target_actor_window != nil
end_target_enemy_selection if @target_enemy_window != nil
@actor_command_window.create_contents
@actor_command_window.index = @actor_index = -1
@actor_command_window.close
@actor_command_window.active = false
@a_command_battler = @waiting_battler_clone = nil
@status_window.index = -1
end
#--------------------------------------------------------------------------
# ● 全バトラー初期カウント設定(追加)
#--------------------------------------------------------------------------
def battler_ctset
for i in $game_party.members
i.aw_gauge_clear
if $game_troop.surprise
i.ctb_gauge = 0
elsif i.fast_attack
i.ctb_gauge = i.max_ctb_gauge - 1
elsif $game_troop.preemptive
i.ctb_gauge = i.max_ctb_gauge - rand(i.max_ctb_gauge / 10)
else
i.ctb_gauge = (i.max_ctb_gauge / 3) + rand(i.max_ctb_gauge / 10)
end
i.ctb_actionstart = false
end
for i in $game_troop.members
i.aw_gauge_clear
if $game_troop.preemptive
i.ctb_gauge = 0
elsif i.fast_attack
i.ctb_gauge = i.max_ctb_gauge - 1
elsif $game_troop.surprise
i.ctb_gauge = i.max_ctb_gauge - rand(i.max_ctb_gauge / 10)
else
i.ctb_gauge = (i.max_ctb_gauge / 3) + rand(i.max_ctb_gauge / 10)
end
i.ctb_actionstart = false
end
end
#--------------------------------------------------------------------------
# ● 逃走カウント(追加)
#--------------------------------------------------------------------------
def escape_count_gain(n = :plus)
if n == :minus
max = $game_troop.max_escape_count
g = max / STRRGSS2::CTB::ESCAPE_LOSSP
$game_troop.escape_count = [[max, $game_troop.escape_count -= g].min, 0].max
return
end
return unless $game_troop.can_escape
$game_troop.escape_count += $game_troop.esc_p_average
@escape_flag = true if $game_troop.escape_count >= $game_troop.max_escape_count
end
#--------------------------------------------------------------------------
# ● 逃走カウント設定(追加)
#--------------------------------------------------------------------------
def escape_count_set
@escape_flag = false
$game_troop.esc_p_average = $game_party.average_agi
$game_troop.esc_t_average = $game_troop.average_agi
ave = $game_troop.esc_t_average
sp = STRRGSS2::CTB::ESCAPE
$game_troop.max_escape_count = ave * $game_troop.members.size * sp
$game_troop.max_escape_count /= 2
$game_troop.max_escape_count += rand(ave * 2)
unless $game_troop.can_escape
$game_troop.escape_count = 0
return
end
if $game_troop.preemptive
$game_troop.escape_count = $game_troop.max_escape_count / 2
$game_troop.escape_count += rand($game_troop.max_escape_count / 2)
elsif $game_troop.surprise
$game_troop.escape_count = 0
else
$game_troop.escape_count = rand($game_troop.max_escape_count / 5)
end
end
#--------------------------------------------------------------------------
# ● 次のアクターのコマンド入力へ(再定義)
#--------------------------------------------------------------------------
def next_actor
@party_command_window.active = false
@actor_command_window.create_contents
@actor_command_window.index = -1
@actor_command_window.close
if @a_command_battler != nil
if aw_setup(@a_command_battler)
@acton_phase = true
@action_battlers.push(@a_command_battler)
end
@a_command_battler = @waiting_battler_clone = nil
end
@status_window.index = @actor_index = -1
@process_p = false
start_main
end
#--------------------------------------------------------------------------
# ● 前のアクターのコマンド入力へ(再定義)
#--------------------------------------------------------------------------
def prior_actor
return if @a_command_battler == nil
@actor_command_window.create_contents
@actor_command_window.index = -1
@actor_command_window.close
c = @a_command_battler.max_ctb_gauge / 100.0 * STRRGSS2::CTB::CT_CANCEL
@a_command_battler.ctb_gauge = @a_command_battler.max_ctb_gauge - c
@a_command_battler = @waiting_battler_clone = nil
@status_window.index = @actor_index = -1
@process_p = false
start_main
end
#--------------------------------------------------------------------------
# ● 開始処理(エイリアス)
#--------------------------------------------------------------------------
alias start_str33x start
def start
escape_count_set
start_str33x
$game_temp.atb_itemrefresh = false
@message_window.z = 10
@action_active_wait = 0
@acton_phase = false
@process_p = true
@waiting_battler = []
$game_party.clear_actions
$game_troop.clear_actions
@actor_command_window.openness = 0
end
#--------------------------------------------------------------------------
# ● 基本更新処理(エイリアス)
#--------------------------------------------------------------------------
alias update_basic_str33x update_basic
def update_basic(main = false)
info_visible_update # 情報表示
update_basic_str33x(main) # 呼び戻し
unless main
update_active_command # コマンド入力更新
update_ctb # カウント
update_info_viewport # 情報表示ビューポートを更新
start_atb_actor_command # アクターコマンド開始
end
end
#--------------------------------------------------------------------------
# ● フレーム更新(再定義)
#--------------------------------------------------------------------------
def update
super
update_basic(true)
update_info_viewport # 情報表示ビューポートを更新
if $game_message.visible
@info_viewport.visible = false
@message_window.visible = true
end
return if judge_win_loss # 勝敗判定
return if @escape_success # 逃走成功
update_active_command # コマンド入力更新
update_ctb # カウント
process_battle_event # バトルイベントの処理
process_action # 戦闘行動
process_battle_event # バトルイベントの処理
# 逃走成功
if @escape_flag and not @atb_result
@escape_flag = false
@escape_success = true
process_escape
end
start_atb_actor_command # アクターコマンド開始
end
#--------------------------------------------------------------------------
# ● コマンド更新(追加)
#--------------------------------------------------------------------------
def update_active_command
update_scene_change
# 戦闘終了(Result)
if @atb_result
@party_command_window.active = false
@actor_command_window.index = -1
@actor_command_window.active = false
return
end
# 停止
return if (@process_p or $game_message.visible or @atb_result)
c_battler_atb_a
# コマンド入力待ち無し
if @waiting_battler_clone == nil
c_battler_atb_b
return
end
# カウントが変動したら行動不能になったと見做す
if @active_battler.ctb_gauge < @active_battler.max_ctb_gauge
dispose_windows
end
# 各ウィンドウ更新
if @target_enemy_window != nil
update_target_enemy_selection # 対象敵キャラ選択
elsif @target_actor_window != nil
update_target_actor_selection # 対象アクター選択
elsif @skill_window != nil
update_skill_selection # スキル選択
elsif @item_window != nil
update_item_selection # アイテム選択
elsif @party_command_window.active
update_party_command_selection # パーティコマンド選択
elsif @actor_command_window.active
update_actor_command_selection # アクターコマンド選択
end
c_battler_atb_b
end
#--------------------------------------------------------------------------
# ● パーティコマンド選択の開始(再定義)
#--------------------------------------------------------------------------
def start_party_command_selection
return if @spcs_disable
@process_p = false
if $game_temp.in_battle
@status_window.refresh
@status_window.index = @actor_index = -1
@message_window.visible = false
@actor_command_window.active = false
end
next_actor
end
#--------------------------------------------------------------------------
# ● 戦闘処理の実行開始(再定義)
#--------------------------------------------------------------------------
def start_main
#$game_troop.increase_turn ターン加算しない
@info_viewport.visible = false
@info_viewport.ox = 0
@message_window.visible = true
@party_command_window.active = false
@actor_command_window.active = false
@status_window.index = @actor_index = -1
@active_battler = nil
#@message_window.clear 消さない
$game_troop.make_actions
make_action_orders
wait(20)
end
#--------------------------------------------------------------------------
# ● パーティコマンド選択の更新(エイリアス)
#--------------------------------------------------------------------------
alias update_party_command_selection_str33x update_party_command_selection
def update_party_command_selection
@process_p = false
update_party_command_selection_str33x
end
#--------------------------------------------------------------------------
# ● アクターコマンド選択の開始(エイリアス)
#--------------------------------------------------------------------------
alias start_actor_command_selection_str33x start_actor_command_selection
def start_actor_command_selection
c_battler_atb_a
start_actor_command_selection_str33x
@actor_command_window.open
c_battler_atb_b
end
#--------------------------------------------------------------------------
# ● 対象敵キャラ選択の開始(エイリアス)
#--------------------------------------------------------------------------
alias start_target_enemy_selection_str33x start_target_enemy_selection
def start_target_enemy_selection
start_target_enemy_selection_str33x
@target_enemy_window.z += 10 if @target_enemy_window != nil
end
#--------------------------------------------------------------------------
# ● 対象アクター対象選択の開始(エイリアス)
#--------------------------------------------------------------------------
alias start_target_actor_selection_str33x start_target_actor_selection
def start_target_actor_selection
start_target_actor_selection_str33x
@target_actor_window.z += 10 if @target_actor_window != nil
end
#--------------------------------------------------------------------------
# ● スキル選択の開始(エイリアス)
#--------------------------------------------------------------------------
alias start_skill_selection_str33x start_skill_selection
def start_skill_selection
start_skill_selection_str33x
a = @active_battler
@activeref_skill = [a.mp, a.maxmp, a.skills, a.name]
end
#--------------------------------------------------------------------------
# ● スキル選択の終了(エイリアス)
#--------------------------------------------------------------------------
alias end_skill_selection_str33x end_skill_selection
def end_skill_selection
end_skill_selection_str33x
@activeref_skill = nil
end
#--------------------------------------------------------------------------
# ● スキル選択の更新(エイリアス)
#--------------------------------------------------------------------------
alias update_skill_selection_str33x update_skill_selection
def update_skill_selection
a = @active_battler; b = [a.mp, a.maxmp, a.skills, a.name]; ref = false
for i in 0..3
ref = true if b[i] != @activeref_skill[i]
end
if ref
@skill_window.refresh; a = @active_battler
@activeref_skill = [a.mp, a.maxmp, a.skills, a.name]
b.clear; a = b = nil
end
update_skill_selection_str33x
end
#--------------------------------------------------------------------------
# ● アイテム選択の更新(エイリアス)
#--------------------------------------------------------------------------
alias update_item_selection_str33x update_item_selection
def update_item_selection
if $game_temp.atb_itemrefresh
@item_window.refresh
$game_temp.atb_itemrefresh = false
end
update_item_selection_str33x
end
#--------------------------------------------------------------------------
# ● バトルイベントの処理(エイリアス)
#--------------------------------------------------------------------------
alias process_battle_event_str33x process_battle_event
def process_battle_event
return if start_action_atb? and not @battle_event_set
process_battle_event_str33x
@acton_phase = false
end
#--------------------------------------------------------------------------
# ● 戦闘開始の処理(エイリアス)
#--------------------------------------------------------------------------
alias process_battle_start_str33x process_battle_start
def process_battle_start
@battle_event_set = true # 必ずバトルイベント実行
battler_ctset
process_battle_start_str33x
@battle_event_set = false
$game_troop.increase_turn # ターン1にする
end
#--------------------------------------------------------------------------
# ● 逃走の処理(エイリアス)
#--------------------------------------------------------------------------
alias process_escape_str33x process_escape
def process_escape
$game_troop.preemptive = true
dispose_windows
@atb_result = true
process_escape_str33x
end
#--------------------------------------------------------------------------
# ● 勝利の処理(エイリアス)
#--------------------------------------------------------------------------
alias process_victory_str33x process_victory
def process_victory
dispose_windows
@atb_result = true
process_victory_str33x
end
#--------------------------------------------------------------------------
# ● 敗北の処理(エイリアス)
#--------------------------------------------------------------------------
alias process_defeat_str33x process_defeat
def process_defeat
dispose_windows
@atb_result = true
process_defeat_str33x
end
#--------------------------------------------------------------------------
# ● 行動順序作成(再定義)
#--------------------------------------------------------------------------
def make_action_orders
# 無効化 (配列をソートしない)
end
#--------------------------------------------------------------------------
# ● 戦闘行動の処理(エイリアス)
#--------------------------------------------------------------------------
alias process_action_str33x process_action
def process_action
return if start_action_atb?
@acton_phase = true
process_action_str33x
return if judge_win_loss or $game_temp.next_scene != nil
return if @active_battler == nil or @active_battler.dead?
@active_battler.ctb_gauge = 0
@active_battler.aw_gauge_clear
@active_battler = nil
turn_end(false)
end
#--------------------------------------------------------------------------
# ● ステート自然解除(エイリアス)
#--------------------------------------------------------------------------
alias remove_states_auto_str33x remove_states_auto
def remove_states_auto
@active_battler_rsa_clone = @active_battler
for rsa_battler in $game_party.members + $game_troop.members
@active_battler = rsa_battler
remove_states_auto_str33x
end
@active_battler = @active_battler_rsa_clone
@active_battler_rsa_clone = nil
end
#--------------------------------------------------------------------------
# ● ターン終了(エイリアス)
#--------------------------------------------------------------------------
alias turn_end_str33x turn_end
def turn_end(no_action = true)
return if no_action
@battle_event_set = true
@spcs_disable = true
turn_end_str33x
@battle_event_set = false
@spcs_disable = false
@action_active_wait = 4
@status_window.refresh
$game_troop.increase_turn
end
end
#==============================================================================
# ■ Game_Temp
#==============================================================================
class Game_Temp
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_accessor :atb_itemrefresh
#--------------------------------------------------------------------------
# ● オブジェクト初期化(エイリアス)
#--------------------------------------------------------------------------
alias initialize_str33x initialize
def initialize
initialize_str33x
@atb_itemrefresh = false
end
end
#==============================================================================
# ■ Game_Party
#==============================================================================
class Game_Party < Game_Unit
#--------------------------------------------------------------------------
# ● アイテムの増加 (減少)(エイリアス)
#--------------------------------------------------------------------------
alias gain_item_str33x gain_item
def gain_item(item, n, include_equip = false)
gain_item_str33x(item, n, include_equip)
$game_temp.atb_itemrefresh = true if $game_temp.in_battle
end
end
#==============================================================================
# ■ Window_TargetEnemy
#==============================================================================
class Window_TargetEnemy < Window_Command
#--------------------------------------------------------------------------
# ● オブジェクト初期化(エイリアス)
#--------------------------------------------------------------------------
alias initialize_str33x initialize
def initialize
initialize_str33x
@e_exist = []
for enemy in $game_troop.members
@e_exist[enemy.index] = enemy.exist?
end
end
#--------------------------------------------------------------------------
# ● オブジェクト初期化2(追加)
#--------------------------------------------------------------------------
def initialize_2(width, commands, column_max = 1, row_max = 0, spacing = 32)
if row_max == 0
row_max = (commands.size + column_max - 1) / column_max
end
@commands = commands
@item_max = commands.size
@column_max = column_max
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# ● フレーム更新(オーバーライド)
#--------------------------------------------------------------------------
def update
super
for enemy in $game_troop.members
if @e_exist[enemy.index] != enemy.exist?
# エネミーリスト変動
commands = []
@enemies = []
for enemy in $game_troop.members
next unless enemy.exist?
commands.push(enemy.name)
@enemies.push(enemy)
end
initialize_2(416, commands, 2, 4)
@e_exist = []
for enemy in $game_troop.members
@e_exist[enemy.index] = enemy.exist?
end
end
end
end
#--------------------------------------------------------------------------
# ● 敵キャラオブジェクト取得(エイリアス)
#--------------------------------------------------------------------------
alias enemy_str33x enemy
def enemy
# エネミーが全滅している場合、適当に先頭のエネミーを返す
return $game_troop.members[0] if @enemies.size == 0
return enemy_str33x
end
end
#==============================================================================
# ■ Window_BattleMessage
#==============================================================================
class Window_BattleMessage < Window_Message
#--------------------------------------------------------------------------
# ● 最下行の文章の取得(エイリアス)
#--------------------------------------------------------------------------
alias last_instant_text_str33x last_instant_text
def last_instant_text
return "" if @lines == []
return last_instant_text_str33x
end
end
the japanese kanjis its only for 'naming' Oo and for instructions... for someone that can understand scripting, i think that it don't cause problem.