查看: 1666|回复: 1

[已经解决] 有没有什么办法增加体力值上限后当前体力值按百分比增加

[复制链接]
梦石
0
星屑
3348
在线时间
1120 小时
注册时间
2009-4-15
回帖
761
发表于 2015-11-6 17:19:33 | 显示全部楼层 |阅读模式

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

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

×
有没有什么办法增加体力值上限后当前体力值按百分比增加?
举个例子,人物当前HP100,最大HP100
附加状态:体力值上限增加20%
结果状态附加后变成:人物当前HP100,最大HP120,换句话说,本来满血的,变成不是满血了……

有没有什么办法或者思路,使得人物在增加体力值上限时,当前体力值跟着变化?(按照原先HP的百分比来变化)

还是举个例子吧,我希望达到如下效果:
人物当前HP100,最大HP200(就是说,当前HP是50%)
附加状态:体力值上限增加20%
附加状态后:人物当前HP120,最大HP240(当前HP与MHP的比例还是50%)

同样的,我希望不止在HP上限增加时有效,当这个状态消失后,HP也跟着变化成原先的比例

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-11-6 18:58:07 | 显示全部楼层
楼主也是懂代码的,我就大概给个思路吧 (未测试)
[pre lang="ruby"]
class Game_BattlerBase
  def refresh
    @last_mhp ||= mhp
    if @last_mhp != mhp
      old_hp_rate = hp.fdiv @last_mhp
      @last_mhp = mhp
      self.hp = (old_hp_rate * @last_mhp).to_i
    end

    # invoke original method `refresh'
  end
end
[/pre]

点评

结贴自己点就行了  发表于 2015-11-7 07:58
嗯,其实我要的就是大概放什么地方写这段逻辑,本来想放状态里的,状态触发,但不太好写,一时没想到放refresh里,结贴吧。  发表于 2015-11-6 22:55

评分

参与人数 1梦石 +1 收起 理由
VIPArcher + 1 认可答案

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部