Project1

标题: 请教个关于回避率的问题 [打印本页]

作者: 无心孤云    时间: 2009-2-7 04:05
标题: 请教个关于回避率的问题
  #--------------------------------------------------------------------------
  # ● 获取基本回避修正
  #--------------------------------------------------------------------------
  def base_eva
    armor1 = $data_armors[@armor1_id]
    armor2 = $data_armors[@armor2_id]
    armor3 = $data_armors[@armor3_id]
    armor4 = $data_armors[@armor4_id]
    eva1 = armor1 != nil ? armor1.eva : 0
    eva2 = armor2 != nil ? armor2.eva : 0
    eva3 = armor3 != nil ? armor3.eva : 0
    eva4 = armor4 != nil ? armor4.eva : 0
    return eva1 + eva2 + eva3 + eva4
  end

请问这个回避修正是啥意思呢???
是个百分比的还是数值呢???
如果把我最后段改成
return eva1 + eva2 + eva3 + eva4 + base_agi
那加上了速度的数值...会不会回避高出很多???
作者: 后知后觉    时间: 2009-2-7 04:40
      # 第二命中判定
      eva = 8 * self.agi / attacker.dex + self.eva
      hit = self.damage < 0 ? 100 : 100 - eva
      hit = self.cant_evade? ? 100 : hit
      hit_result = (rand(100) < hit)
最后这一行为true就命中了,为false就躲避了
在0-100的范围里eva越大 hit就越小
eva大于100的话hit就小于0
rand(100)永远不会小于0
永远都是false 你自己看看吧
作者: 霜冻之狼    时间: 2009-2-7 04:52
是百分率...
eva大于100等于不可能命中.....
作者: 无心孤云    时间: 2009-2-7 05:20
那请问前辈.我发的那段回避修正需要去改么???
作者: 后知后觉    时间: 2009-2-7 05:52
这个要看需求而定
就算要改也应该是改
这几行比较合适
     # 第二命中判定
     eva = 8 * self.agi / attacker.dex + self.eva
     hit = self.damage < 0 ? 100 : 100 - eva
     hit = self.cant_evade? ? 100 : hit
     hit_result = (rand(100) < hit)

这几行是 应用普通物理攻击里提出来的
在Game_Battler 3 里面 [LINE]1,#dddddd[/LINE]系统信息:本贴获得楼主认可,66RPG感谢您的热情解答~
作者: 无心孤云    时间: 2009-2-7 06:51
那我打算用速度来当躲闪...也就是说替代灵巧
那是不是把attacker.dex更改成base_agi
请前辈再次指教下{/ll}
作者: 后知后觉    时间: 2009-2-7 08:34
以下引用xcyog于2009-2-6 22:51:57的发言:

那我打算用速度来当躲闪...也就是说替代灵巧
那是不是把attacker.dex更改成base_agi
请前辈再次指教下

你想这样改也可以
attacker.base_agi  
attacker.agi
这2个要区分清楚,后者包含前者
说到这里突然想起一个问题
上次给你说的那个灵巧关联物理防御的那个应该用dex而不是base_dex
base_dex是数据库里设置的属性,在升级和换装备的时候才会增加
而dex是在Game_Battler 3里定义的,除了包含base_dex以外还有另外的一个东西
就是那个@dex_plus,使用加属性的物品增加属性时是加的这个东西而不是base_dex
作者: 无心孤云    时间: 2009-2-7 20:54
上次给你说的那个灵巧关联物理防御的那个应该用dex而不是base_dex
base_dex是数据库里设置的属性,在升级和换装备的时候才会增加
而dex是在Game_Battler 3里定义的,除了包含base_dex以外还有另外的一个东西
就是那个@dex_plus,使用加属性的物品增加属性时是加的这个东西而不是base_dex


哇...我去测试了下.果然是要用dex才行呀....谢谢前辈指正啊...




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