Project1

标题: 如何制作一个吸血按造成的伤害比例吸取血量的技能或装备 [打印本页]

作者: 2498126422    时间: 2014-9-7 20:06
标题: 如何制作一个吸血按造成的伤害比例吸取血量的技能或装备
我想做一个技能,使用这个技能会吸血,但是又不是全部吸取,而是按一定比例吸取的技能,顺便求下像这样的吸取方法的装备的做法,类似于最终幻想三里面的吸血剑,最好不要脚本,但如果实在要用的话那也可以,谢谢了!
作者: 紫苍焰    时间: 2014-9-7 20:44
本帖最后由 紫苍焰 于 2014-9-8 08:28 编辑

……
实测成功。
做个技能1,公式写上v[变量ID]+=伤害公式。
然后再做个技能2,效果范围选使用者,伤害类型选体力值回复,公式填v[变量ID]*0.5←这是50%,调整系数想做百分之多少随便你……
然后做个公共事件,强制战斗指令,选择角色,选择刚才做的技能2,目标选前一个目标就可以。
接下来使用技能1的时候调用公共事件执行技能2,效果达成。
以上。
另外,技能2最好再闹个公共事件释放刚才那个变量,不然的话估计会无限叠加……
还有,技能2调整伤害类型可以做出很多效果……比如伤敌一千自损八百……
缺陷是,最后一个敌人被技能1干掉的话不会吸血……
并且,获得技能的角色必须在公共事件里添加……

范例你懂的.rar

1.42 MB, 下载次数: 152


作者: 紫苍焰    时间: 2014-9-8 10:18
本帖最后由 紫苍焰 于 2014-9-8 10:20 编辑

……
对了,楼主,我们一起愉快的交流心得如何……
我的QQ:283325880
以上。
作者: 三途亚梦    时间: 2014-9-8 11:00
本帖最后由 三途亚梦 于 2014-9-8 13:11 编辑

这个我举得直接用伤害公式就可以写出来……不过公式会写的很长不好管理,我建议还是参照2L的方式做。
如果你不纠结在战斗信息栏里一定要显示出回复血量的多少的信息的话,直接在公共事件里就可以把hp回复计算做完,不一定要第二个技能。

至于吸血装备,如果你已经理解并知道怎么用公共事件做吸血效果了。
你得在所有技能上都执行同一个公共事件,
用分歧条件判断攻击者是否携装备了“吸血剑”,如果是则吸血。

这是不用脚本的方法,工程量会比较大。
作者: taroxd    时间: 2014-9-8 12:50
https://rpg.blue/forum.php?mod=viewthread&tid=363287

善用搜索
作者: chd114    时间: 2014-9-8 12:59
最终幻想三里面的吸血剑的效果是什么囧这个百分比吸血是类似DOTA宙斯的静电场按当前生命百分比吸血还是死灵法师的光环最大生命百分比还是吸血法球的造成伤害的百分比···
作者: 才才不是新手!    时间: 2014-9-9 01:03
个人见解:
新建一个公共事件吸血,用if逐个可用角色判定是否拥有吸血装备,如果是,则恢复该角色XX点生命值。
然后在基础1号技能攻击里面添加额外的使用效果:公共事件吸血。
好像有点麻烦?
作者: 2498126422    时间: 2014-9-9 21:21
chd114 发表于 2014-9-8 12:59
最终幻想三里面的吸血剑的效果是什么囧这个百分比吸血是类似DOTA宙斯的静电场按当前生命百分比吸血还是死灵 ...

是按你对敌人造成的伤害的百分比,比如你是用吸血剑攻击敌人,然后造成了1024点伤害,然后通过吸血,按百分之十到二十的随机值同时恢复了你的100-200点Hp,就是这个意思。
作者: 2498126422    时间: 2014-9-10 17:33
taroxd 发表于 2014-9-8 12:50
https://rpg.blue/forum.php?mod=viewthread&tid=363287

善用搜索

不好意思,脚本看不太懂。。。。。
作者: taroxd    时间: 2014-9-10 17:42
本帖最后由 taroxd 于 2014-9-10 17:49 编辑
2498126422 发表于 2014-9-10 17:33
不好意思,脚本看不太懂。。。。。


可以在 Game_ActionResult#make_damage 中判断 user 的装备是否具有吸血效果,并对 @hp_drain 进行加算。

事实上我给你的那个链接中,脚本写得并不是很好。不过我现在没有环境,只能随便给段代码提供一下思路吧。一般来说是不可以使用的。

RUBY 代码复制
  1. RPG::BaseItem.note_f :drain_rate
  2.  
  3. class Game_Battler
  4.   def drain_rate
  5.     feature_objects.sum(&:drain_rate)
  6.   end
  7.  
  8.   def_after :make_damage_value do |user, _|
  9.     @result.make_extra_drain(user.drain_rate)
  10.   end
  11. end
  12.  
  13. class Game_ActionResult
  14.   def make_extra_drain(rate)
  15.     @hp_drain += (@hp_damage * rate).to_i
  16.   end
  17. end

作者: chd114    时间: 2014-9-12 17:02
2498126422 发表于 2014-9-10 00:33
不好意思,脚本看不太懂。。。。。

把你看不懂的回复我好了···帮你翻译下···
作者: taroxd    时间: 2014-9-13 08:14
帮你写了一个:https://rpg.blue/thread-371375-1-1.html

不过注意一下这里的公告哦~ https://rpg.blue/forum.php?mod=group&fid=539
作者: 2498126422    时间: 2014-11-11 10:07
谢谢大家的帮助了啦~




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