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

Project1

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

【VX】請問下戰鬥中防禦時判斷某部位裝備

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
371 小时
注册时间
2008-12-11
帖子
47
跳转到指定楼层
1
发表于 2011-12-23 14:37:39 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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? 也會跳錯

懇請指點~:)

Lv1.梦旅人

梦石
0
星屑
50
在线时间
371 小时
注册时间
2008-12-11
帖子
47
4
 楼主| 发表于 2011-12-24 01:56:13 | 只看该作者
感謝兩位的幫忙~

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

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

另問下有沒有更好的寫法可以讓我偷學下呢?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
371 小时
注册时间
2008-12-11
帖子
47
3
 楼主| 发表于 2011-12-23 16:35:12 | 只看该作者
不好意思~可能是我理解的不正確

  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) 都會跳錯

点评

self.is_a?(Game_Actor)  发表于 2011-12-23 17:28
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

2
发表于 2011-12-23 15:41:01 | 只看该作者
本帖最后由 月夜神音 于 2011-12-23 17:39 编辑

在判断aromr3_id时加多个判断if self.is_a?(Game_Actor)来判断受伤目标是否角色就行了
刚才写错了,这才是正确

点评

我写错了=-=  发表于 2011-12-23 17:38
is_a? 方法的参数是类名,不是实例  发表于 2011-12-23 17:29
找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-28 14:50

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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