Project1
标题:
请问一下怎么设置装备的穿戴等级?
[打印本页]
作者:
xfc2007x6
时间:
2013-7-21 23:00
标题:
请问一下怎么设置装备的穿戴等级?
RT,知道的请回复下,谢谢!
作者:
黄濑凉太
时间:
2013-7-22 14:26
LZ搜索一下会死啊,一下就找到了,使用方法:
在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
同理,定义装备能力值限制方法:
备注里写上[ATK n][DEF n][MAT n][MDF n][AGI n][LUK n]。
攻击 防御 魔攻 魔防 敏捷 幸运
若某项限制不写则没有装备限制。
代码:
#============================================================================
# 定义装备等级限制方法:在数据库装备备注里写上[LV n] ,LV后有空格,n为等级,
# 同理,定义装备能力值限制方法:
# 备注里写上[ATK n][DEF n][MAT n][MDF n][AGI n][LUK n]。
# 攻击 防御 魔攻 魔防 敏捷 幸运
# 若某项限制不写则没有装备限制。
# 注意这里限制的能力值是人物原始的能力值,不考虑装备、状态的影响,
# 但是考虑事件对能力值的影响。
#==============================================================================
#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
def param_limit(p_id)
return if p_id == 0 or p_id > 7
regexp_strings = ["", "LV", "ATK", "DEF", "MAT", "MDF", "AGI", "LUK"]
m = 0
regexp = /\[#{regexp_strings[p_id]} (\d+)\]/
self.note.split(/[\r\n]+/).each { |line|
m = $1.to_i if line =~ regexp
}
return m
end
#--------------------------------------------------------------------------
# ● 判断是否有要求
#--------------------------------------------------------------------------
def has_requirement?
for i in 1..7
return true if param_limit(i) > 0
end
return false
end
end
class Game_Actor < Game_Battler
#--------------------------------------------------------------------------
# ● 判断是否可以装备
# item : 物品
#--------------------------------------------------------------------------
alias original_equippable? equippable?
def equippable?(item)
return unless item
return true unless item.has_requirement?
return false if self.level < item.param_limit(1) #等级限制
for i in 2..7
return false if actor_param(i) < item.param_limit(i)
end
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
if item.has_requirement?
newdes += " 要求:" if(item.has_requirement?)
for i in 1..7
next if item.param_limit(i) == 0
limit_str = item.param_limit(i).to_s
newdes += i==1 ? Vocab.level_a : Vocab.param(i) + limit_str
end
end
@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 !o_equippable
return true if
[email protected]
?(item)
end
return o_equippable
end
#--------------------------------------------------------------------------
# ● 判断是否有效化
#--------------------------------------------------------------------------
def enable?(item)
return true unless item
return @actor.equippable?(item)
end
end
复制代码
来源:
http://rpg.blue/forum.php?mod=viewthread&tid=224028
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1