I need a way to add an equipment command to the menu in ZTBS,where you select:
ATTACK
SKILL
ITEM
(This is where it should be)
END
I will post the script
Thanks^^
ATTACK
SKILL
ITEM
(This is where it should be)
END
I will post the script
Code:
#==============================================================================
# Zenith Tactical Battle System
# Actors Actions
#------------------------------------------------------------------------------
# Actor Action Setup
#==============================================================================
#==============================================================================
# â– Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ◠プレãƒãƒˆãƒ«ãƒ•ã‚§ãƒ¼ã‚ºé–‹å§‹
#--------------------------------------------------------------------------
def start_phase0
# フェーズ 0 ã«ç§»è¡Œ
$game_system.tactics_phase = 0
# ターンイベントセット
if defined? turn_event
set_turn_event
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (プレãƒãƒˆãƒ«ãƒ•ã‚§ãƒ¼ã‚º)
#--------------------------------------------------------------------------
def update_phase0
# ウィンドウä½ç½®èª¿æ•´
move_window
# 戦闘ä¸èƒ½å¾©æ´»åˆ¤å®š
battler_revival
# エフェクトä¸ã®å ´åˆ
if effect?
return
end
# イベント実行ä¸ã®å ´åˆ
if $game_system.map_interpreter.running?
return
end
# リザルトウィンドウ表示ä¸ã®å ´åˆ
if defined? result_window and result_window
return
end
#
# ãƒãƒˆãƒ«å‰ã«ä½•ã‹å‡¦ç†ã‚’åŠ ãˆãŸã„å ´åˆã¯ã“ã“ら辺ã§
#
# アクターフェーズ開始
start_phase1
end
#--------------------------------------------------------------------------
# ◠アクターフェーズ開始
#--------------------------------------------------------------------------
def start_phase1
# フェーズ 1 ã«ç§»è¡Œ
$game_system.tactics_phase = 1
# 行動済ã¿ãƒ•ãƒ©ã‚°ã‚’解除
clear_acted
# アクターフェーズ開始画åƒè¡¨ç¤º
appear_actor_phase_picture
# ターンカウント
$game_system.tactics_turn += 1
# ステップを 1 ã«è¨å®š
$game_system.tactics_step = 1
# カーソル固定を解除
$game_player.not_update = false
# ターンイベントセット
if defined? turn_event
set_turn_event
end
end
#--------------------------------------------------------------------------
# ◠アクターフェーズ開始画åƒè¡¨ç¤º
#--------------------------------------------------------------------------
def appear_actor_phase_picture
@help_window.visible = false
@count = 0
@picture = Sprite.new
@picture.bitmap = RPG::Cache.picture(ZTBS::ACTOR_PHASE)
@picture.ox = @picture.bitmap.width / 2
@picture.oy = @picture.bitmap.height / 2
@picture.x = 320
@picture.y = 240
@picture.opacity = 0
loop do
@count += 1
@picture.opacity += 15 if @count < 20
@picture.opacity -= 15 if @count > 60
break if @count == 80
# ゲーム画é¢ã‚’æ›´æ–°
Graphics.update
end
@picture.bitmap.dispose
@picture.dispose
@picture = nil
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ)
#--------------------------------------------------------------------------
def update_phase1
# ウィンドウä½ç½®èª¿æ•´
move_window
# 戦闘ä¸èƒ½å¾©æ´»åˆ¤å®š
battler_revival
# å‹æ•—判定
if judge
return
end
# エフェクトä¸ã®å ´åˆ
if effect?
return
end
# イベント実行ä¸ã®å ´åˆ
if $game_system.map_interpreter.running?
return
end
# セレクトä¸ã®å ´åˆ
if @select != nil and @select != 10
update_select
return
end
# リザルトウィンドウ表示ä¸ã®å ´åˆ
if defined? result_window and result_window
return
end
# ステップã«å¿œã˜ã¦æ›´æ–°
case $game_system.tactics_step
when 0
update_phase1_step0
when 1
update_phase1_step1
when 2
update_phase1_step2
when 3
update_phase1_step3
when 4
update_phase1_step4
when 5
update_phase1_step5
when 6
update_phase1_step6
when 7
update_step7
when 8
update_step8
when 9
update_step9
when 10
update_step10
end
if $game_system.tactics_step != 1
return
end
# 全員行動済ã¿åˆ¤å®š
case all_acted?
when 1
start_phase2
return
when 2
# 未行動アクター処ç†
not_acted_actor_refresh
return
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ セレクト)
#--------------------------------------------------------------------------
def update_select
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C)
# アクターウィンドウ
if @select_window.is_a?(Window_TActors)
# ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„るアクターをå–å¾—
actor = $game_map.events[@select_window.actor]
if $game_system.tactics_step == 0
if !$game_system.tactics_actors.keys.include?(@select_window.actor)
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
return
end
else
if $game_system.tactics_actors.keys.include?(@select_window.actor)
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
return
end
end
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# セレクトウィンドウを解放
dispose_select_window
# セレクト終了
@select = nil
# カーソル固定を解除
$game_player.not_update = false
if $game_system.tactics_step != 0
# 攻撃エリアをセット
set_attack_area(0)
# ステップ 6 ã¸ç§»è¡Œ
$game_system.tactics_step = 6
@targets = {}
@targets[actor.id] = $game_system.tactics_dead_actors[actor.id]
return
end
@battler = actor
$game_player.moveto(@battler.x, @battler.y)
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ã‚’セット
set_battler_info
# ステップ 1 ã¸ç§»è¡Œ
$game_system.tactics_step = 1
# スã‚ルウィンドウ
elsif @select_window.is_a?(Window_TSkill)
# スã‚ルウィンドウã§ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„るデータをå–å¾—
@skill = @select_window.skill
# 使用ã§ããªã„å ´åˆ
if @skill == nil or not @attacker.skill_can_use?(@skill.id)
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
@skill = nil
return
end
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# アクションをè¨å®š
@attacker.current_action.skill_id = @skill.id
# セレクトウィンドウを解放
dispose_select_window
# 対象ãŒæˆ¦é—˜ä¸èƒ½å‘³æ–¹ã®å ´åˆ
if @skill.scope == 5 or @skill.scope == 6
# セレクトウィンドウを作æˆ
make_select_window(0,0)
@revival = true
return
end
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ã‚’セット
set_battler_info
# ステップ 6 ã¸ç§»è¡Œ
$game_system.tactics_step = 6
# セレクト終了
@select = 10
# 攻撃エリアをセット
set_attack_area(0)
# カーソル固定を解除
$game_player.not_update = false
# アイテムウィンドウ
elsif @select_window.is_a?(Window_TItem)
# アイテムウィンドウã§ç¾åœ¨é¸æŠžã•ã‚Œã¦ã„るデータをå–å¾—
@item = @select_window.item
# 使用ã§ããªã„å ´åˆ
if @item == nil or not $game_party.item_can_use?(@item.id)
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
@item = nil
return
end
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# アクションをè¨å®š
@attacker.current_action.item_id = @item.id
# セレクトウィンドウを解放
dispose_select_window
# 対象ãŒæˆ¦é—˜ä¸èƒ½å‘³æ–¹ã®å ´åˆ
if @item.scope == 5 or @item.scope == 6
# セレクトウィンドウを作æˆ
make_select_window(0,0)
@revival = true
return
end
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ã‚’セット
set_battler_info
# ステップ 6 ã¸ç§»è¡Œ
$game_system.tactics_step = 6
# セレクト終了
@select = 10
# 攻撃エリアをセット
set_attack_area(0)
# カーソル固定を解除
$game_player.not_update = false
end
end
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# セレクトウィンドウを解放
dispose_select_window
# 戦闘ä¸èƒ½è€…é¸æŠžä¸
if @revival != nil and $game_system.tactics_step != 0
# セレクトウィンドウを作æˆ
case @attacker.current_action.kind
when 1
make_select_window(1, @attacker, @skill)
when 2
make_select_window(2, nil, @item)
end
@revival = nil
return
end
# コマンドウィンドウを作æˆ
make_command_window(@select)
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ã‚’セット
set_battler_info
# セレクト終了
@select = nil
# ステップ 2 帰還フラグ解除
@back_step2 = nil
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 0 : メニューコマンド)
#--------------------------------------------------------------------------
def update_phase1_step0
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウを解放
dispose_command_window
# カーソル固定を解除
$game_player.not_update = false
# ステップ 1 ã¸ç§»è¡Œ
$game_system.tactics_step = 1
end
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C)
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# コマンドã«ã‚ˆã£ã¦åˆ†å²
case @command_window.index
# アクター確èª
when 0
# コマンドウィンドウ解放
dispose_command_window
# セレクト ã¸ç§»è¡Œ
@select = 0
# セレクトウィンドウを作æˆ
make_select_window(0,0)
# ターン終了
when 1
# コマンドウィンドウを解放
dispose_command_window
# 未行動アクター処ç†
not_acted_actor_refresh
# ステップ 1 ã¸ç§»è¡Œ
$game_system.tactics_step = 1
# セーブ or タイトルã¸
when 2
if ZTBS::POSSIBLE_SAVE
# セーブ呼ã³å‡ºã—フラグ
$game_temp.save_calling = true
# ステップ 1 ã¸ç§»è¡Œ
$game_system.tactics_step = 1
# コマンドウィンドウを解放
dispose_command_window
# カーソル固定を解除
$game_player.not_update = false
else
$game_temp.to_title = true
@help_window.dispose
@help_window = nil
dispose_command_window
end
# タイトルã¸
when 3
$game_temp.to_title = true
@help_window.dispose
@help_window = nil
dispose_command_window
end
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 1 : アクターé¸æŠž)
#--------------------------------------------------------------------------
def update_phase1_step1
# カーソルä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼(イベント)å–å¾—
get_cursor_battler
# カーソルä½ç½®ã«ãƒãƒˆãƒ©ãƒ¼ãŒã„ã‚‹å ´åˆ
if @battler != nil
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ or エãƒãƒŸãƒ¼ã‚’セット
set_battler_info
# アクターã®å ´åˆ
if $game_system.tactics_actors.keys.include?(@battler.id)
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C) and !$game_player.moving?
# 未行動ã®å ´åˆ
actor = $game_system.tactics_actors[@battler.id]
if !@battler.acted and !actor.restriction != 4
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# カーソルを固定
$game_player.not_update = true
# ステップ 2 ã¸ç§»è¡Œ
$game_system.tactics_step = 2
# コマンドウィンドウを作æˆ
make_command_window
else
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
end
end
# L ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::L)
# カーソル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cursor_se)
# å‰ã®ã‚¢ã‚¯ã‚¿ãƒ¼ã¸
back_actor
end
# R ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::R)
# カーソル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cursor_se)
# 次ã®ã‚¢ã‚¯ã‚¿ãƒ¼ã¸
next_actor
end
# エãƒãƒŸãƒ¼ã®å ´åˆ
else
# L ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::L)
# カーソル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cursor_se)
# 最後ã®ã‚¢ã‚¯ã‚¿ãƒ¼ã¸
actor = $game_map.events[$game_system.tactics_actors.keys[$game_system.tactics_actors.keys.size - 1]]
$game_player.moveto(actor.x, actor.y)
end
# R ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::R)
# カーソル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cursor_se)
# 最åˆã®ã‚¢ã‚¯ã‚¿ãƒ¼ã¸
actor = $game_map.events[$game_system.tactics_actors.keys[0]]
$game_player.moveto(actor.x, actor.y)
end
end
# カーソルä½ç½®ã«ãƒãƒˆãƒ©ãƒ¼ãŒã„ãªã„å ´åˆã€ãƒ˜ãƒ«ãƒ—ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’éš ã™
else
@help_window.visible = false
# L ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::L)
# カーソル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cursor_se)
# 最後ã®ã‚¢ã‚¯ã‚¿ãƒ¼ã¸
actor = $game_map.events[$game_system.tactics_actors.keys[$game_system.tactics_actors.keys.size - 1]]
$game_player.moveto(actor.x, actor.y)
end
# R ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::R)
# カーソル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cursor_se)
# 最åˆã®ã‚¢ã‚¯ã‚¿ãƒ¼ã¸
actor = $game_map.events[$game_system.tactics_actors.keys[0]]
$game_player.moveto(actor.x, actor.y)
end
end
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B) and !$game_player.moving?
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# ステップ 0 ã¸ç§»è¡Œ
$game_system.tactics_step = 0
# コマンドウィンドウを作æˆ
make_command_window
# カーソルを固定
$game_player.not_update = true
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 2 : 移動å‰ã‚³ãƒžãƒ³ãƒ‰)
#--------------------------------------------------------------------------
def update_phase1_step2
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウを解放
dispose_command_window
# カーソル固定を解除
$game_player.not_update = false
# ステップ 1 ã¸ç§»è¡Œ
$game_system.tactics_step = 1
end
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C)
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# コマンドã«ã‚ˆã£ã¦åˆ†å²
case @command_window.index
# 移動
when 0
# コマンドウィンドウ解放
dispose_command_window
# 移動エリアをセット
set_movable_area(0)
# カーソル固定を解除
$game_player.not_update = false
# ステップ 3 ã¸ç§»è¡Œ
$game_system.tactics_step = 3
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃
when 1
# コマンドウィンドウ解放
dispose_command_window
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
# アクションをè¨å®š
@attacker.current_action.kind = 0
@attacker.current_action.basic = 0
# 攻撃エリアをセット
set_attack_area(0)
# カーソル固定を解除
$game_player.not_update = false
# ステップ 6 ã¸ç§»è¡Œ
$game_system.tactics_step = 6
# ステップ 2 帰還フラグ
@back_step2 = true
# スã‚ル
when 2
# コマンドウィンドウ解放
dispose_command_window
# セレクト ã¸ç§»è¡Œ
@select = 2
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
# セレクトウィンドウを作æˆ
make_select_window(1, @attacker)
# アクションをè¨å®š
@attacker.current_action.kind = 1
# ステップ 2 帰還フラグ
@back_step2 = true
# アイテãƒ
when 3
# コマンドウィンドウ解放
dispose_command_window
# セレクト ã¸ç§»è¡Œ
@select = 3
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
# セレクトウィンドウを作æˆ
make_select_window(2)
# アクションをè¨å®š
@attacker.current_action.kind = 2
# ステップ 2 帰還フラグ
@back_step2 = true
end
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 3 : 移動先é¸æŠž)
#--------------------------------------------------------------------------
def update_phase1_step3
# カーソルä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼(イベント)å–å¾—
get_cursor_battler
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ or エãƒãƒŸãƒ¼ã‚’セット
set_battler_info
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C) and !$game_player.moving?
# カーソルãŒç§»å‹•ã‚¨ãƒªã‚¢å†…ã®å ´åˆ
if in_area?($game_player.x, $game_player.y)
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# カーソルを固定
$game_player.not_update = true
# エリアを解放
dispose_area
# ステップ 4 ã¸ç§»è¡Œ
$game_system.tactics_step = 4
# 座標を記憶
@pre_x = @active_battler.x
@pre_y = @active_battler.y
# 移動ルートå–å¾—
@route_list = @route[@position.index([$game_player.x, $game_player.y])]
else
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
end
end
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B) and !$game_player.moving?
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# エリアを解放
dispose_area
# カーソルä½ç½®ã‚’戻ã™
back_cursor
# カーソルを固定
$game_player.not_update = true
# ステップ 2 ã¸ç§»è¡Œ
$game_system.tactics_step = 2
# コマンドウィンドウを作æˆ
make_command_window
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 4 : 移動ä¸)
#--------------------------------------------------------------------------
def update_phase1_step4
# ステップカウントåˆæœŸåŒ–
if @step_count == nil
@step_count = 0
end
if !@active_battler.moving?
if @active_battler.x == $game_player.x and
@active_battler.y == $game_player.y and
# 移動完了ã§ã‚¹ãƒ†ãƒƒãƒ— 5 ã«ç§»è¡Œ
$game_system.tactics_step = 5
# é¸æŠžä¸ã‚¢ã‚¯ã‚¿ãƒ¼æ›´æ–°
@battler = @active_battler
back_cursor
# コマンドウィンドウを作æˆ
make_command_window
# カーソルを固定
$game_player.not_update = true
@step_count = nil
return
end
# カーソルä½ç½®ã¾ã§ç§»å‹•
action = @route_list[@step_count]
@step_count += 1
case action
when 2
@active_battler.move_down
when 4
@active_battler.move_left
when 6
@active_battler.move_right
when 8
@active_battler.move_up
end
end
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# å…ƒã®ä½ç½®ã«æˆ»ã™
@active_battler.moveto(@pre_x, @pre_y)
# カーソルä½ç½®ã‚’戻ã™
back_cursor
# 移動エリアをセット
set_movable_area(0)
# カーソル固定を解除
$game_player.not_update = false
# ステップ 3 ã¸ç§»è¡Œ
$game_system.tactics_step = 3
@step_count = nil
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 5 : 移動後コマンド)
#--------------------------------------------------------------------------
def update_phase1_step5
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B)
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# コマンドウィンドウ解放
dispose_command_window
# å…ƒã®ä½ç½®ã«æˆ»ã™
@active_battler.moveto(@pre_x, @pre_y)
# カーソルä½ç½®ã‚’戻ã™
back_cursor
# 移動エリアをセット
set_movable_area(0)
# カーソル固定を解除
$game_player.not_update = false
# ステップ 3 ã¸ç§»è¡Œ
$game_system.tactics_step = 3
end
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C)
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# コマンドã«ã‚ˆã£ã¦åˆ†å²
case @command_window.index
# 攻撃
when 0
# コマンドウィンドウ解放
dispose_command_window
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
# アクションをè¨å®š
@attacker.current_action.kind = 0
@attacker.current_action.basic = 0
# 攻撃エリアをセット
set_attack_area(0)
# カーソル固定を解除
$game_player.not_update = false
# ステップ 6 ã¸ç§»è¡Œ
$game_system.tactics_step = 6
# スã‚ル
when 1
# コマンドウィンドウ解放
dispose_command_window
# セレクト ã¸ç§»è¡Œ
@select = 1
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
# セレクトウィンドウを作æˆ
make_select_window(1, @attacker)
# アクションをè¨å®š
@attacker.current_action.kind = 1
# アイテãƒ
when 2
# コマンドウィンドウ解放
dispose_command_window
# セレクト ã¸ç§»è¡Œ
@select = 2
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
# セレクトウィンドウを作æˆ
make_select_window(2)
# アクションをè¨å®š
@attacker.current_action.kind = 2
# å¾…æ©Ÿ
when 3
# コマンドウィンドウ解放
dispose_command_window
# ステップ 10 ã¸ç§»è¡Œ
$game_system.tactics_step = 10
# 行動ãƒãƒˆãƒ©ãƒ¼è¨å®š
@active_battler = @battler
# 攻撃ãƒãƒˆãƒ©ãƒ¼å–å¾—
@attacker = $game_system.tactics_actors[@active_battler.id]
end
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (アクターフェーズ ステップ 6 : 対象é¸æŠž)
#--------------------------------------------------------------------------
def update_phase1_step6
# カーソルä½ç½®ã®ãƒãƒˆãƒ©ãƒ¼(イベント)å–å¾—
get_cursor_battler
# ヘルプウィンドウã«ã‚¢ã‚¯ã‚¿ãƒ¼ or エãƒãƒŸãƒ¼ã‚’セット
set_battler_info
# C ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::C) and !$game_player.moving?
# 発動å¯èƒ½ãªå ´åˆ
if possible_action?
@back_step2 = nil
# 決定 SE ã‚’æ¼”å¥
$game_system.se_play($data_system.decision_se)
# カーソルを固定
$game_player.not_update = true
# エリアを解放
dispose_area
# ステップ 7 ã¸ç§»è¡Œ
$game_system.tactics_step = 7
@select = nil
if @revival == nil
# ターゲットをå–å¾—
@targets = {}
for i in @can_attack
if $game_system.tactics_actors.keys.include?(i)
@targets[i] = $game_system.tactics_actors[i]
$game_map.events[i].turn_toward_event(@active_battler.id)
else
@targets[i] = $game_system.tactics_enemies[i]
$game_map.events[i].turn_toward_event(@active_battler.id)
end
end
@active_battler.turn_toward_position($game_player.x, $game_player.y)
# 戦闘ä¸èƒ½å›žå¾©ã®å ´åˆ
else
$game_map.events[@targets.keys[0]].moveto($game_player.x, $game_player.y)
@active_battler.turn_toward_position($game_player.x, $game_player.y)
$game_map.events[@targets.keys[0]].turn_toward_event(@active_battler.id)
end
@revival = nil
@can_attack = nil
# アクションçµæžœä½œæˆ
case @attacker.current_action.kind
when 0
make_basic_action_result
when 1
make_skill_action_result
when 2
make_item_action_result
end
else
# ブザー SE ã‚’æ¼”å¥
$game_system.se_play($data_system.buzzer_se)
end
end
# B ボタンãŒæŠ¼ã•ã‚ŒãŸå ´åˆ
if Input.trigger?(Input::B) and !$game_player.moving?
@targets = nil
@revival = nil
# ã‚ャンセル SE ã‚’æ¼”å¥
$game_system.se_play($data_system.cancel_se)
# エリアを解放
dispose_area
# カーソルä½ç½®ã‚’戻ã™
back_cursor
# カーソルを固定
$game_player.not_update = true
if @back_step2 != nil and @back_step2
# ステップ 2 ã¸ç§»è¡Œ
$game_system.tactics_step = 2
if @select != nil
case @attacker.current_action.kind
when 1
# セレクトウィンドウを作æˆ
make_select_window(1, @attacker, @skill)
@select = 2
when 2
# セレクトウィンドウを作æˆ
make_select_window(2, nil, @item)
@select = 3
end
else
@back_step2 = nil
# コマンドウィンドウを作æˆ
make_command_window(1)
end
else
# ステップ 5 ã¸ç§»è¡Œ
$game_system.tactics_step = 5
if @select != nil
case @attacker.current_action.kind
when 1
# セレクトウィンドウを作æˆ
make_select_window(1, @attacker, @skill)
@select = 1
when 2
# セレクトウィンドウを作æˆ
make_select_window(2, nil, @item)
@select = 2
end
else
# コマンドウィンドウを作æˆ
make_command_window
end
end
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (ステップ 7 共有 : 行動å´ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³)
#--------------------------------------------------------------------------
def update_step7
# 行動å´ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ (ID ㌠0 ã®å ´åˆã¯ç™½ãƒ•ãƒ©ãƒƒã‚·ãƒ¥)
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
# ステップ 8 ã«ç§»è¡Œ
$game_system.tactics_step = 8
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (ステップ 8 共有 : 対象å´ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³)
#--------------------------------------------------------------------------
def update_step8
all_targets_animation = false
# ターゲットãŒè¤‡æ•°å˜åœ¨ã™ã‚‹å ´åˆ
if @targets.size > 1
case @attacker.current_action.kind
when 0
if defined? @attacker.attack_range and @attacker.attack_range != nil
all_targets_animation = @attacker.attack_range[1][2]
end
when 1
skill = $data_skills[@attacker.current_action.skill_id]
all_targets_animation = skill.range[1][2]
when 2
item = $data_items[@attacker.current_action.item_id]
all_targets_animation = item.range[1][2]
end
end
if !all_targets_animation
# 最もカーソルã«è¿‘ã„ãƒãƒˆãƒ©ãƒ¼ã‚’å–å¾—
i = nearest_battler(@targets.keys)
# 対象å´ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³
$game_map.events[i].animation_id = @animation2_id
$game_map.events[i].animation_hit = (@targets[i].damage != "Miss")
else
# 対象å´ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³
for i in @targets.keys
$game_map.events[i].animation_id = @animation2_id
$game_map.events[i].animation_hit = (@targets[i].damage != "Miss")
end
end
# アニメーションã®é•·ã•ã«ã‹ã‹ã‚らãšã€æœ€ä½Ž 8 フレーム待ã¤
@wait_count = 8
# ステップ 9 ã«ç§»è¡Œ
$game_system.tactics_step = 9
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (ステップ 9 共有 : ダメージ表示)
#--------------------------------------------------------------------------
def update_step9
@help_window.visible = false
# ダメージ表示ラグ有りã®å ´åˆ
if ZTBS::DAMAGE_LAG
if @targets.keys.size == 0
# 最低 10 フレーム待ã¤
@wait_count = 10
# 消去対象をãƒã‚§ãƒƒã‚¯
set_erase_battler
# ステップ 10 ã«ç§»è¡Œ
$game_system.tactics_step = 10
return
end
if !@spriteset.effect?
# ダメージ表示
i = @targets.keys[0]
$game_map.events[i].damage = @targets[i].damage
$game_map.events[i].critical = @targets[i].critical
if $game_map.events[i].damage != nil
$game_map.events[i].damage_pop = true
end
# エãƒãƒŸãƒ¼ãŒæˆ¦é—˜ä¸èƒ½ã«ãªã£ãŸå ´åˆ
if @targets[i].is_a?(Game_Enemy) and @targets[i].dead?
# 経験値ãªã©ç²å¾—
get_exp_etc(@targets[i])
end
@targets.delete(i)
end
# ダメージ表示ラグ無ã—ã®å ´åˆ
else
# ダメージ表示
for i in @targets.keys
$game_map.events[i].damage = @targets[i].damage
$game_map.events[i].critical = @targets[i].critical
if $game_map.events[i].damage != nil
$game_map.events[i].damage_pop = true
end
# エãƒãƒŸãƒ¼ãŒæˆ¦é—˜ä¸èƒ½ã«ãªã£ãŸå ´åˆ
if @targets[i].is_a?(Game_Enemy) and @targets[i].dead?
# 経験値ãªã©ç²å¾—
get_exp_etc(@targets[i])
end
end
# 消去対象をãƒã‚§ãƒƒã‚¯
set_erase_battler
# 最低 10 フレーム待ã¤
@wait_count = 10
# ステップ 10 ã«ç§»è¡Œ
$game_system.tactics_step = 10
return
end
end
#--------------------------------------------------------------------------
# ◠フレーム更新 (ステップ 10 共有 : 行動終了)
#--------------------------------------------------------------------------
def update_step10
# スリップダメージ
if @attacker.hp > 0 and @attacker.slip_damage?
@attacker.slip_damage_effect
@active_battler.damage = @attacker.damage
@active_battler.damage_pop = true
end
# ステート自然解除
@attacker.remove_states_auto
# エãƒãƒŸãƒ¼ãŒæˆ¦é—˜ä¸èƒ½ã«ãªã£ãŸå ´åˆ
if @attacker.is_a?(Game_Enemy) and @attacker.dead?
# 経験値ãªã©ç²å¾—
get_exp_etc(@attacker)
end
# 消去対象をãƒã‚§ãƒƒã‚¯
set_erase_battler
# カーソルä½ç½®ã‚’戻ã™
back_cursor
refresh_battler_info
@active_battler.acted = true
# エãƒãƒŸãƒ¼ãƒ•ã‚§ãƒ¼ã‚ºã®å ´åˆã€ã‚¹ãƒ†ãƒƒãƒ— 0 ã¸
if $game_system.tactics_phase == 2
@wait_count = ZTBS::ENEMY_THINKING
if @attacker.dead?
@enemy_index -= 1
end
$game_system.tactics_step = 0
if @targets != nil
@targets.clear
end
return
end
# カーソル固定を解除
$game_player.not_update = false
# ステップ 1 ã«ç§»è¡Œ
$game_system.tactics_step = 1
# 行動者ã¨å¯¾è±¡ã‚’解放
@active_battler = nil
@attacker = nil
if @targets != nil
@targets.clear
end
end
end