查看: 952|回复: 7

[有事请教] 救、救命......

[复制链接]
梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
发表于 2025-5-11 19:31:35 | 显示全部楼层 |阅读模式

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

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

×
我以前制作了宝箱陷阱,按百分比伤害的,现在突然后悔,觉后期伤害太离谱,然后又加了根据双防减伤的效果,双防合计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

Project1.zip

145.25 KB, 下载次数: 1

梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
 楼主| 发表于 2025-5-11 19:33:01 | 显示全部楼层
伤害显示
QQ截图20250511192510.png
回复

使用道具 举报

梦石
0
星屑
39236
在线时间
11155 小时
注册时间
2009-3-15
回帖
4768
发表于 2025-5-11 23:45:54 | 显示全部楼层
本帖最后由 soulsaga 于 2025-5-12 15:00 编辑

[pre lang="ruby"]#--------------------------------------------------------------------------
  # ● 增减 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
      $game_variables[1]=self.hp-1
      self.hp = 1
    else
      self.hp = self.hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
      $game_variables[1]=self.hp + [value * (1 - self.def * 0.001 - self.mdf * 0.001), 0].min.to_i
    end
  end[/pre]

这样应该就行了..显示也可能会正常
回复

使用道具 举报

梦石
0
星屑
1966
在线时间
112 小时
注册时间
2017-9-5
回帖
157
 楼主| 发表于 2025-5-12 12:24:04 | 显示全部楼层
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

点评

成功了,至少目前暂未发现bug,后续继续测试,感谢大佬的指点  发表于 2025-5-12 21:33
加个判断if value > 0  发表于 2025-5-12 20:07
成功了,但我也检测出我这代码的bug了,减伤没问题,但回复类会减少,双防超过1000后回复会变成减伤,哭  发表于 2025-5-12 16:46
那只要这样写就行..已更  发表于 2025-5-12 15:01
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部