Project1

标题: 关于状态扣HP的问题 [打印本页]

作者: topbluegun    时间: 2017-10-24 12:52
标题: 关于状态扣HP的问题
如何让角色陷入某种状态时固定扣HP500点
作者: soulsaga    时间: 2017-10-24 13:27
用公共事件..
如下图..



作者: topbluegun    时间: 2017-10-24 14:09
我说的是在战斗中 每回合固定扣HP500点
作者: soulsaga    时间: 2017-10-24 14:19
本帖最后由 soulsaga 于 2017-10-24 16:55 编辑
topbluegun 发表于 2017-10-24 14:09
我说的是在战斗中 每回合固定扣HP500点

RUBY 代码复制
  1. class Game_Battler < Game_BattlerBase
  2.   def regenerate_hp
  3.     damage = 500
  4.     perform_map_damage_effect if $game_party.in_battle && damage > 0
  5.     @result.hp_damage = [damage, max_slip_damage].min
  6.     self.hp -= @result.hp_damage
  7. end
  8.   end


插入到MAIN上面..每回合自动扣百分比血变成扣500HP
未测试..不知可用否..

作者: topbluegun    时间: 2017-10-24 16:27
不行,脚本第四行出错
而且,我要制作的这种状态不只一种,减HP的程度也不一样
作者: soulsaga    时间: 2017-10-24 16:46
本帖最后由 soulsaga 于 2017-10-24 16:55 编辑
topbluegun 发表于 2017-10-24 16:27
不行,脚本第四行出错
而且,我要制作的这种状态不只一种,减HP的程度也不一样 ...
那想不到方法了..


作者: topbluegun    时间: 2017-10-24 17:27
问题已解决 在Game_Battler类第750行左右的def regenerate_hp处修改。
例子:
#格式[[状态ID,扣HP点数]]
def regenerate_hp
     array_slip_damage_states = [[2, 500], [40, 2000], [46, 1000]]
    damage = 0
    for i in array_slip_damage_states
      if self.state?(i[0])
        damage += i[1]
      end
    end
    perform_map_damage_effect if $game_party.in_battle && damage > 0
    @result.hp_damage = [damage, max_slip_damage].min
    self.hp -= @result.hp_damage
  end




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1