def update_phase4_step3
####普通攻击的场合############################################################
if @active_battler.current_action.basic == 0 and
@active_battler.current_action.kind == 0
#开始执行移动
if not @active_battler.element_rate(UNMOVE)>100# 如果属性“不移动”不大于100
@active_battler.startactive = "移动"
@oldxy = [@active_battler.screen_x,@active_battler.screen_y]
ox,oy = @active_battler.screen_x,@active_battler.screen_y
if @active_battler.element_rate(HOMOVE)>100# 如果属性“半距离”大于100
@_move_duration = Move_Duration/2
while @_move_duration > 0
Graphics.update
Input.update
@spriteset.update
if @target_battlers[0].is_a?(Game_Actor)
tag = [@target_battlers[0].screen_x-@target_battlers[0].width-(@target_battlers[0].screen_x-ox).abs/2.abs,@target_battlers[0].screen_y+1]
else
tag = [(@target_battlers[0].screen_x+@target_battlers[0].width/1.5)+(@target_battlers[0].screen_x-ox).abs/2,@target_battlers[0].screen_y+2]
end
move(@active_battler, tag, ox, oy)
@_move_duration -= 1
end
else
@_move_duration = Move_Duration
while @_move_duration > 0
Graphics.update
Input.update
@spriteset.update
if @target_battlers[0].is_a?(Game_Actor)
tag = [@target_battlers[0].screen_x-@target_battlers[0].width/2,@target_battlers[0].screen_y+1]
else
tag = [@target_battlers[0].screen_x+@target_battlers[0].width/1.5,@target_battlers[0].screen_y+2]
end
move(@active_battler, tag, ox, oy)
@_move_duration -= 1
end
end
end
####普通攻击的场合############################################################
elsif @active_battler.current_action.kind == 1
####使用特技的场合############################################################
if not @skill.element_set.include?(UNMOVE)# 如果技能不包含“不移动属性”
@active_battler.startactive = "移动"
@oldxy = [@active_battler.screen_x,@active_battler.screen_y]
ox,oy = @active_battler.screen_x,@active_battler.screen_y
if @skill.element_set.include?(HOMOVE)#如果技能不包含“半距离”属性
@_move_duration = Move_Duration/2
while @_move_duration > 0
Graphics.update
Input.update
@spriteset.update
if @target_battlers[0].is_a?(Game_Actor)
tag = [@target_battlers[0].screen_x-@target_battlers[0].width-(@target_battlers[0].screen_x-ox).abs/2.abs,@target_battlers[0].screen_y+1]
else
tag = [(@target_battlers[0].screen_x+@target_battlers[0].width/1.5)+(@target_battlers[0].screen_x-ox).abs/2,@target_battlers[0].screen_y+2]
end
move(@active_battler, tag, ox, oy)
@_move_duration -= 1
end
else
@_move_duration = Move_Duration
while @_move_duration > 0
Graphics.update
Input.update
@spriteset.update
if @target_battlers[0].is_a?(Game_Actor)
tag = [@target_battlers[0].screen_x-@target_battlers[0].width,@target_battlers[0].screen_y+1]
else
tag = [@target_battlers[0].screen_x+@target_battlers[0].width/1.5,@target_battlers[0].screen_y+2]
end
move(@active_battler, tag, ox, oy)
@_move_duration -= 1
end
end
end
#####使用特技的场合##############################################################
end
if @active_battler.startactive != "防御"
@active_battler.startactive = "待机"
end
# 行动方动画 (ID 为 0 的情况下是白色闪烁)
if @animation1_id == 0
@active_battler.white_flash = true
else
@active_battler.animation_id = @animation1_id
@active_battler.animation_hit = true
end
for target in @target_battlers
if target.guarding? and target.damage.is_a?(Numeric)
target.startactive = "防御" if target.damage > 0
end
target.animation_id = @animation2_id
target.animation_hit = (target.damage != "Miss")
end
# 移至步骤 4
@phase4_step = 4
end
##############################################################################
def update_phase4_step4
###########################万兽熊最高########################################
# 对像方动画
for target in @target_battlers
if target.damage != nil
target.damage_pop = true
end
end
# 限制动画长度、最低 8 帧
# @wait_count = 8
##############################################################################
# 移至步骤 5
@phase4_step = 5
end
####################万兽熊最高############################
def update_phase4_step5
# 隐藏帮助窗口
@help_window.visible = false
if @active_battler.current_action.basic == 0 and
@active_battler.current_action.kind == 0
####普通攻击的场合############################################################
#执行返回
if not @active_battler.element_rate(UNMOVE)>100# 如果属性“不移动”不大于100
@active_battler.startactive = "返回"
if @active_battler.element_rate(HOMOVE)>100# 如果属性“半距离”大于100
@_move_duration = Move_Duration/2
else
@_move_duration = Move_Duration
end
ox,oy = @active_battler.screen_x - @active_battler.movex,\
@active_battler.screen_y - @active_battler.movey
while @_move_duration > 0
Graphics.update
Input.update
@spriteset.update
move(@active_battler, @oldxy, ox, oy, true)
@_move_duration -= 1
end
end
####普通攻击的场合############################################################
elsif @active_battler.current_action.kind == 1
if not @skill.element_set.include?(UNMOVE)#如果技能不包含“不移动”属性
@active_battler.startactive = "返回"
if @skill.element_set.include?(HOMOVE)#如果技能包含“半距离”属性
@_move_duration = Move_Duration/2
else
@_move_duration = Move_Duration
end
ox,oy = @active_battler.screen_x - @active_battler.movex,\
@active_battler.screen_y - @active_battler.movey
while @_move_duration > 0
Graphics.update
Input.update
@spriteset.update
move(@active_battler, @oldxy, ox, oy, true)
@_move_duration -= 1
end
end
####使用特技的场合############################################################
end
if @active_battler.startactive != "防御"
@active_battler.startactive = "待机"
end
# 刷新状态窗口
@status_window.refresh
# 显示伤害
for target in @target_battlers
target.startactive = "待机"
if target.damage != nil
target.damage_pop = true
end
end
# 移至步骤 6
@phase4_step = 6
end
def update_phase4_step6
# 清除强制行动对像的战斗者
$game_temp.forcing_battler = nil
@active_battler.movex = 0
@active_battler.movey = 0
@active_battler.startactive = "待机" if @active_battler.startactive != "死亡"
# 公共事件 ID 有效的情况下
if @common_event_id > 0
# 设置事件
common_event = $data_common_events[@common_event_id]
$game_system.battle_interpreter.setup(common_event.list, 0)
end
# 移至步骤 1
@phase4_step = 1
end
end