Project1
标题:
谁来帮我看这个脚本,等级限制出错了。
[打印本页]
作者:
7185819
时间:
2012-9-14 20:32
标题:
谁来帮我看这个脚本,等级限制出错了。
#============================================================================
# 定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
# 同理,定义装备能力值限制方法:
# 备注里写上[ATK n][DEF n][MAT n][MDF n][AGI n][LUK n]。
# 攻击 防御 魔攻 魔防 敏捷 幸运
# 若某项限制不写则没有装备限制。
# 注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
# 但是考虑事件对能力值的影响。
#==============================================================================
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
def lv_limit #物品要求最低等级
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[LV (\d+)\]/
}
return m
end
def atk_limit #物品要求最低个人攻击力
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[ATK (\d+)\]/
}
return m
end
def def_limit #物品要求最低个人防御力
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[DEF (\d+)\]/
}
return m
end
def mat_limit #物品要求最低个人魔法攻击
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[MAT (\d+)\]/
}
return m
end
def mdf_limit #物品要求最低个人魔法防御
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[MDF (\d+)\]/
}
return m
end
def agi_limit #物品要求最低个人敏捷性
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[AGI (\d+)\]/
}
return m
end
def luk_limit #物品要求最低个人幸运
m = 0
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ /\[LUK (\d+)\]/
}
return m
end
#--------------------------------------------------------------------------
# ● 判断是否有要求
#--------------------------------------------------------------------------
def has_requirement?
return true if lv_limit !=0
return true if atk_limit !=0
return true if def_limit !=0
return true if mat_limit !=0
return true if mdf_limit !=0
return true if agi_limit !=0
return true if luk_limit !=0
return false
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 判断是否可以装备
# item : 物品
#--------------------------------------------------------------------------
alias original_equippable? equippable?
def equippable?(item)
return unless item
return false if self.level < item.lv_limit #等级限制
return false if actor_param(2) < item.atk_limit
return false if actor_param(3) < item.def_limit
return false if actor_param(4) < item.mat_limit
return false if actor_param(5) < item.mdf_limit
return false if actor_param(6) < item.agi_limit
return false if actor_param(7) < item.luk_limit
return original_equippable?(item)
end
#--------------------------------------------------------------------------
# ● 计算角色能力值
#--------------------------------------------------------------------------
def actor_param(param_id)
t_p = param_base(param_id) + param_base(param_id)
return [t_p, param_max(param_id)].min
end
end
#==============================================================================
# ■ Window_Item
#------------------------------------------------------------------------------
# 物品画面、战斗画面、显示浏览物品的窗口。
#==============================================================================
class Window_ItemList < Window_Selectable
#--------------------------------------------------------------------------
# ● 更新帮助文本(自动显示使用物品的等级能力限制)
#--------------------------------------------------------------------------
def update_help
if item.nil?
@help_window.set_text("")
return
end
newdes = item.description
newdes += " 要求:" if(item.has_requirement?)
newdes += Vocab.level_a + item.lv_limit.to_s if item.lv_limit != 0
newdes += Vocab.param(2) + item.atk_limit.to_s if item.atk_limit != 0
newdes += Vocab.param(3) + item.def_limit.to_s if item.def_limit != 0
newdes += Vocab.param(4) + item.mat_limit.to_s if item.mat_limit != 0
newdes += Vocab.param(5) + item.mdf_limit.to_s if item.mdf_limit != 0
newdes += Vocab.param(6) + item.agi_limit.to_s if item.agi_limit != 0
newdes += Vocab.param(7) + item.luk_limit.to_s if item.luk_limit != 0
@help_window.set_text(newdes)
end
end
class Window_EquipItem < Window_ItemList
#--------------------------------------------------------------------------
# ● 判断是否有效化
#--------------------------------------------------------------------------
alias original_include? include?
def include?(item)
o_equippable = original_include?(item)
if
[email protected]
?(item) && !o_equippable
return false
elsif
[email protected]
?(item)
return true
else
return false
end
end
#--------------------------------------------------------------------------
# ● 判断是否有效化
#--------------------------------------------------------------------------
def enable?(item)
return @actor.equippable?(item)
end
end
复制代码
就这个!!!!是可以限制物品的等级使用,可是对于换装备来说 无法看到装备了!求帮助!
作者:
fxwd
时间:
2012-9-14 22:11
是不是后觉大大的脚本?如果不是建议你用那个,如果是那么就是脚本冲突啊
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1