喜闻乐见的状态回血回蓝脚本
今天一个朋友叫我去写个用状态回血的脚本 本人比较懒所以直接去找了找了找发现好像还真没有这样的脚本……只能动手打了
以下是脚本
RUBY 代码
#喜闻乐见的状态回血回蓝脚本
#常数写"xx",百分比写"xx%"
#↓具体方法请藏考帮助文档-脚本入门-基础篇-哈希表
$自动回蓝状态 = {
17 => "50",18 => "50%"
}
$自动回血状态 = {
19 => "50",20 => "50%"
}
class Game_Battler
#--------------------------------------------------------------------------
# ● 判断状态 [自动回血]
#--------------------------------------------------------------------------
def 回血?
for i in@states
if $自动回血状态.include?(i)
@i = i
returntrue
end
end
returnfalse
end
#--------------------------------------------------------------------------
# ● 判断状态 [自动回蓝]
#--------------------------------------------------------------------------
def 回蓝?
for i in@states
if $自动回蓝状态.include?(i)
@i = i
returntrue
end
end
returnfalse
end
#--------------------------------------------------------------------------
# ● 应用回血
#--------------------------------------------------------------------------
def 自动回血
# 设置伤害
if $自动回血状态[@i].split(/%/)
self.damage = self.maxhp * ($自动回血状态[@i].split(/%/).to_i / 100)
else
self.damage = $自动回血状态[@i].split(/%/).to_i
end
# 分散
ifself.damage.abs > 0
amp = .max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# SP 的伤害减法运算
self.hp += self.damage
# 过程结束
returntrue
end
#--------------------------------------------------------------------------
# ● 应用回蓝
#--------------------------------------------------------------------------
def 自动回蓝
# 设置伤害
if $自动回蓝状态[@i].split(/%/)
self.damage = self.maxsp * ($自动回蓝状态[@i].split(/%/).to_i / 100)
else
self.damage = $自动回蓝状态[@i].split(/%/).to_i
end
# 分散
ifself.damage.abs > 0
amp = .max
self.damage += rand(amp+1) + rand(amp+1) - amp
end
# SP 的伤害减法运算
self.sp += self.damage
# 过程结束
returntrue
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 > 0and@active_battler.slip_damage?
@active_battler.slip_damage_effect
@active_battler.damage_pop = true
end
if@active_battler.hp > 0and@active_battler.回蓝?
@active_battler.自动回蓝
@active_battler.damage_pop = true
end
if@active_battler.hp > 0and@active_battler.回血?
@active_battler.自动回血
@active_battler.damage_pop = true
end
# 自然解除状态
@active_battler.remove_states_auto
# 刷新状态窗口
@status_window.refresh
# 移至步骤 2
@phase4_step = 2
end
end
测试用的范例实在是不堪入目所以不提供
就是这样喜闻乐见……
欢迎吐槽……
[新人第一帖求糖~~]
本帖来自P1论坛作者1095884734,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=367498若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]