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

Project1

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

请问如何才能让装备增加新的能力值

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
跳转到指定楼层
1
发表于 2008-8-14 18:48:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
我给人物加了新的能力值:抗性

具体方法是,

1.  在Game_Actor中加了  
      attr_accessor :mdfpl        # mdf per level (抗性/等级 系数)

    并在Game_Actors中为每个职业设置了其初值


2.  但是在Game_Actor中模仿 获取基本攻击力/防御力/精神力/敏捷性 的方法来获取基本抗性(本身等级决定的值 + 装备获得的值),遇到了错误,因为系统默认的装备属性没有增加抗性这一项
   
  #--------------------------------------------------------------------------
  # ● 获取基本抗性
  #--------------------------------------------------------------------------
  def base_mdf
    n = mdfpl * level             #本身抗性=系数×等级
#   for item in equips.compact do n += item.mdf  end       #出错
    return n
  end


如果我在装备的备注栏里写上 [抗性 10] ,

那我要如何用split来提取人物所穿的每件装备的抗性

然后加到基本抗性里面?


版务信息:本贴由楼主自主结贴~

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
8
 楼主| 发表于 2008-8-16 17:48:30 | 只看该作者
以下引用snstar2006于2008-8-16 0:07:55的发言:

class RPG::Weapon < RPG::BaseItem
  def mdfpl
    m = 0
    self.note.split(/[\r\n]+/).each { |line|
      m = $1.to_i if line =~ /\[抗性 (\d+)\]/
    }   
    return m
  end  
end


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


终于可以了,非常感谢!

用这个办法再多加一些别的能力也不成问题吧{/se}{/se}{/se}
回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
640
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

7
发表于 2008-8-16 08:07:55 | 只看该作者
  1. class RPG::Weapon < RPG::BaseItem
  2.   def mdfpl
  3.     m = 0
  4.     self.note.split(/[\r\n]+/).each { |line|
  5.       m = $1.to_i if line =~ /\[抗性 (\d+)\]/
  6.     }   
  7.     return m
  8.   end  
  9. end
复制代码

系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
6
 楼主| 发表于 2008-8-15 19:05:22 | 只看该作者
郁闷了,

为什么试了N种办法都不能正常截取到[抗性 X]的 X啊。。。。

谁能救救偶。。。。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
5
 楼主| 发表于 2008-8-14 19:56:56 | 只看该作者
还是不行。。。。{/ll}


回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
640
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

4
发表于 2008-8-14 19:40:07 | 只看该作者
= = 怎麽会变成mplit的????
在试试看吧...
  1. class RPG::Weapon < RPG::BaseItem
  2.   def mdfpl
  3.     self.note.split(/[\r\n]+/).each { |line|
  4.       d = ""
  5.       if line =~ /\[抗性 \d+\]/
  6.         a = line.split(/ /)[1]
  7.         while ((c = a.slice!(/./m)) != nil)
  8.           d += c if c.is_a?(Integer)
  9.         end
  10.       end
  11.     }
  12.     return d ? d.to_i : nil
  13.   end  
  14. end  
复制代码
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1 小时
注册时间
2008-8-3
帖子
976
3
 楼主| 发表于 2008-8-14 19:29:10 | 只看该作者
以下引用snstar2006于2008-8-14 10:53:27的发言:

class RPG::Weapon < RPG::BaseItem
  def mdfpl
    self.note.mplit(/[\r\n]+/).each { |line|
      if line =~ /\[抗性 \d+\]/
        a = line.mplit(/ /)[1]
        d = ""
        while ((c = a.slice!(/./m)) != nil)
          d += c if c.is_a?(Integer)
        end
      end
    }
    return d ? d.to_i : nil
  end  
end  

之後就能使用 $data_weapons[N].mdfpl来获取该值了


mplit貌似不对。。。。

改成split以后,  错误: 未定义的 d

为什么啊。。。。









回复 支持 反对

使用道具 举报

Lv2.观梦者

天仙

梦石
0
星屑
640
在线时间
184 小时
注册时间
2008-4-15
帖子
5023

贵宾

2
发表于 2008-8-14 18:53:27 | 只看该作者
  1. class RPG::Weapon < RPG::BaseItem
  2.   def mdfpl
  3.     self.note.mplit(/[\r\n]+/).each { |line|
  4.       if line =~ /\[抗性 \d+\]/
  5.         a = line.mplit(/ /)[1]
  6.         d = ""
  7.         while ((c = a.slice!(/./m)) != nil)
  8.           d += c if c.is_a?(Integer)
  9.         end
  10.       end
  11.     }
  12.     return d ? d.to_i : nil
  13.   end  
  14. end  
复制代码

之後就能使用 $data_weapons[N].mdfpl来获取该值了
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-7-21 04:27

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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