赞 | 0 |
VIP | 30 |
好人卡 | 4 |
积分 | 1 |
经验 | 6446 |
最后登录 | 2022-4-23 |
在线时间 | 156 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 84
- 在线时间
- 156 小时
- 注册时间
- 2009-8-5
- 帖子
- 533
|
本帖最后由 传说中di 于 2009-8-12 21:31 编辑
- #---------------------------------------------------------------------------------
- #需要能力值才能装备 改编自到达一定等级才能装备的武器和防具 By凌冰
- #界面美化By yzlsym
- #用法:在武器、防具的说明里添加LV等级(后面的等级写个数字)STR力量(后面的力量写个数字)
- #DEX灵巧(后面的灵巧写个数字)AGI速度(后面的速度写个数字)INT魔力(后面的魔力写个数字)
- #可以空缺,空缺项默认为1
- #建议和升级加点脚本配合使用
- #---------------------------------------------------------------------------------
- module RPG
- class Weapon
- def level
- return 1 if @name.split(/W/)[1] == nil
- return @name.split(/W/)[1]
- end
- def str
- return 1 if @name.split(/W/)[2] == nil
- return @name.split(/W/)[2]
- end
- def dex
- return 1 if @name.split(/W/)[3] == nil
- return @name.split(/W/)[3]
- end
- def agi
- return 1 if @name.split(/W/)[4] == nil
- return @name.split(/W/)[4]
- end
- def int
- return 1 if @name.split(/W/)[5] == nil
- return @name.split(/W/)[5]
- end
- end
- class Armor
- def level
- return 1 if @name.split(/A/)[1] == nil
- return @name.split(/A/)[1]
- end
- def str
- return 1 if @name.split(/A/)[2] == nil
- return @name.split(/A/)[2]
- end
- def dex
- return 1 if @name.split(/A/)[3] == nil
- return @name.split(/A/)[3]
- end
- def agi
- return 1 if @name.split(/A/)[4] == nil
- return @name.split(/A/)[4]
- end
- def int
- return 1 if @name.split(/A/)[5] == nil
- return @name.split(/A/)[5]
- end
- end
- end
- class Game_Actor < Game_Battler
- #--------------------------------------------------------------------------
- # ● 可以装备判定
- # item : 物品
- #--------------------------------------------------------------------------
- def equipable?(item)
- # 武器的情况
- if item.is_a?(RPG::Weapon)
- # 包含当前的职业可以装备武器的场合
- if $data_classes[@class_id].weapon_set.include?(item.id) and item.level.to_i<=@level
- if item.str.to_i<= str and item.dex.to_i<= dex and item.agi.to_i<= agi and item.int.to_i<= int
- return true
- end
- end
- end
- # 防具的情况
- if item.is_a?(RPG::Armor)
- # 包含当前的职业可以装备防具的场合
- if $data_classes[@class_id].armor_set.include?(item.id) and item.level.to_i<=level
- if item.str.to_i<= str and item.dex.to_i<= dex and item.agi.to_i<= agi and item.int.to_i<= int
- return true
- end
- end
- end
- return false
- end
- end
- #==============================================================================
- # ■ Window_EquipItem
- #------------------------------------------------------------------------------
- # 装备画面、显示浏览变更装备的候补物品的窗口。
- #==============================================================================
- class Window_EquipItem < Window_Selectable
- #--------------------------------------------------------------------------
- # ● 项目的描绘
- # index : 项目符号
- #--------------------------------------------------------------------------
- def draw_item(index)
- item = @data[index]
- x = 4 + index % 2 * (288 + 32)
- y = index / 2 * 32
- case item
- when RPG::Weapon
- number = $game_party.weapon_number(item.id)
- #----------------------------------#
- if @actor.equipable?($data_weapons[item.id])
- self.contents.font.color = text_color(item.name_color)
- else
- self.contents.font.color = disabled_color
- end
- #----------------------------------#
- when RPG::Armor
- number = $game_party.armor_number(item.id)
- #----------------------------------#
- if @actor.equipable?($data_armors[item.id])
- self.contents.font.color = text_color(item.name_color)
- else
- self.contents.font.color = disabled_color
- end
- #----------------------------------#
- end
- bitmap = RPG::Cache.icon(item.icon_name)
- self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24))
- self.contents.draw_text(x + 28, y, 212, 32, item.name, 0)
- self.contents.draw_text(x + 240, y, 16, 32, ":", 1)
- self.contents.draw_text(x + 256, y, 24, 32, number.to_s, 2)
- end
- end
- class Scene_Equip
- #--------------------------------------------------------------------------
- # ● 刷新画面 (物品窗口被激活的情况下)
- #--------------------------------------------------------------------------
- def update_item
- # 按下 B 键的情况下
- if Input.trigger?(Input::B)
- # 演奏取消 SE
- $game_system.se_play($data_system.cancel_se)
- # 激活右侧窗口
- @right_window.active = true
- @item_window.active = false
- @item_window.index = -1
- return
- end
- # 按下 C 键的情况下
- if Input.trigger?(Input::C)
- # 获取物品窗口现在选择的装备数据
- item = @item_window.item
- #----------------------------------#
- unless item.nil?
- unless @actor.equipable?($data_weapons[item.id])
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- unless @actor.equipable?($data_armors[item.id])
- # 演奏冻结 SE
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- end
- #----------------------------------#
- # 演奏装备 SE
- $game_system.se_play($data_system.equip_se)
- # 变更装备
- @actor.equip(@right_window.index, item == nil ? 0 : item.id)
- # 再生成右侧窗口、物品窗口的内容
- @right_window.refresh
- @item_window.refresh
- @item_window.index = -1
- # 激活右侧窗口
- @right_window.active = true
- @item_window.active = false
- return
- end
- end
- end
复制代码 在装备说明后面w100#等级 |
|