Project1

标题: 救、救命...... [打印本页]

作者: 间桐樱    时间: 2025-5-11 19:31
标题: 救、救命......
我以前制作了宝箱陷阱,按百分比伤害的,现在突然后悔,觉后期伤害太离谱,然后又加了根据双防减伤的效果,双防合计1000以上陷阱类伤害彻底无效
但是问题来了,伤害显示那里还显示原来的伤害,不会跟着减伤变动
最重要的是宝箱内容是以前做的,不能动了,不然我要满地图至少几百个宝箱改动
现在只能问问有没有办法,不然我就只能放弃减伤了
  #--------------------------------------------------------------------------
  # ● 增减 HP (事件用)
  #     value        : 数值
  #     enable_death : 是否允许致死
  #--------------------------------------------------------------------------
  def change_hp(value, enable_death)
    if !enable_death && @hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i <= 0
      self.hp = 1
    else
      self.hp = self.hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
    end
  end

QQ截图20250511192442.png (27.32 KB, 下载次数: 1)

QQ截图20250511192442.png

Project1.zip

145.25 KB, 下载次数: 1


作者: 间桐樱    时间: 2025-5-11 19:33
伤害显示

QQ截图20250511192510.png (62.72 KB, 下载次数: 1)

QQ截图20250511192510.png

作者: soulsaga    时间: 2025-5-11 23:45
本帖最后由 soulsaga 于 2025-5-12 15:00 编辑

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 增减 HP (事件用)
  3.   #     value        : 数值
  4.   #     enable_death : 是否允许致死
  5.   #--------------------------------------------------------------------------
  6.   def change_hp(value, enable_death)
  7.     if !enable_death && @hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i <= 0
  8.       $game_variables[1]=self.hp-1
  9.       self.hp = 1
  10.     else
  11.       self.hp = self.hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
  12.       $game_variables[1]=self.hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
  13.     end
  14.   end


这样应该就行了..显示也可能会正常
作者: 间桐樱    时间: 2025-5-12 12:24
soulsaga 发表于 2025-5-11 23:45
#--------------------------------------------------------------------------
  # ● 增减 HP (事件用 ...

大佬,有点儿小问题,显示的不是受到的伤害,不过我改了一下,不知道正不正确,但伤害显示正确了
还有一个大问题,就是$game_variables[1] = 1,当hp不足变量时,显示伤害直接变成1了
等于角色当前hp300,受到伤害500,不致死情况下应该显示伤害299,但实际显示伤害是1
  def change_hp(value, enable_death)
    if !enable_death && @hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i <= 0
      self.hp = 1
      $game_variables[1]=1
    else
      self.hp = self.hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
      $game_variables[1]= - [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
    end
  end




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