Project1

标题: 请教如何让物品掉落率跟幸运值挂钩? [打印本页]

作者: viva0072008    时间: 2013-4-22 19:28
标题: 请教如何让物品掉落率跟幸运值挂钩?
本帖最后由 viva0072008 于 2013-4-22 20:28 编辑

就跟队伍里的1号角色的幸运值挂钩就可以了,但是要怎么弄呢?

想设定的公式是 数据库设定的物品掉率 再* 队伍1号角色的幸运值 / 100 = 最后的物品掉落率
作者: 后知后觉    时间: 2013-4-22 20:02
在 Game_Enemy 里面找到
  1.   #--------------------------------------------------------------------------
  2.   # ● 获取物品掉率的倍率
  3.   #--------------------------------------------------------------------------
  4.   def drop_item_rate
  5.     $game_party.drop_item_double? ? 2 : 1
  6.   end
复制代码
改成

  1.   #--------------------------------------------------------------------------
  2.   # ● 获取物品掉率的倍率
  3.   #--------------------------------------------------------------------------
  4.   def drop_item_rate
  5.     n = $game_party.drop_item_double? ? 2 : 1
  6.     $game_party.leader ? n * $game_party.leader.luk / 100.0 : n
  7.   end

复制代码

作者: j433463    时间: 2013-4-22 20:08
好像是在 Game_Enemy 的 def make_drop_items 处理的吧?di.denominator 应该是掉落物品机率的分母,rand * di.denominator 就是掉落率,而 drop_item_rate 是掉落倍率,不过用幸运值这个公式做,这个我就无力了。
作者: 后知后觉    时间: 2013-4-22 23:45
本帖最后由 后知后觉 于 2013-4-23 00:08 编辑

那个只是把 a  < c / b 写成了 a * b < c
作者: j433463    时间: 2013-4-23 00:52
我的意思是说 def drop_item_rate 只是掉宝的倍率,您加那一行计算出的也只是把倍率 n = 2 : 1 结果再去乘幸运值的百分比率,

假设得出的 drop_item_rate 为 1.8,也只是 rand * di.denominator 小于 1.8 时加倍掉宝,让倍率依幸运值变化而已,

但实际上的掉宝率依然是 rand * di.denominator 的值,只是再依照倍率处理,并没有真的改变掉宝率吧?

若 rand * di.denominator > drop_item_rate 时,它的掉宝率还是 rand * di.denominator 本身的值,与幸运值无关,

而且 $game_party.leader 如果为 false,也就是队伍中没有存在任何成员了,那 n 也没有意义,

我是觉得怪怪的,求解。










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