赞 | 1 |
VIP | 16 |
好人卡 | 23 |
积分 | 0 |
经验 | 49509 |
最后登录 | 2016-1-9 |
在线时间 | 2459 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 48
- 在线时间
- 2459 小时
- 注册时间
- 2011-12-18
- 帖子
- 1484
|
把下面两段脚本插到main脚本上:- #==============================================================================
- # ■ [VX] 读取rmvx备注栏
- # [VX] ReadNote
- #----------------------------------------------------------------------------
- # 使用说明:
- # 【例】在vx数据库比如1号物品的备注栏里写: 耐久度 = 10
- # 读取时使用: p $data_items[1].read_note('耐久度')
- # 几点注意:
- # ① 支持汉字,英文忽略大小写
- # ② 等号右边遵循ruby语法格式,例如:
- # test1 = 1 #=> 1
- # test2 = "a" #=> "a"
- # test3 = true #=> true
- # test4 = [1,2,3] #=> [1,2,3]
- # test5 = {"orz"=>1} #=> {"orz"=>1}
- # ③ 等号忽略空格,以下均正确:
- # test = nil; test= nil; test =nil; test=nil
- #----------------------------------------------------------------------------
- # 更新作者: 沉影不器
- # 许可协议: FSL
- # 项目版本: 2.02.1001
- # 引用网址: http://rpg.blue/thread-99474-1-1.html
- #----------------------------------------------------------------------------
- # - *2.02.1001* (2010-10-01) By 沉影不器
- # *修复引用方法带Binding的错误
- #
- # - *2.01.0806* (2010-08-06) By 沉影不器
- # *完全用eval执行文本,进一步简化代码
- #
- # - *2.00.0729* (2010-07-29) By 沉影不器
- # *改用eval执行赋值内容,支持浮点.数组.哈希等
- # *强制忽略大小写
- # *简化脚本
- #
- # - *1.11.0824* (2008-08-24) By 沉影不器
- # *修正rmvx英文帮助带来的类名错误
- #
- # - *1.10.0821* (2008-08-21) By 沉影不器
- # *扩展到支持rmvx数据库内所有带备注栏的选项
- # *改了一下算法,使备注栏的注释也同ruby语法一样忽略空格
- #
- # - *1.02.0819* (2008-08-19) By 沉影不器
- # *直接成为RPG::BaseItem内一个函数,简化使用方法
- #
- # - *1.00.0818* (2008-08-18) By 沉影不器
- # *初版
- #==============================================================================
- $fscript = {} if $fscript == nil
- $fscript["ReadNote"] = "2.02.1001"
- #==============================================================================
- # ■ RPG
- #==============================================================================
- module RPG
- #=============================================================================
- # □ ReadNote
- #=============================================================================
- module ReadNote
- def self.read(str, section, mismatch = nil)
- str.each_line do |line|
- ## 不希望忽略大小写,则删掉下一行最后一个i
- eval("#{line}; return #{section}") if line =~ /^\s*#{section}\s*=/i
- end
- return mismatch
- end
- end
- #=============================================================================
- # ■ BaseItem
- #=============================================================================
- class BaseItem
- #-------------------------------------------------------------------------
- # ○ 读取rmvx备注栏指定字段
- # section : 字段名
- # mismatch : 未匹配时的返回值
- #-------------------------------------------------------------------------
- def read_note(section, mismatch = nil)
- ReadNote.read(self.note, section, mismatch)
- end
- end
- #=============================================================================
- # ■ Enemy
- #=============================================================================
- class Enemy
- def read_note(section, mismatch = nil)
- ReadNote.read(self.note, section, mismatch)
- end
- end
- #=============================================================================
- # ■ State
- #=============================================================================
- class State
- def read_note(section, mismatch = nil)
- ReadNote.read(self.note, section, mismatch)
- end
- end
- end
复制代码- =begin
- 额外增加maxhp百分比的方法:在备注栏中写上 生命加成 = 100
- 意思是最大生命值增加100%
- 其它属性也是如此,关键字看下边''内的汉字。
- =end
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ● 获取基本体力最大值
- #--------------------------------------------------------------------------
- def base_maxhp
- n = actor.parameters[0, @level]
- for item in equips.compact do
- if item.read_note('生命加成') != nil
- e_maxhp = item.read_note('生命加成')
- n = n + (n*(e_maxhp/100.0)).round
- end
- end
- return n
- end
- #--------------------------------------------------------------------------
- # ● 获取基本体力最大值
- #--------------------------------------------------------------------------
- def base_maxmp
- n = actor.parameters[1, @level]
- for item in equips.compact do
- if item.read_note('魔力加成') != nil
- e_maxmp = item.read_note('魔力加成')
- n = n + (n*(e_maxmp/100.0)).round
- end
- end
- return n
- end
- #--------------------------------------------------------------------------
- # ● 获取基本攻击力
- #--------------------------------------------------------------------------
- def base_atk
- n = actor.parameters[2, @level]
- for item in equips.compact do n += item.atk
- if item.read_note('攻击加成') != nil
- e_atk = item.read_note('攻击加成')
- n = n + (actor.parameters[2, @level]*(e_atk/100.0)).round
- end
- end
- return n
- end
- #--------------------------------------------------------------------------
- # ● 获取基本防御力
- #--------------------------------------------------------------------------
- def base_def
- n = actor.parameters[3, @level]
- for item in equips.compact do n += item.def
- if item.read_note('防御加成') != nil
- e_def = item.read_note('防御加成')
- n = n + (actor.parameters[3, @level]*(e_def/100.0)).round
- end
- end
- return n
- end
- #--------------------------------------------------------------------------
- # ● 获取基本精神力
- #--------------------------------------------------------------------------
- def base_spi
- n = actor.parameters[4, @level]
- for item in equips.compact do n += item.spi
- if item.read_note('精神加成') != nil
- e_spi = item.read_note('精神加成')
- n = n + (actor.parameters[4, @level]*(e_spi/100.0)).round
- end
- end
- return n
- end
- #--------------------------------------------------------------------------
- # ● 获取基本敏捷
- #--------------------------------------------------------------------------
- def base_agi
- n = actor.parameters[5, @level]
- for item in equips.compact do n += item.agi
- if item.read_note('敏捷加成') != nil
- e_agi = item.read_note('敏捷加成')
- n = n + (actor.parameters[5, @level]*(e_agi/100.0)).round
- end
- end
- return n
- end
- end
复制代码 |
评分
-
查看全部评分
|