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

Project1

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

关于魔法武器脚本使用时出问题。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
57 小时
注册时间
2007-9-4
帖子
72
跳转到指定楼层
1
发表于 2008-5-31 19:49:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
这脚本能增加武器暴击率
def attack_effect(attacker)
   # 清除会心一击标志
   self.critical = false
   # 第一命中判定
   hit_result = (rand(100) < attacker.hit)
   # 命中的情况下
   if hit_result == true
     # 计算基本伤害
     atk = [attacker.atk - self.pdef / 2, 0].max
     self.damage = atk * (20 + attacker.str) / 20
     # 属性修正
     self.damage *= elements_correct(attacker.element_set)
     self.damage /= 100
     # 伤害符号正确的情况下
     if self.damage > 0
       # 会心一击修正
       if rand(100) < 4 * attacker.dex / self.agi
         self.damage *= 2
         self.critical = true
       end
       # 防御修正
       if self.guarding?
         self.damage /= 2
       end
     end
     # 分散
     if self.damage.abs > 0
       amp = [self.damage.abs * 15 / 100, 1].max
       self.damage += rand(amp+1) + rand(amp+1) - amp
     end
     # 第二命中判定
     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)
   end
   
   
   if attacker.is_a?(Game_Actor) #当武器含有20号属性的时候,攻击消耗100SP
     if $data_weapons[attacker.weapon_id].element_set.include?(20)
       self.damage *= [100,attacker.sp].min
       self.damage /= 100
       attacker.sp -= [100,attacker.sp].min #如果SP不足100,则按比例减少伤害值
     end
   end   
   


   # 命中的情况下
   if hit_result == true
     # 状态冲击解除
     remove_states_shock
     # HP 的伤害计算
     self.hp -= self.damage
     # 状态变化
     @state_changed = false
     states_plus(attacker.plus_state_set)
     states_minus(attacker.minus_state_set)
   # Miss 的情况下
   else
     # 伤害设置为 "Miss"
     self.damage = "Miss"
     # 清除会心一击标志
     self.critical = false
   end
   # 过程结束
   return true
end


持有武器时还好,但是当角色空手攻击时会出错。
应该怎么修改成无武器时也能用,请高手帮忙!
版务信息:本贴由楼主自主结贴~

Lv3.寻梦者

酱油的

梦石
0
星屑
1265
在线时间
2161 小时
注册时间
2007-12-22
帖子
3271

贵宾

2
发表于 2008-5-31 19:50:51 | 只看该作者
請提供出錯信息的「文本樣本」或者「圖片截圖」
指出出錯的行數
不做頭像做簽名,看我囧冏有神(多謝山人有情提供 )
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
17 小时
注册时间
2007-8-10
帖子
170
3
发表于 2008-5-31 20:11:30 | 只看该作者
在下面添加个判断是否有武器的句子。(具体可以到默认脚本里写人物属性那里找,我这里没有RM,没法帮您写出来)
#如果攻击者是玩家,并且武器ID不为0 (即装备有武器)if attacker.is_a?(Game_Actor) and attacker.weapon_id != 0         #当武器含有20号属性的时候,攻击消耗100SP
    if $data_weapons[attacker.weapon_id].element_set.include?(20)
      self.damage *= [100,attacker.sp].min
      self.damage /= 100
      attacker.sp -= [100,attacker.sp].min #如果SP不足100,则按比例减少伤害值
    end
  end   

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-8-3 03:21

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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