查看: 3513|回复: 5

[已经解决] 一个咒印BUFF的问题

[复制链接]
梦石
0
星屑
1696
在线时间
116 小时
注册时间
2020-6-12
回帖
20
发表于 2020-11-16 20:29:54 | 显示全部楼层 |阅读模式

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

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

×
在对敌人施加咒印后,三回合后会咒印会发动造成敌人损失血量10%的伤害,然后BUFF消失。怎么做可以在BUFF消失时候对敌人造成伤害
梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2020-11-16 21:38:06 | 显示全部楼层
其实我很好奇你在上一个帖子中有没有吸收到什么。。。
回复

使用道具 举报

梦石
0
星屑
1696
在线时间
116 小时
注册时间
2020-6-12
回帖
20
 楼主| 发表于 2020-11-17 23:04:52 | 显示全部楼层
alexncf125 发表于 2020-11-16 21:38
其实我很好奇你在上一个帖子中有没有吸收到什么。。。

不知怎么判定,BUFF剩余回合数。
def update_state_turns
     states.each do |state|
       if @state_turns[40] = 1
         self.hp -= 100
       end
     end
这样写的话,好像BUFF就变成一直在了

点评

if @state_turns[40] == 1  发表于 2020-11-17 23:15
回复

使用道具 举报

梦石
0
星屑
29901
在线时间
5734 小时
注册时间
2016-3-8
回帖
1653
发表于 2020-11-18 00:06:24 | 显示全部楼层
写到def remove_state(state_id)里去比较好...
[pre lang="ruby"]
class Game_Battler < Game_BattlerBase
alias remove_state_dmg remove_state
  def remove_state(state_id)
    return unless state?(state_id)
    remove_state_dmg(state_id)
    if state_id == 40
      name = self.name   
      dmg = self.hp / 10
      self.hp -= dmg
      SceneManager.scene.instance_variable_get(:@log_window).instance_eval{add_text('%s受到了%s点的伤害!' % [name,dmg]);wait}
    end
    refresh
  end
end[/pre]
回复

使用道具 举报

梦石
0
星屑
1696
在线时间
116 小时
注册时间
2020-6-12
回帖
20
 楼主| 发表于 2020-11-18 21:35:09 | 显示全部楼层
alexncf125 发表于 2020-11-18 00:06
写到def remove_state(state_id)里去比较好...

class Game_Battler < Game_BattlerBase

原来在解除状态下判定BUFF序号下写,谢谢大佬
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部