| 
 
| 赞 | 0 |  
| VIP | 30 |  
| 好人卡 | 4 |  
| 积分 | 1 |  
| 经验 | 6446 |  
| 最后登录 | 2022-4-23 |  
| 在线时间 | 156 小时 |  
 Lv1.梦旅人 
	梦石0 星屑84 在线时间156 小时注册时间2009-8-5帖子533 | 
| 本帖最后由 传说中di 于 2009-8-12 21:31 编辑 
 在装备说明后面w100#等级复制代码#---------------------------------------------------------------------------------
#需要能力值才能装备 改编自到达一定等级才能装备的武器和防具 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
 | 
 |