Project1

标题: 【增加Miss、非完全吸血】【修改向】战斗特效系列教程① [打印本页]

作者: 羁绊的守望者    时间: 2014-10-21 19:05
标题: 【增加Miss、非完全吸血】【修改向】战斗特效系列教程①
本帖最后由 羁绊的守望者 于 2014-10-23 21:14 编辑

战斗特效系列教程 ①

大家好,今天这篇修改向的教程就要开始的,渣排版望见谅。
首先要告诉大家,这篇教程讲的是“吸血”这一很常见的战斗特效,需要一些脚本基础,但是没有脚本基础的人照猫画虎也能做出效果来。
首先当然是打开我们的RMXP,我们想让阿尔西斯的技能十字斩拥有吸血这一特效,十字斩默认是57号。
接下来请打开脚本编辑器,直接找到Scene_Battle 4的这一段:

不难知道,这一段是显示伤害的,但是增减HP却不是在这里。
通过阅读脚本,我们得到的如下结论:
target是当前显示伤害的角色。
active_battler是行动的角色。
于是我们就可以加上一个判断:
if @active_battler.current_action.skill_id == 57
end
这就是判断是否为57号技能。
然后需要显示吸血方的动画,我们把这行脚本放到显示伤害之前去,也就是在def update_phase4_step5之后。
@active_battler.animation_id = 15
当然也不要忘了加上判断。
然后是在显示伤害那里加上加血的语句。
if @active_battler.current_action.skill_id == 57
  @active_battler.damage = -(target.damage)
  @active_battler.danage_pop = true
  @active_battler.hp += target.damage
  @status_window.refresh # 刷新状态窗口
end
于是修改好的这段脚本应该是:
  1.   #--------------------------------------------------------------------------
  2.   # ● 刷新画面 (主回合步骤 5 : 显示伤害)
  3.   #--------------------------------------------------------------------------
  4.   def update_phase4_step5
  5.     # 播放动画
  6.     if @active_battler.current_action.skill_id == 57
  7.       @active_battler.animation_id = 15
  8.     end  
  9.     # 隐藏帮助窗口
  10.     @help_window.visible = false
  11.     # 刷新状态窗口
  12.     @status_window.refresh
  13.     # 显示伤害
  14.     for target in @target_battlers
  15.       if target.damage != nil
  16.         target.damage_pop = true
  17.         if @active_battler.current_action.skill_id == 57
  18.           @active_battler.damage = -(target.damage)
  19.           @active_battler.damage_pop = true
  20.           @active_battler.hp += target.damage
  21.           @status_window.refresh
  22.         end  
  23.       end
  24.     end
  25.     # 移至步骤 6
  26.     @phase4_step = 6
  27.   end
复制代码
大家有没有成功呢?
那么就说到这里,再会!


2014.10.23 更新 Miss 内容
许多人都发现了,本文没有提到Miss的处理。
其实这是非常简单的,这里给一些提示,不放出代码了。
@target.damage 是伤害的字符,可以直接判断 == 'Miss'
所以只要在伤害处理时判定一下就好了。
而对于动画的显示,可以在一开始for循环,也可以直接拿到下面的处理伤害的循环里。


2014.10.23 更新非完全吸血内容
虽说我是想让大家举一反三来着,但还是提一下吧。
吸收50%伤害就是伤害值*0.5,加血量同理。
  

作者: 芯☆淡茹水    时间: 2014-10-21 20:02
本帖最后由 芯☆淡茹水 于 2014-10-21 20:03 编辑

思路是酱紫,但是还应该考虑全面一点。
比如最关键的:如果对象方的伤害是“Miss!”呢?! ; 如果对象方的伤害是负数呢?!
作者: yang1zhi    时间: 2014-10-21 21:19
我按照你的方法设置了,结果什么都没发生
作者: 怪蜀黍    时间: 2014-10-22 15:16
由于直接指定十字斩技能所以负数大概不需要考虑,Miss倒是确实没想到

最好增加对负数伤害的处理,大众化的技术不能局限在十字斩这一个技能上~
MISS亦是应该考虑就不多说喵
吸血一般都不是100%的,按百分比吸血可以考虑加上喵~
作者: RyanBern    时间: 2014-10-22 18:31
其实可以把吸血效果放在Game_Batter3的skill_effect里面,然后在Scene_Battle里面只执行damage_pop功能。虽然写的内容分开了但是还是让结构更清晰了。
插一句,R考场第二期有个题目就是这个,LZ该不会是给答卷的考生一个助攻吧?
作者: 羁绊的守望者    时间: 2014-10-23 19:19
更新Miss 内容 自顶。
作者: chd114    时间: 2014-10-23 22:24
XPVX感觉挺实用···不过VA的话···技能可以设定吸收型···那么这个吸血是要还是不要呢?!(其实这是我个人在用VA的时候纠结的问题···你可以无视掉···)
作者: 小传子    时间: 2014-11-6 02:56
Game_Batter3 大法才是真的好
作者: chd114    时间: 2014-11-6 22:10
小传子 发表于 2014-11-5 09:56
Game_Batter3 大法才是真的好

如果只要一个吸血技能的话Scene_Battle 4够了(囧)其实我想吐槽的是···半个月前的教程现在才有第五个管理员看到···
作者: sawcius    时间: 2015-7-10 21:48
敢问lz是牡丹江的?如果是那就是老乡了。。你这个性签名。。
作者: 哆啦溯    时间: 2015-10-6 18:02
好东西,不过我担心兼容的问题...另外,彩虹神剑里会有回血显示吗
作者: 天地有正气    时间: 2015-10-6 20:51
哆啦溯 发表于 2015-10-6 18:02
好东西,不过我担心兼容的问题...另外,彩虹神剑里会有回血显示吗

替楼主回答:你说的彩虹神剑如果是那个伤害值美化的话应该会显示的,因为回血的原理是负值伤害。




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1