#喜闻乐见的状态回血回蓝脚本
#常数写"xx",百分比写"xx%"
#↓具体方法请藏考帮助文档-脚本入门-基础篇-哈希表
$自动回蓝状态 = {
17 => "50",18 => "50%"
}
$自动回血状态 = {
19 => "50",20 => "50%"
}
class Game_Battler
#--------------------------------------------------------------------------
# ● 判断状态 [自动回血]
#--------------------------------------------------------------------------
def 回血?
for i in @states
if $自动回血状态.include?(i)
@i = i
return true
end
end
return false
end
#--------------------------------------------------------------------------
# ● 判断状态 [自动回蓝]
#--------------------------------------------------------------------------
def 回蓝?
for i in @states
if $自动回蓝状态.include?(i)
@i = i
return true
end
end
return false
end
#--------------------------------------------------------------------------
# ● 应用回血
#--------------------------------------------------------------------------
def 自动回血
# 设置伤害
if $自动回血状态[@i].split(/%/)[1]
self.damage = self.maxhp * ($自动回血状态[@i].split(/%/)[0].to_i / 100)
else
self.damage = $自动回血状态[@i].split(/%/)[0].to_i
end
# 分散
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# SP 的伤害减法运算
self.hp += self.damage
# 过程结束
return true
end
#--------------------------------------------------------------------------
# ● 应用回蓝
#--------------------------------------------------------------------------
def 自动回蓝
# 设置伤害
if $自动回蓝状态[@i].split(/%/)[1]
self.damage = self.maxsp * ($自动回蓝状态[@i].split(/%/)[0].to_i / 100)
else
self.damage = $自动回蓝状态[@i].split(/%/)[0].to_i
end
# 分散
if self.damage.abs > 0
amp = [self.damage.abs * 15 / 100, 1].max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# SP 的伤害减法运算
self.sp += self.damage
# 过程结束
return true
end
end
class Scene_Battle
#--------------------------------------------------------------------------
# ● 刷新画面 (主回合步骤 1 : 准备行动)
#--------------------------------------------------------------------------
def update_phase4_step1
# 隐藏帮助窗口
@help_window.visible = false
# 判定胜败
if judge
# 胜利或者失败的情况下 : 过程结束
return
end
# 强制行动的战斗者不存在的情况下
if $game_temp.forcing_battler == nil
# 设置战斗事件
setup_battle_event
# 执行战斗事件中的情况下
if $game_system.battle_interpreter.running?
return
end
end
# 强制行动的战斗者存在的情况下
if $game_temp.forcing_battler != nil
# 在头部添加后移动
@action_battlers.delete($game_temp.forcing_battler)
@action_battlers.unshift($game_temp.forcing_battler)
end
# 未行动的战斗者不存在的情况下 (全员已经行动)
if @action_battlers.size == 0
# 开始同伴命令回合
start_phase2
return
end
# 初始化动画 ID 和公共事件 ID
@animation1_id = 0
@animation2_id = 0
@common_event_id = 0
# 未行动的战斗者移动到序列的头部
@active_battler = @action_battlers.shift
# 如果已经在战斗之外的情况下
if @active_battler.index == nil
return
end
# 连续伤害
if @active_battler.hp > 0 and @active_battler.slip_damage?
@active_battler.slip_damage_effect
@active_battler.damage_pop = true
end
if @active_battler.hp > 0 and @active_battler.回蓝?
@active_battler.自动回蓝
@active_battler.damage_pop = true
end
if @active_battler.hp > 0 and @active_battler.回血?
@active_battler.自动回血
@active_battler.damage_pop = true
end
# 自然解除状态
@active_battler.remove_states_auto
# 刷新状态窗口
@status_window.refresh
# 移至步骤 2
@phase4_step = 2
end
end