以下引用yangff于2008-8-17 23:24:27的发言:
昨天我看到了他:
#==============================================================================
# ■ 装备等级限制
#------------------------------------------------------------------------------
# 装备的备注写上[等级 X]
#==============================================================================
module RPG
class Weapon < BaseItem
def equip_level
@note.split(/[\r\n]+/).each { |line|
if line =~ /\[(level|等級|等级) \d+\]/
@a = line.split(/ /)[1]
@d = ""
while ((c = @a.slice!(/./m)) != nil)
@d += c if c != "]"
end
end;}
return @d != "" ? @d.to_i : 0
end
end
class Armor < BaseItem
def equip_level
@note.split(/[\r\n]+/).each { |line|
if line =~ /\[(level|等級|等级) \d+\]/
@a = line.split(/ /)[1]
@d = ""
while ((c = @a.slice!(/./m)) != nil)
@d += c if c != "]"
end
end;}
return @d != "" ? @d.to_i : 0
end
end
end
class Window_EquipItem < Window_Item
def include?(item)
return true if item == nil
if @equip_type == 0
return false unless item.is_a?(RPG::Weapon) && @actor.level >= item.equip_level
else
return false unless item.is_a?(RPG::Armor) && @actor.level >= item.equip_level
return false unless item.kind == @equip_type - 1
end
return @actor.equippable?(item)
end
end
以下引用越前リョーマ于2008-8-23 13:32:09的发言:
什么时候会自动显示需要几级就好了……
就不用手动写了……
以下引用drgdrg于2008-8-24 11:10:15的发言:
以下引用越前リョーマ于2008-8-23 13:32:09的发言:
什么时候会自动显示需要几级就好了……
就不用手动写了……
改好了。。。。。谢谢支持
以下引用shinliwei于2008-8-24 18:20:09的发言:
有 攻击力限制 精神力限制 和 敏捷力限制的吗
以下引用shinliwei于2008-8-24 18:20:09的发言:
有 攻击力限制 精神力限制 和 敏捷力限制的吗
以下引用shinliwei于2008-8-24 18:20:09的发言:
有 攻击力限制 精神力限制 和 敏捷力限制的吗
以下引用沉影不器于2008-8-24 16:21:25的发言:
那啥...需要规避一些情况:
避免生成"要求: LV 0"的情况
以下引用shinliwei于2008-8-30 19:39:30的发言:
如果 要 弄个 骑术 的技能,学会了就能装备战马 用事件好弄不
以下引用木葬枫于2008-8-29 10:28:23的发言:
支持下·······
有考虑兼容性的脚本写手是一个好写手········
现在发布完了,是要手动编辑改成“发布完毕”吗?
以下引用风雪优游于2008-9-2 11:23:23的发言:
一般这个是斑竹动手修改……自己改也可以。
可以弄成不裸身的属性吗?
以下引用沉影不器于2008-9-2 13:52:51的发言:
Game_Battler有个item_effective?函数,我们可以为Game_Actor也添加def item_effective?
用来限制普通物品
以下引用rivergo于2008-9-2 14:20:34的发言:
這腳本似乎跟裝備擴張的相衝@"@
以下引用龙轩于2008-9-5 20:37:33的发言:
不客气的收了··谢谢·这对我很有用````不过如果说要有一定技能的那?
以下引用shinliwei于2008-9-27 23:42:46的发言:
还是没法用啊!
#============================================================================
#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 += " 等级 " + 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(item.description)
end
end
end
end
class Window_Equip < 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 += " 等级 " + 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(item.description)
end
end
end
end
class Window_ShopBuy < 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 += " 等级 " + 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(item.description)
end
end
end
end
以下引用龍狼于2008-10-11 15:58:46的发言:
拜托作者drgdrg一件事……发布脚本时请在该换行处换行好吗……我自己按了n多回车才弄好的……还有,给你微微修改了一下,解决了没有要求时简介消失情况,并且在装备和商店里也能看见简介里有限制:
以下引用drgdrg于2008-10-12 1:42:11的发言:
以下引用龍狼于2008-10-11 15:58:46的发言:
拜托作者drgdrg一件事……发布脚本时请在该换行处换行好吗……我自己按了n多回车才弄好的……还有,给你微微修改了一下,解决了没有要求时简介消失情况,并且在装备和商店里也能看见简介里有限制:
脚本是哪里没有换行?
没有要求时简介是显示物品本身的简介呀,我试了一下可以显示啊
商店显示限制那个很感谢你的提出,
因为怕大家频繁换脚本我就做成插件算了……
嫌脚本散件页数太多的话可以自己把插件脚本粘帖到原脚本下面都行
else @help_window.set_text(item.description)
else @help_window.set_text("")
欢迎光临 Project1 (https://rpg.blue/) | Powered by Discuz! X3.1 |