设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2381|回复: 6
打印 上一主题 下一主题

[已经解决] [已解決]这个儲存釋放伤害脚本是不是有BUG?

[复制链接]
头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
跳转到指定楼层
1
发表于 2020-6-18 14:47:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽

Lv4.逐梦者

梦石
3
星屑
7135
在线时间
589 小时
注册时间
2019-9-15
帖子
113

R考场第七期金奖

来自 4楼
发表于 2020-6-20 01:59:16 | 只看该作者
本帖最后由 Cupidk爱呗茶 于 2020-6-20 02:25 编辑

粗略看了一下 感觉问题出在
  1.   def stored_dmg
  2.     0 unless can_store_damage?
  3.     val = @stored_dmg
  4.     @stored_dmg = 0  #执行完一次该方法后储存伤害清零
  5.     remove_storedmg_state # 清除状态时还会在判断一次伤害清零
  6.     val
  7.   end
复制代码

然后主楼贴出的第二个脚本def make_damage_value(user, item) 第16行中在判断技能ID在获取伤害之前 就已经执行过一次公式方法了导致这个伤害被清零
解决思路大概就是 直接吧797号技能的伤害判定放到方法最前端执行 来试试看行不行
  1.   #--------------------------------------------------------------------------
  2.   # ● 計算傷害
  3.   #--------------------------------------------------------------------------
  4.   def make_damage_value(user, item)
  5.     if item.is_a?(RPG::Skill) and item.id == 797
  6.       value = item.damage.eval(user, self, $game_variables)
  7.       return @result.make_damage(value.to_i, item)
  8.     end
  9.     value = 2
  10.     if user.is_a?(Game_Actor)
  11.       value *= user.level
  12.     else
  13.       value *= 5
  14.     end
  15.     value += 10
  16.     value *= user.atk if item.physical?
  17.     value *= user.mat if item.magical?
  18.     value *= item.damage.eval(user, self, $game_variables)
  19.     value /= 250
  20.     value /= self.def if item.physical?
  21.     value /= self.mdf if item.magical?
  22.     value += 2
  23.     value *= item_element_rate(user, item)
  24.     value *= pdr if item.physical?
  25.     value *= mdr if item.magical?
  26.     value *= rec if item.damage.recover?
  27.     value = apply_critical(value) if @result.critical
  28.     value = apply_variance(value, item.damage.variance)
  29.     value = apply_guard(value)
  30.     @result.make_damage(value.to_i, item)
  31.   end
复制代码

评分

参与人数 1+1 收起 理由
chanszeman1018 + 1 精品文章

查看全部评分

********
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6160
在线时间
793 小时
注册时间
2019-1-20
帖子
204
2
发表于 2020-6-19 13:38:42 | 只看该作者
不知道你工程和设定等等的相关细节,所以我只是猜一下
1.797号技能会兩倍释放最后兩回合储存了的受到的伤害
①初次使用,a.stored_dmg是0
②没有设置好状态,a.stored_dmg是0
③a角色一直没有受伤,a.stored_dmg是0
然后你又用了最低伤害脚本
所以伤害只会返回1
也有可能是你使用的最低伤害脚本导致伤害只会返回1

2.你的公式涉及的参数有点多
但是却没有考虑过 被除数小于除数等于0 这种情况
稍微调整部分公式以及参数的数值后看看吧

举例
命中类型是必中时,
到 value += 10 为止的结果小于250
没有
value *= user.atk if item.physical?   
value *= user.mat if item.magical?
的加成后
value /= 250  的结果容易等于0,没有去小数点时实际上是0到1之间,包含0不包含1
之后的
value += 2   的结果就容易等于2了,没有去小数点时实际上是2到3之间,包含2不包含3

评分

参与人数 1+1 收起 理由
chanszeman1018 + 1 塞糖

查看全部评分


提高解答机会的方法:
看一下对应版本的帮助文件 看天气预报说今天不下雨
改变问题为更有可能的或常见的 如:天气自动变化下雨→天气系统 果然不准呀~
使用论坛的搜索功能查找相关问题 好丧啊... ...想看女装
清楚说明实际上你想解决的问题  想看坛友的女装  
脚本自己有改过的地方要标明  不要遮脸的
脚本有问题但不是默认的要全部贴出来 大胆点,尽情发
三包原则:包有BUG,包甩锅,包咕咕
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
3
 楼主| 发表于 2020-6-19 15:52:01 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv4.逐梦者 (禁止发言)

梦石
0
星屑
5706
在线时间
922 小时
注册时间
2013-8-29
帖子
1468
5
 楼主| 发表于 2020-6-20 03:01:27 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 08:40

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表