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

Project1

 找回密码
 注册会员
搜索

有關最終命中與閃避的問題..

查看数: 1823 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2012-10-30 20:45

正文摘要:

SRPG2腳本經過上次前輩修改後 已經成功實現爆撃.命中.閃避三個數值自動產生 但是問題出現了...他原本設定中.. class Game_Battler中   #------------------------------------------------------------ ...

回复

怪蜀黍 发表于 2012-10-30 22:08:10
亂堂和樹 发表于 2012-10-30 21:58
果然自己寫的那樣...完全的有問題..
0%..一樣打中..還是物理攻擊呢..

你可以:
  1. 实际命中 = 命中/(命中 + 回避) * 100%
复制代码
这个函数的值域一定是在0-1之间的。
从函数可以看出:命中占的比率越大,打中的机会就越大。如果回避占了上风,打中的机会就小。
喵~

点评

小韦说得很对,这样吧,乘个1.0即可带浮点:hit = user.hit_1 * 1.0 / (user.hit_1 + self.eva_1)[url=home.php?mod=space&username=a364774426]@a364774426[/url]  发表于 2012-10-30 22:41
按照之前你提问贴里的公式,要重新写才行。  发表于 2012-10-30 22:40
hit = user.hit / (hit + eva)*100% 这样写的话,命中或回避之一必须有浮点数,否则命中永远为0.  发表于 2012-10-30 22:39
喔~我懂了~定義是在Game_Actor中定義吧?  发表于 2012-10-30 22:28
像這樣定義? hit = user.hit # 命中率を取得 hit_1 = user.hit eva = self.eva eva_1 = eva  发表于 2012-10-30 22:26

评分

参与人数 1星屑 +80 收起 理由
咕噜 + 80 我很赞同

查看全部评分

亂堂和樹 发表于 2012-10-30 21:37:12
本帖最后由 亂堂和樹 于 2012-10-30 21:41 编辑

a364774426前輩~感謝你回覆我啊>"<!

前輩~要是我設定改成這樣~他算出來~會跟我想要的理想數值一樣嗎?

這是我自己修改過後的結果↓
  #--------------------------------------------------------------------------
  # ● 最終命中率の計算
  #     user : 攻撃者、スキルまたはアイテムの使用者
  #     obj  : スキルまたはアイテム (通常攻撃の場合は nil)
  #--------------------------------------------------------------------------
  def calc_hit(user, obj = nil)
    if obj == nil                           # 通常攻撃の場合
      hit = user.hit                        # 命中率を取得
      physical = true
    elsif obj.is_a?(RPG::Skill)             # スキルの場合
      #hit = obj.donevade? ? 100 : obj.hit   # 成功率を取得
      #hit = obj.hit+user.hit
      #physical = obj.physical_attack
      hit = user.hit                        # 命中率を取得   <<這段是我自己新增的
      physical = true                                                <<這段是我自己新增的
    else                                    # アイテムの場合
      hit = 100                             # 命中率を 100% とする
      physical = obj.physical_attack
    end
    hit = 100 if user.donevade?             # 必中状態なら 100% とする
    if physical                             # 物理攻撃の場合
      hit /= 4 if user.reduce_hit_ratio?    # 使用者が暗闇なら 1/4 にする
    end
    return hit
  end
  #--------------------------------------------------------------------------
  # ● 最終回避率の計算
  #     user : 攻撃者、スキルまたはアイテムの使用者
  #     obj  : スキルまたはアイテム (通常攻撃の場合は nil)
  #--------------------------------------------------------------------------
  def calc_eva(user, obj = nil)
    eva = self.eva
    if $game_temp.unit_back_attack          # 背後攻撃ボーナス
      eva = [eva - TSRPG::BACK_ATTACK_BONUS_HIT, 0].max
    end
    unless obj == nil  # 通常攻撃ではない場合
      eva = eva - user.hit                                          <<這段是我自己新增的
      eva = 0 unless obj.physical_attack   
      eva = 0 if obj.donevade?            
    end
    eva = 0 if user.donevade?               # 攻撃者が必中状態なら 0% とする
    eva = 0 unless parriable?               # 回避不可能状態なら 0% とする
    return eva
  end


另外顯示部分我修改成
  def get_hit_rate
    hit = @attacker.unit.hit - @target.unit.eva          <<這段是我自己新增的
    #hit = @target.unit.calc_hit(@attacker.unit, @obj)
    #hit = hit* (100 - @target.unit.calc_eva(@attacker.unit, @obj)) / 100
    if @attacker.unit.hit - @target.unit.eva > 100     <<這段是我自己新增的
    hit =100                                                             <<這段是我自己新增的
    elsif @attacker.unit.hit - @target.unit.eva < 0     <<這段是我自己新增的
    hit = 0                                                                <<這段是我自己新增的
    end                       
    return hit
  end

這顯示部分~只是單純~超過100就顯示100%命中~低於0就是0%
所以我最終命中跟閃避...只是希望很單純的
HIT-EVA=真HIT
a364774426 发表于 2012-10-30 21:27:43
不知道那个-68%是怎么计算出来的,按照你所给的脚本来看是没有经过修改的。
本身命中与回避之间的关系是很复杂的,首先单单依靠命中减回避来取得最终命中是很片面的,例如攻方命中100和受方闪避100的时候,最终命中就是0,
这本身就是一个自相矛盾的现象。另外在命中小于100的情况下,如95%,那么假设受方闪避为0,有5%的几率是打偏的,即是MISS,一旦受方闪避大于0,
那么就要考虑到在没有打偏的情况下,攻击命中的概率,同理最终闪避几率也是如此。

对于命中超过100的问题,很简单,在定义命中等数值的地方,返回值之前加入一句"n = 100 if n > 100 ########n是命中等值"

点评

那這有辦法解決嘛...  发表于 2012-10-30 22:04
嘛...SRPG2他設定中還蠻奇怪的.. 有些技能有特殊設定~像是必中狀態 不管敵方閃避999..還是100%命中 其他部分技能也是呢0.0..  发表于 2012-10-30 21:47

评分

参与人数 2星屑 +86 收起 理由
咕噜 + 80 我很赞同
怪蜀黍 + 6 我很赞同

查看全部评分

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

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

GMT+8, 2025-7-18 12:57

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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