Project1
标题:
VX物品和装备等级能力限制系统v1_2 转职时出错
[打印本页]
作者:
企鹅达达
时间:
2010-8-31 20:26
标题:
VX物品和装备等级能力限制系统v1_2 转职时出错
本帖最后由 企鹅达达 于 2010-8-31 22:06 编辑
item_and_equip_paam_limit_sample.rar
(248.05 KB, 下载次数: 237)
2010-8-31 20:34 上传
点击文件名下载附件
#============================================================================
# BY drgdrg (感谢snstar2006提供的提取[]内容代码)
#定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
#同理,定义装备能力值限制方法:备注里写上[ATK n][DEF n][SPI n][AGI n]。
#若某项限制不写则没有装备限制。
#注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
#但是考虑事件对能力值的影响。
#==============================================================================
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
def LVlimit #物品要求最低等级
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[LV (\d+)\]/
}
return m
end
def ATKlimit #物品要求最低个人攻击力
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[ATK (\d+)\]/
}
return m
end
def DEFlimit #物品要求最低个人防御力
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[DEF (\d+)\]/
}
return m
end
def SPIlimit #物品要求最低个人精神力
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[SPI (\d+)\]/
}
return m
end
def AGIlimit #物品要求最低个人敏捷性
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[AGI (\d+)\]/
}
return m
end
end
#==============================================================================
# ■ Game_Actor
#------------------------------------------------------------------------------
# 处理角色的类。本类在 Game_Actors 类 ($game_actors)
# 的内部使用、Game_Party 类请参考 ($game_party) 。
#==============================================================================
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 判断是否可以装备
# item : 物品
#--------------------------------------------------------------------------
def equippable?(item)
return false if self.level < item.LVlimit #等级限制
return false if actor.parameters[2, @level] + @atk_plus < item.ATKlimit #攻击力限制
return false if actor.parameters[3, @level] + @def_plus < item.DEFlimit #防御力限制
return false if actor.parameters[4, @level] + @spi_plus < item.SPIlimit #精神力限制
return false if actor.parameters[5, @level] + @agi_plus < item.AGIlimit #敏捷性限制
if item.is_a?(RPG::Weapon)
return self.class.weapon_set.include?(item.id)
elsif item.is_a?(RPG::Armor)
return false if two_swords_style and item.kind == 0
return self.class.armor_set.include?(item.id)
end
return false
end
end
#==============================================================================
# ■ Window_Item
#------------------------------------------------------------------------------
# 物品画面、战斗画面、显示浏览物品的窗口。
#==============================================================================
class Window_Item < Window_Selectable
#--------------------------------------------------------------------------
# ● 更新帮助文本(自动显示使用物品的等级能力限制)
#--------------------------------------------------------------------------
def update_help
if item != nil
newdes = item.description
newdes += " 要求:" if(item.LVlimit !=0 or item.ATKlimit !=0 or item.DEFlimit != 0 or item.SPIlimit != 0 or item.AGIlimit != 0)
newdes += " LV" + item.LVlimit.to_s if item.LVlimit != 0
newdes += " 攻" + item.ATKlimit.to_s if item.ATKlimit != 0
newdes += " 防" + item.DEFlimit.to_s if item.DEFlimit != 0
newdes += " 精" + item.SPIlimit.to_s if item.SPIlimit != 0
newdes += " 敏" + item.AGIlimit.to_s if item.AGIlimit != 0
@help_window.set_text(newdes)
else
@help_window.set_text("")
end
end
end
复制代码
原发布页里面的脚本就是这么乱的……所以我把里面的范例发上来了,设置一个转职的事件就会发现错误了,问题出在哪里?应该怎么改呢?
作者:
八云紫
时间:
2010-8-31 20:27
脚本一看乱糟糟的,去找发布帖重新下载一个吧~~
作者:
八云紫
时间:
2010-8-31 20:40
这个可不行, 这么乱的脚本要分段很痛苦啊~~~
作者:
六祈
时间:
2010-8-31 20:47
本帖最后由 六祈 于 2010-8-31 20:50 编辑
转职时自动卸除新职业不可装备的装备,判定每一件装备时没有考虑不存在的情况,于是bug
脚本【!装备要求等级、能力值】69行def equippable?(item)后跟上
return true if item == nil
复制代码
即可
作者:
qw6412018
时间:
2011-9-26 11:15
4楼,我爱死你了,急需中,木马~~一个先
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1