【新手】真正的吸血技能特效脚本
吸血脚本想必各位dalao们已经是随处可见的了,不过我目前在论坛上搜索到的吸血脚本,都是类似@active_battler.damage = -(target.damage)复制代码
之类,即“回复使用者技能伤害的HP”,但是真正的吸血不应该是“目标始末HP之差”么。。。简单来讲,敌人有10点HP,技能伤害有30点,那么应该是回复使用者10点HP而非30点。然后我就想了想,用了个全局变量写了写。。。
在Game_Battler 3的 #HP 的伤害减法运算 部分,改为
# HP 的伤害减法运算 last_hp = self.hp self.hp -= self.damage #===吸血用,< 0=== $su_delta = last_hp - self.hp #============== effective |= self.hp != last_hp复制代码
然后在 Scene_Battle 4 的 刷新画面 (主回合步骤 5 : 显示伤害)部分,改为
#--------------------------------------------------------------------------# ● 刷新画面 (主回合步骤 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 #===================吸血特效============================ if .include?(@active_battler.current_action.skill_id) and target.damage != "Miss" and target.damage > 0 @active_battler.animation_id = 15 @active_battler.damage = - $su_delta / 2 @active_battler.damage_pop = true @active_battler.hp += $su_delta / 2 @status_window.refresh end end end # 移至步骤 6 @phase4_step = 6end复制代码
这部分各大吸血脚本都有~
这部分为技能ID,并且考虑了MISS的情况;之所以判断 target.damage > 0 这一点是考虑到属性有效度为 E 或 F 的情况~
有什么遗漏的还请指出~
新手第一次发布,瑟瑟发抖。。。如果有更好的方法欢迎提出~
本帖来自P1论坛作者哆啦溯,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址:https://rpg.blue/forum.php?mod=viewthread&tid=398206若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。
页:
[1]