#==============================================================================
# ■ P叔的连续攻击系统[只适用于RMXP] 作者:protosssonny
#------------------------------------------------------------------------------
# 说明:此连续攻击系统不但可以给武器设计连击属性,而且可以给敌人设计连击属性。
#------------------------------------------------------------------------------
# 转载请保留脚本来源:[url]www.66RPG.com[/url]
#==============================================================================
module P叔
# 这里设定连续攻击武器,只要勾选此属性的武器都将连续攻击,只要此属性有效度
# 为“F”的敌人也会连续攻击。默认连击属性为ID等于17的属性。
ATEID = 17
end
#==============================================================================
# ■ Scene_Battle (分割定义 4)
#------------------------------------------------------------------------------
# 处理战斗画面的类。
#==============================================================================
class Scene_Battle
attr_accessor :twice_attack # 连击标志
#--------------------------------------------------------------------------
# ● 刷新画面 (主回合)
#--------------------------------------------------------------------------
def update_phase4
case @phase4_step
when 1
update_phase4_step1
if @active_battler
judge_twice_attack
else
@twice_attack = false
end
when 2
update_phase4_step2
when 3
update_phase4_step3
when 4
update_phase4_step4
when 5
update_phase4_step5
when 6
update_phase4_step6
end
end
#--------------------------------------------------------------------------
# ● 判断连续攻击
#--------------------------------------------------------------------------
def judge_twice_attack
if @active_battler.current_action.kind == 0
if @active_battler.is_a?(Game_Enemy)
if $data_enemies[@active_battler.id].element_ranks[P叔::ATEID] == 6
@twice_attack = true
end
end
if @active_battler.is_a?(Game_Actor)
if $data_weapons[@active_battler.weapon_id].element_set.include?(P叔::ATEID)
@twice_attack = true
end
end
end
end
#--------------------------------------------------------------------------
# ● 刷新画面 (主回合步骤 5 : 显示伤害)
#--------------------------------------------------------------------------
def update_phase4_step5
# 隐藏帮助窗口
@help_window.visible = false
# 刷新状态窗口
@status_window.refresh
# 显示伤害
for target in @target_battlers
if target.damage != nil
target.damage_pop = true
end
end
if judge
# 胜利或者失败的情况下 : 过程结束
return
end
if @twice_attack
# 移至步骤 2
@phase4_step = 2
@twice_attack = false
else
# 移至步骤 6
@phase4_step = 6
end
end
end
#==============================================================================
# ■ Game_Enemy
#------------------------------------------------------------------------------
# 处理敌人的类。本类在 Game_Troop 类 ($game_troop) 的
# 内部使用。
#==============================================================================
class Game_Enemy < Game_Battler
#--------------------------------------------------------------------------
# ● 获取属性修正值
# element_id : 属性 ID
#--------------------------------------------------------------------------
def element_rate(element_id)
# 获取对应属性有效度的数值
table = [0,200,150,100,50,0,-100]
result = table[$data_enemies[@enemy_id].element_ranks[element_id]]
result = 100 if element_id == P叔::ATEID
# 状态能防御本属性的情况下效果减半
for i in @states
if $data_states[i].guard_element_set.include?(element_id)
result /= 2
end
end
# 过程结束
return result
end
end