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

Project1

 找回密码
 注册会员
搜索
查看: 3421|回复: 4

[已经解决] 【已解决】关于脚本修改

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1412
在线时间
245 小时
注册时间
2019-1-18
帖子
190
发表于 2019-7-31 17:00:51 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 造小梦 于 2019-7-31 19:28 编辑

我有一个用来做技能吸血的脚本,当角色学会某个技能时,他的所有攻击都会带有一定比例的吸血,每次攻击完就会显示XXX造成了XXX点伤害,吸收了XXX点HP,但是学了吸血技能后所有人物包括敌人攻击时都会显示XXX造成了XXX点伤害吸收了0点HP,我只有学会了吸血技能的角色攻击才显示这串字符,这该怎么改脚本?求大佬帮助。
脚本如下:
RUBY 代码复制
  1. module CLD99
  2.   module Dracula
  3.  
  4.     DRAIN_SKILL_ID = [68]
  5.     # 领悟了此ID技能后,所有攻击带吸血
  6.  
  7.     DRAIN_RATE = 0.05
  8.     # 因上面的情况允许吸血时的比例
  9.  
  10.   end
  11. end
  12.  
  13. class Game_Battler
  14.   include CLD99::Dracula  
  15.   #--------------------------------------------------------------------------
  16.   # ● [追加]是否所有攻击带吸血
  17.   #--------------------------------------------------------------------------
  18.   def dracula?
  19.     puts @skills
  20.     CLD99::Dracula::DRAIN_SKILL_ID.any?{|id| @skills.include?(id)}
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● [别名修改]计算伤害
  24.   #--------------------------------------------------------------------------
  25.   alias :make_damage_value_for_dracula :make_damage_value
  26.   def make_damage_value(user, item)
  27.     make_damage_value_for_dracula(user, item)
  28.     @result.make_dracula(item) if user.actor? && user.dracula?
  29.   end
  30. end
  31.  
  32. class Game_ActionResult
  33.   attr_reader :dracula
  34.   #--------------------------------------------------------------------------
  35.   # ● [追加]计算吸血
  36.   #--------------------------------------------------------------------------
  37.   def make_dracula(item)
  38.     return if item.damage.drain? # 自带吸血的技能不参与
  39.     return if @hp_damage < 0     # 回复类技能不参与
  40.     @hp_drain = (@hp_damage * CLD99::Dracula::DRAIN_RATE).to_i
  41.     @dracula = true
  42.   end  
  43.   #--------------------------------------------------------------------------
  44.   # ● [别名修改]获取 HP 伤害的文字
  45.   #--------------------------------------------------------------------------
  46.   alias hp_damage_text_for_dracula hp_damage_text
  47.   def hp_damage_text
  48.     if @dracula
  49.       fmt = "%s对造成了%s伤害,吸收了%s%s"
  50.       return sprintf(fmt, @battler.name, @hp_damage, @hp_drain, Vocab.hp)
  51.     end
  52.     hp_damage_text_for_dracula
  53.   end
  54. end
  55.  
  56. class Window_BattleLog
  57.   #--------------------------------------------------------------------------
  58.   # ● 显示 HP 伤害
  59.   #--------------------------------------------------------------------------
  60.   alias :display_hp_damage_for_dracula :display_hp_damage
  61.   def display_hp_damage(target, item)
  62.     target.perform_damage_effect if target.result.dracula
  63.     display_hp_damage_for_dracula(target, item)
  64.   end
  65. end

评分

参与人数 1+1 收起 理由
sdgn + 1 精品文章

查看全部评分

Lv6.析梦学徒

老鹰

梦石
39
星屑
33308
在线时间
6542 小时
注册时间
2012-5-26
帖子
3176

极短23参与极短22参与极短21评委老司机慢点开短篇十吟唱者组别冠军开拓者剧作品鉴家

发表于 2019-7-31 17:23:23 | 显示全部楼层
48~49行之间加一行 @dracula = false 试试看

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1412
在线时间
245 小时
注册时间
2019-1-18
帖子
190
 楼主| 发表于 2019-7-31 17:58:40 | 显示全部楼层
百里_飞柳 发表于 2019-7-31 17:23
48~49行之间加一行 @dracula = false 试试看

OK了,谢谢大佬
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33043
在线时间
10470 小时
注册时间
2009-3-15
帖子
4756
发表于 2019-7-31 18:46:32 | 显示全部楼层
user.actor?什么鬼..
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
5233
在线时间
1124 小时
注册时间
2011-12-18
帖子
1264
发表于 2019-7-31 19:46:50 | 显示全部楼层
用事件自製戰鬥的話可以用事件作
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 15:34

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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