Project1

标题: 【VX】請問下戰鬥中防禦時判斷某部位裝備 [打印本页]

作者: hsun770916    时间: 2011-12-23 14:37
标题: 【VX】請問下戰鬥中防禦時判斷某部位裝備
本帖最后由 hsun770916 于 2011-12-23 14:42 编辑

當防禦時若角色手部裝備是特定某些裝備(盾類)時減少較多的傷害

  #--------------------------------------------------------------------------
  # ● 计算防御校正
  #     damage : 伤害
  #--------------------------------------------------------------------------

  def apply_guard(damage)
    if self.armor3_id == 0 and guarding?     #判断裝備&是否防御中
      damage = 10
    elsif self.armor3_id == 7...10 and guarding?  #判断裝備&是否防御中
      damage = 1
    else damage = 100
    end
    return
damage
  end

但是這樣攻擊敵人時會有問題,因為敵人沒有armor3...

if self.armor3_id == 0 and guarding? 改成  if self.armor3_id == nil and guarding? 也會跳錯

懇請指點~:)


作者: 月夜神音    时间: 2011-12-23 15:41
本帖最后由 月夜神音 于 2011-12-23 17:39 编辑

在判断aromr3_id时加多个判断if self.is_a?(Game_Actor)来判断受伤目标是否角色就行了
刚才写错了,这才是正确
作者: hsun770916    时间: 2011-12-23 16:35
不好意思~可能是我理解的不正確

  def apply_guard(damage)
    if self.is_a?($game_actor) #判斷角色?
     if self.armor3_id == 0 and guarding?
      damage = 10
    elsif self.armor3_id == 7...10 and guarding?
      damage = 1
    end
    else damage = 100
  end
    return damage
  end



當攻擊時不論是怪物或是角色這行 if self.is_a?($game_actor) 都會跳錯

作者: hsun770916    时间: 2011-12-24 01:56
感謝兩位的幫忙~

if self.is_a?(Game_Actor)                # 角色
  if guarding?                                 # 判断是否防御中
    if self.armor3_id == 7...10          #判斷裝備
    damage /= 10                           # 降低伤害
  else
    damage /= 2                             # 降低伤害
  end
end
else                                               #敵人
  if guarding?                                 # 判断是否防御中
    damage /= 2                             # 降低伤害
  end
end

可以完全達成我要的效果,感謝指點!

另問下有沒有更好的寫法可以讓我偷學下呢?




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