end
end
class Scene_Battle < Scene_Base
#--------------------------------------------------------------------------
# スキル/アイテムの使用
#--------------------------------------------------------------------------
alias use_item_b_a_common use_item
def use_item
#--------------------------------------------------------------------------
# ● スキルアニメのメモ欄取得
#--------------------------------------------------------------------------
def skill_anime_memo(skill)
skill_note = []
skill_note2 = []
a = skill.note.scan(/<#{COUNTINUITY_ANIME_MEMO}[::](-?\d+(?:[ ]*,[ ]*-?\d+)*)>/)
a.flatten!
# 連続アニメ
unless a == [] and a.empty?
$1.scan(/-?\d+/).each { |num|
skill_note.push(num.to_i)}
@skill_continuity_anime = skill_note
else
@skill_continuity_anime = []
end
b = skill.note.scan(/<#{SKILL_USER_ANIME_MEMO}[::](-?\d+(?:[ ]*,[ ]*-?\d+)*)>/)
b.flatten!
# スキル使用者アニメ
unless b == [] and b.empty?
$1.scan(/-?\d+/).each { |num|
skill_note2.push(num.to_i)}
@skill_user_anime = skill_note2
else
@skill_user_anime = []
end
end
#--------------------------------------------------------------------------
# ● 戦闘行動の実行 : スキル
#--------------------------------------------------------------------------
alias ed_continuity_anime_execute_action execute_action
def execute_action
item = @subject.current_action.item
skill_anime_memo(item)
ed_continuity_anime_execute_action
end
#--------------------------------------------------------------------------
# ● スキル使用者アニメーションの表示
# targets : 対象者の配列
# animation_id : アニメーション ID (-1: 通常攻撃と同じ)
#--------------------------------------------------------------------------
def befor_skill_display_animation
unless @skill_user_anime == nil or @skill_user_anime == []
# スキル使用者アニメの場合
for anime in @skill_user_anime
if anime > 0
# targets はバトラーを格納する配列なので、一人の場合は二重にする。
battler = []
battler << @subject
# mirror は アクターなら反転無し。敵なら反転有り。
if $ed_rgss3["ed_battle_scene"]
if @subject.is_a?(Game_Enemy)
# 敵のバックアタック:右側に居る場合 ? 反転なし : 反転有り
mirror = @subject.back_attack? ? false : true
else
# 味方のバックアタック:左側に居る場合 ? 反転あり : 反転なし
mirror = @subject.back_attack? ? true : false
end
else
# 敵の場合は反転アニメ。
mirror = @subject.is_a?(Game_Enemy) ? true : false
end
show_normal_animation(battler, anime, mirror)
wait_for_animation
end
end
@skill_user_anime = []
end
end
#--------------------------------------------------------------------------
# ● アニメーションの表示
# targets : 対象者の配列
# animation_id : アニメーション ID (-1: 通常攻撃と同じ)
#--------------------------------------------------------------------------
alias ed_continuity_anime_show_animation show_animation
def show_animation(targets, animation_id)
# バトルレイアウト変更:extensionが導入されていないならここで処理。
befor_skill_display_animation unless $ed_rgss3["ed_battle_extension"]
unless @skill_continuity_anime == nil or @skill_continuity_anime == []
# 連続アニメの場合
ed_continuity_anime_show_animation(targets, animation_id)
for anime in @skill_continuity_anime
if anime < 0
show_attack_animation(targets)
else
ed_continuity_anime_show_animation(targets, anime)
end
end
@skill_continuity_anime = []
else
# 通常アニメの場合
ed_continuity_anime_show_animation(targets, animation_id)
end
end
end
请问如何解决? 点击展开/收起 #--------------------------------------------------------------------------
# ● 戦闘行動の処理
#--------------------------------------------------------------------------
def process_action
return if scene_changing?
if !@subject || !@subject.current_action
@subject = BattleManager.next_subject
end
return turn_end unless @subject
if @subject.current_action
@subject.current_action.prepare
if @subject.current_action.valid?
@status_window.open
execute_action
end
@subject.remove_current_action这里出问题
end
process_action_end unless @subject.current_action
end