设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3213|回复: 3
打印 上一主题 下一主题

[已经解决] 如何做一个使攻击能吸血的被动技能?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1578
在线时间
265 小时
注册时间
2019-1-18
帖子
202
跳转到指定楼层
1
发表于 2019-1-24 17:18:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
比如我学了这个被动技能我的所有攻击都能吸血,吸血比例为造成伤害的10%

Lv5.捕梦者

梦石
10
星屑
39592
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

2
发表于 2019-1-24 18:30:19 | 只看该作者
本帖最后由 KB.Driver 于 2019-1-24 18:43 编辑

RUBY 代码复制
  1. module CLD99
  2.   module Dracula
  3.  
  4.     DRAIN_SKILL_ID = 23
  5.     # 领悟了此ID技能后,所有攻击带吸血
  6.  
  7.     DRAIN_RATE = 0.1
  8.     # 因上面的情况允许吸血时的比例
  9.  
  10.   end
  11. end
  12.  
  13. class Game_Battler
  14.   #--------------------------------------------------------------------------
  15.   # ● [追加]是否所有攻击带吸血
  16.   #--------------------------------------------------------------------------
  17.   def dracula?
  18.     @skills.include?(CLD99::Dracula::DRAIN_SKILL_ID)
  19.   end
  20.   #--------------------------------------------------------------------------
  21.   # ● [别名修改]计算伤害
  22.   #--------------------------------------------------------------------------
  23.   alias :make_damage_value_for_dracula :make_damage_value
  24.   def make_damage_value(user, item)
  25.     make_damage_value_for_dracula(user, item)
  26.     @result.make_dracula(item) if user.actor? && user.dracula?
  27.   end
  28. end
  29.  
  30. class Game_ActionResult
  31.   attr_reader :dracula
  32.   #--------------------------------------------------------------------------
  33.   # ● [追加]计算吸血
  34.   #--------------------------------------------------------------------------
  35.   def make_dracula(item)
  36.     return if item.damage.drain? # 自带吸血的技能不参与
  37.     return if @hp_damage < 0     # 回复类技能不参与
  38.     @hp_drain = (@hp_damage * CLD99::Dracula::DRAIN_RATE).to_i
  39.     @dracula = true
  40.   end  
  41.   #--------------------------------------------------------------------------
  42.   # ● [别名修改]获取 HP 伤害的文字
  43.   #--------------------------------------------------------------------------
  44.   alias hp_damage_text_for_dracula hp_damage_text
  45.   def hp_damage_text
  46.     if @dracula
  47.       fmt = "%s造成了%s伤害,吸收了%s%s"
  48.       return sprintf(fmt, @battler.name, @hp_damage, @hp_drain, Vocab.hp)
  49.     end
  50.     hp_damage_text_for_dracula
  51.   end
  52. end
  53.  
  54. class Window_BattleLog
  55.   #--------------------------------------------------------------------------
  56.   # ● 显示 HP 伤害
  57.   #--------------------------------------------------------------------------
  58.   alias :display_hp_damage_for_dracula :display_hp_damage
  59.   def display_hp_damage(target, item)
  60.     target.perform_damage_effect if target.result.dracula
  61.     display_hp_damage_for_dracula(target, item)
  62.   end
  63. end


新建工程运行通过。

点评

KB哥 领悟23号技能 里面要设置吸血吗? 还是不要设置也行!  发表于 2019-4-2 16:25

评分

参与人数 2星屑 +30 +1 收起 理由
VIPArcher + 30 认可答案
RMVXA + 1 精品文章

查看全部评分

用头画头像,用脚写脚本
回复 支持 1 反对 0

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1578
在线时间
265 小时
注册时间
2019-1-18
帖子
202
3
 楼主| 发表于 2019-1-24 18:40:26 | 只看该作者
KB.Driver 发表于 2019-1-24 18:30
module CLD99
  module Dracula
   

哇,谢谢大佬!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-21 19:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表