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

Project1

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

[已经解决] 请教状态脚本,中了状态无法治疗或者治疗就减血

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1162
在线时间
178 小时
注册时间
2018-11-6
帖子
32
跳转到指定楼层
1
发表于 2019-4-29 12:05:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
就是中了状态无法治疗或者治疗就减血,加多少扣多少血量,感谢!!

Lv5.捕梦者

梦石
10
星屑
39440
在线时间
1914 小时
注册时间
2010-11-14
帖子
3315

R考场第七期纪念奖

2
发表于 2019-4-29 16:49:25 | 只看该作者
本帖最后由 KB.Driver 于 2019-4-29 21:46 编辑

RUBY 代码复制
  1. #==============================================================================
  2. # ■ 禁疗/治疗反转 by Calendar99
  3. #------------------------------------------------------------------------------
  4. #  可以制作禁疗/治疗反转的效果
  5. #   状态备注中写<治疗效果 xx%>
  6. #   比如<治疗效果 0%>为禁疗,<治疗效果 -100%>为完全治疗反转
  7. #==============================================================================
  8.  
  9. class RPG::State
  10.  
  11.   TAG_HEAL_EFFECT = "(?:治疗效果|heal_effect)"
  12.  
  13.   def heal_effect
  14.     tag = TAG_HEAL_EFFECT
  15.     int = "[ :=]*"
  16.     cap = "(-?[0-9]*)%?"
  17.     reg = /<#{tag}#{int}#{cap}>/
  18.     m = self.note.match(reg)
  19.     m ? m[1].to_i / 100.0 : 1.0
  20.   end
  21.  
  22.   def heal_reverse?
  23.     heal_effect < 0.0
  24.   end
  25.  
  26.   def heal_forbidden?
  27.     heal_effect == 0.0
  28.   end
  29.  
  30. end
  31.  
  32. class Game_Battler
  33.   #--------------------------------------------------------------------------
  34.   # ● [追加]被禁疗?
  35.   #--------------------------------------------------------------------------
  36.   def heal_forbidden?
  37.     states.any?{|s| s.heal_forbidden?}
  38.   end
  39.   #--------------------------------------------------------------------------
  40.   # ● [追加]被治疗反转?
  41.   #--------------------------------------------------------------------------
  42.   def heal_reverse?
  43.     !heal_forbidden? && states.any?{|s| s.heal_reverse?}
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● [追加]额外治疗效果
  47.   #--------------------------------------------------------------------------
  48.   def extra_heal_effect(heal_reverse = false)
  49.     heal_states = states.select{|s| s.heal_effect != 1.0}
  50.     return 1.0 if heal_states.empty?
  51.     effects = heal_states.collect{|s| s.heal_effect}.sort
  52.     heal_reverse ? effects.first : effects.last
  53.   end
  54.   #--------------------------------------------------------------------------
  55.   # ● [别名修改]处理伤害
  56.   #--------------------------------------------------------------------------
  57.   alias execute_damage_cld99_20190429 execute_damage
  58.   def execute_damage(user)
  59.     if self.heal_forbidden?
  60.       execute_damage_heal_forbidden(user) # 禁疗
  61.     elsif self.heal_reverse?
  62.       execute_damage_heal_reverse(user) # 治疗反转
  63.     else
  64.       execute_damage_cld99_20190429(user) # 原方法
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● [追加]禁疗下的处理伤害
  69.   #--------------------------------------------------------------------------
  70.   def execute_damage_heal_forbidden(user)
  71.     if @result.hp_damage > 0
  72.       on_damage(@result.hp_damage)
  73.       self.hp -= @result.hp_damage
  74.     end
  75.     self.mp -= @result.mp_damage
  76.     user.hp += @result.hp_drain
  77.     user.mp += @result.mp_drain
  78.   end
  79.   #--------------------------------------------------------------------------
  80.   # ● [追加]治疗反转下的处理伤害
  81.   #--------------------------------------------------------------------------
  82.   def execute_damage_heal_reverse(user)
  83.     if @result.hp_damage > 0
  84.       on_damage(@result.hp_damage)
  85.       self.hp -= @result.hp_damage
  86.     elsif @result.hp_damage < 0
  87.       self.hp -= @result.hp_damage * extra_heal_effect(heal_reverse = true)
  88.     end
  89.     self.mp -= @result.mp_damage
  90.     user.hp += @result.hp_drain
  91.     user.mp += @result.mp_drain
  92.   end
  93. end


新建工程测试通过,其他问题不负责了。

评分

参与人数 2星屑 +50 +1 收起 理由
VIPArcher + 50 认可答案
leontonydz + 1 我很赞同

查看全部评分

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

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1162
在线时间
178 小时
注册时间
2018-11-6
帖子
32
3
 楼主| 发表于 2019-4-29 19:56:36 | 只看该作者
大佬太感谢了!!
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1162
在线时间
178 小时
注册时间
2018-11-6
帖子
32
4
 楼主| 发表于 2019-4-29 20:01:20 | 只看该作者
KB.Driver 发表于 2019-4-29 16:49
#==============================================================================
# ■ 禁疗/治疗反转 b ...

大佬,再请教一下我用RGD好像跟怪物图鉴不兼容,是什么原因?

点评

不是说其他问题不负责了吗  发表于 2019-4-29 21:44
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1162
在线时间
178 小时
注册时间
2018-11-6
帖子
32
5
 楼主| 发表于 2019-4-29 22:01:47 | 只看该作者
leontonydz 发表于 2019-4-29 20:01
大佬,再请教一下我用RGD好像跟怪物图鉴不兼容,是什么原因?

大佬,这个脚本没问题,我是想就这个主题请教一个新问题
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-2 05:29

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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