查看: 4023|回复: 9

[已经解决] 怎么设置吸血

[复制链接]
梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
回帖
73
发表于 2019-10-19 12:08:11 | 显示全部楼层 |阅读模式

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

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

×
获得状态后攻击敌人可以恢复1/5的生命值,这个可以实现吗
梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-10-19 16:58:05 | 显示全部楼层
[pre lang="ruby"]module CLD99
  module Dracula

    DRAIN_STATE_ID = 23
    # 获得此ID状态后,所有攻击带吸血

    DRAIN_RATE = 0.1
    # 因上面的情况允许吸血时的比例

  end
end

class Game_Battler
  #--------------------------------------------------------------------------
  # ● [追加]是否所有攻击带吸血
  #--------------------------------------------------------------------------
  def dracula?
    state?(CLD99::Dracula::DRAIN_STATE_ID)
  end
  #--------------------------------------------------------------------------
  # ● [别名修改]计算伤害
  #--------------------------------------------------------------------------
  alias :make_damage_value_for_dracula :make_damage_value
  def make_damage_value(user, item)
    make_damage_value_for_dracula(user, item)
    @result.make_dracula(item) if user.actor? && user.dracula?
  end
end

class Game_ActionResult
  attr_reader :dracula
  #--------------------------------------------------------------------------
  # ● [追加]计算吸血
  #--------------------------------------------------------------------------
  def make_dracula(item)
    return if item.damage.drain? # 自带吸血的技能不参与
    return if @hp_damage < 0     # 回复类技能不参与
    @hp_drain = (@hp_damage * CLD99::Dracula::DRAIN_RATE).to_i
    @dracula = true
  end  
  #--------------------------------------------------------------------------
  # ● [别名修改]获取 HP 伤害的文字
  #--------------------------------------------------------------------------
  alias hp_damage_text_for_dracula hp_damage_text
  def hp_damage_text
    if @dracula
      fmt = "%s造成了%s伤害,吸收了%s%s"
      return sprintf(fmt, @battler.name, @hp_damage, @hp_drain, Vocab.hp)
    end
    hp_damage_text_for_dracula
  end
end

class Window_BattleLog
  #--------------------------------------------------------------------------
  # ● 显示 HP 伤害
  #--------------------------------------------------------------------------
  alias :display_hp_damage_for_dracula :display_hp_damage
  def display_hp_damage(target, item)
    target.perform_damage_effect if target.result.dracula
    display_hp_damage_for_dracula(target, item)
  end
end
[/pre]

[已经解决] 如何做一个使攻击能吸血的被动技能?
拿以前的被动技能版改的状态版,试试看看能不能用吧

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 认可答案

查看全部评分

用头画头像,用脚写脚本
回复 1 0

使用道具 举报

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
回帖
73
 楼主| 发表于 2019-10-19 21:06:44 | 显示全部楼层
KB.Driver 发表于 2019-10-19 16:58
module CLD99
  module Dracula

谢谢咯
回复

使用道具 举报

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
回帖
73
 楼主| 发表于 2019-10-19 21:28:32 | 显示全部楼层
KB.Driver 发表于 2019-10-19 16:58
module CLD99
  module Dracula

等等,,貌似不管用
回复

使用道具 举报

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
回帖
73
 楼主| 发表于 2019-10-19 21:29:52 | 显示全部楼层
是不是。。。这个脚本放错位置了么。。我放在了插件脚本下面
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-10-19 22:09:53 | 显示全部楼层
小姐姐一个 发表于 2019-10-19 21:29
是不是。。。这个脚本放错位置了么。。我放在了插件脚本下面

我用新建工程测试了,没有问题。

脚本放在
▼ 插件脚本
与
(请在此添加)
之间

不要忘记填写吸血状态的编号DRAIN_STATE_ID
改成你需要的数值

评分

参与人数 1赞 +1 收起 理由
小姐姐一个 + 1 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
回帖
73
 楼主| 发表于 2019-10-19 22:50:23 | 显示全部楼层
KB.Driver 发表于 2019-10-19 22:09
我用新建工程测试了,没有问题。

脚本放在

可以实现多个状态吗
回复

使用道具 举报

梦石
0
星屑
1249
在线时间
69 小时
注册时间
2019-2-12
回帖
73
 楼主| 发表于 2019-10-19 23:02:57 | 显示全部楼层
KB.Driver 发表于 2019-10-19 16:58
module CLD99
  module Dracula

为什么我的伤害为50,但吸血只5,DRAIN_RATE改也没有用
回复

使用道具 举报

梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2019-10-20 09:39:31 | 显示全部楼层
小姐姐一个 发表于 2019-10-19 23:02
为什么我的伤害为50,但吸血只5,DRAIN_RATE改也没有用

我自己测试没有任何问题

你实在搞不定再考虑用我测试的工程
Project1.zip (1.43 MB, 下载次数: 14, 售价: 5 星屑)
用头画头像,用脚写脚本
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部