Project1
标题:
如何让准备备注写能给准备添加百分比的属性?
[打印本页]
作者:
一流浪人
时间:
2013-3-16 22:05
标题:
如何让准备备注写能给准备添加百分比的属性?
如何让准备备注写能给准备添加百分比的属性?
作者:
一流浪人
时间:
2013-3-16 22:36
是准备 包括武器和准备那个备注添加武器或者准备的属性百分比 例如攻击10%
作者:
a364774426
时间:
2013-3-17 17:42
把下面两段脚本插到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
复制代码
作者:
一流浪人
时间:
2013-3-17 18:52
a364774426 发表于 2013-3-17 17:42
这不是百分比,攻击加成 = 1000 等于=10 而不是10% ……
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1