O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

Equipamento por Nível

Iniciado por LoboShow, 06/02/2013 às 16:57

Equipamento por Nível

Compativel com: RMVX
Compatibilidade: ?
Facilidade de uso: fácil
Lag gerado: nenhum[?]

[box class=titlebg]
Para que serve o script
[/box]
Esse script faz que equipamentos só sejam equipados após um certo nível do char.
- Ele esconde da lista de equipamentos as armas e armaduras com nível maior que o nível do char.
- Ele automaticamente desequipa o item se o nível do char baixar para menos que o nível do item.
- Ele faz uma verificação ao rodar o método setup de um char (que define ele para o Nível Inicial).

[box class=titlebg]
Instruções
[/box]
- Adicione-o à seção Scripts Adicionais ou Materials do Editor de Scripts.
- Coloque no histórico das armas e armaduras o texto: [level=X], onde X é o nível necessário para equipar arma ou armadura.

[box class=titlebg]
Download
[/box]
#===============================================================================
# Equipamento por Nível
#-------------------------------------------------------------------------------
# Criador: João B
# - O script atribui um nível às armas e armaduras.
# - Se o nível do char for menor que o nível da arma ou armadura, o script não
#   deixa o equipamento ser equipado.
#===============================================================================
#===============================================================================
# Módulo Tag
#===============================================================================
module Tag
  def self.has_note?(data)
    return (data.is_a?(RPG::Item) or data.is_a?(RPG::Weapon) or data.is_a?(RPG::Armor) or
            data.is_a?(RPG::Skill) or data.is_a?(RPG::Enemy) or data.is_a?(RPG::State))
  end    
  def self.get(data, tag, default)
    return default.to_s unless self.has_note?(data)
    note = data.note
    note.scan(/\[#{tag}=(.+?)\]/)
    if $1 != 0
      return $1.to_s
    else
      return default.to_s
    end
  end
end
#===============================================================================
# Classe Window_EquipItem
#===============================================================================
class Window_EquipItem < Window_Item
  alias equip_level_include? include?
  def include?(item)
    level_necessary = Tag.get(item, "level", 0).to_i
    return (equip_level_include?(item) and @actor.level >= level_necessary)
  end
end
#===============================================================================
# Classe Game_Actor
#===============================================================================
class Game_Actor
  alias equip_level_setup setup
  alias equip_level_level_down level_down
  def setup(id)
    equip_level_setup(id)
    for item in weapons
      level_necessary = Tag.get(item, "level", 0).to_i
      discard_equip(item) if @level < level_necessary
    end
    for item in armors
      level_necessary = Tag.get(item, "level", 0).to_i
      discard_equip(item) if @level < level_necessary
    end
  end
  def level_down
    equip_level_level_down
    for item in weapons
      level_necessary = Tag.get(item, "level", 0).to_i
      discard_equip(item) if @level < level_necessary
    end
    for item in armors
      level_necessary = Tag.get(item, "level", 0).to_i
      discard_equip(item) if @level < level_necessary
    end
  end
end
#===============================================================================
# Fim do Script
#===============================================================================


[box class=titlebg]
Créditos e Avisos
[/box]
Criador: João B