[VX]-Aprender técnicas con equipos y objetos-[VX]

OP

~Doku

Banneado
Mensajes
1.024
Reacciones
0
Puntos
0
Ubicación
Mafia
Hola, aquí aporto este script que es bastante bueno.

Lo que hace es que al equiparte X arma o usar X objeto aprendas una magia, por ejemplo si me equipo "la espada del fuego" aprenderé "onda ignea".
Es un script muy bueno que le dará mas genialidad a sus juegos.

Aquí dejo el script:

Código:
#=================================================================
#  Skill Teaching Equipment & Items
#  Version 1.0
#  Author: modern algebra (rmrk.net)
#  Tradutor: ninjalegends
#  Date: January 27, 2008
#  tradução: Maio 20, 2009
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Instructions:
#     Coloque este script acima de Main. para configurar seu database, olhe a
#     sessão de configuração nas linhas 29, 66, e 97 
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ** RPG
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  coloque na sessão scripts adicionais, skill_id, para armas, armaduras, e items
#=================================================================

module RPG
#=================================================================
# ** Item
#=================================================================

class Item
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Skill ID
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def skill_id
    learn_skill = 0
    case @id
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * CONFIGURAÇÃO
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #  é muito facil configurar esse script. tudo que você prescisa fazer
    #  é escrever:
    #
    #     when <item ID>
    #       learn_skill = <skill_id>
    #
    #  para todo item que traga skills. para descobrir
    #  ID desse item ou skill é, olhar para o numero diretamente para a esquerda
    #  dos nome  no Database. aqui tem dois exemplos. pode
    #  deletar se quizer.
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    when 1 # Potion
      learn_skill = 1 # Heal
    when 2 # High Potion
      learn_skill = 69 # Poison Edge
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * FIM DA CONFIGURAÇÃO
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    end
    return learn_skill
  end
end  

#================================================================
# ** Armas
#================================================================

class Weapon
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Skill ID
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def skill_id
    learn_skill = 0
    case @id
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * CONFIGURAÇÃO
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #
    #     when <ID da arma>
    #       learn_skill = <skill_ID>
    #
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    when 1 # Bronze Sword
      learn_skill = 1 # Heal
    when 2 # Iron Sword
      learn_skill = 69 # Poison Edge
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * FIM DA CONFIGURAÇÃO
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    end
    return learn_skill
  end
end  

#=================================================================
# ** Armaduras
#=================================================================

class Armor
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Skill ID
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def skill_id
    learn_skill = 0
    case @id
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * CONFIGURAÇÃO
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    #
    #     when <ID da armadura>
    #       learn_skill = <skill_id>
    #
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    when 1 # Bronze Shield
      learn_skill = 1 # Heal
    when 2 # Iron Shield
      learn_skill = 69 # Poison Edge
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    # * FIM DA CONFIGURAÇÃO
    #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    end
    return learn_skill
  end
end
end

#==================================================================
# ** Game_Actor
#------------------------------------------------------------------------------
#  This class handles the actor. It's used within the Game_Actors class
#  ($game_actors) and refers to the Game_Party class ($game_party).
#==================================================================

class Game_Actor < Game_Battler
  #--------------------------------------------------------------------------
  # * Escolher Equipamento
  #     equip_type : tipo de equipamento
  #     id    : ID da arma ou armadura (se 0, equipamento removido)
  #--------------------------------------------------------------------------
  alias ma_skill_teaching_items_equipment_change change_equip
  def change_equip (equip_type, item, test = false)
    last_item = equips[equip_type]
    # Forget the skill from what was previously equipped
    unless test
      skill_id = last_item.nil? ? 0 : last_item.skill_id
      forget_skill (skill_id) if @unnatural_skills.include? (skill_id)
      @unnatural_skills.delete (skill_id)
    end
    # Run original method
    ma_skill_teaching_items_equipment_change (equip_type, item, test)
    unless test
      skill_id = item.nil? ? 0 : item.skill_id
      unless @skills.include? (skill_id) || skill_id == 0
        learn_skill (skill_id)
        @unnatural_skills.push (skill_id)
      end
    end
  end
  #--------------------------------------------------------------------------
  # * Setup
  #     actor_id : ID do actor
  #--------------------------------------------------------------------------
  alias ma_skill_teaching_items_actor_setup setup
  def setup (actor_id)
    @unnatural_skills = []
    # Run original method
    ma_skill_teaching_items_actor_setup (actor_id)
    for item in equips
      next if item.nil?
      skill_id = item.skill_id
      next if skill_id == 0 || @skills.include? (skill_id)
      @unnatural_skills.push (skill_id)
      learn_skill (skill_id)
    end
  end
end

#==============================================================================
# ** Game_Battler (Skill Teaching modification)
#------------------------------------------------------------------------------
#  This class deals with battlers. It's used as a superclass for the Game_Actor
#  and Game_Enemy classes.
#==============================================================================

class Game_Battler
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Item Test
  #      user : personagem que usa item
  #      item : o item que vai ser usado
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias ma_skill_teaching_items_test_item item_test
  def item_test (user, item)
    effective = ma_skill_teaching_items_test_item (user, item)
    if self.class != Game_Enemy
      effective |= [email protected]? (item.skill_id)
    end
    return effective
  end
  #--------------------------------------------------------------------------
  # * Application of Item Effects
  #     item : item
  #--------------------------------------------------------------------------
  alias ma_skill_teaching_items_effect_item item_effect
  def item_effect (user, item)
    # Run original method
    ma_skill_teaching_items_effect_item (user, item)
    if item.skill_id != 0 && self.class != Game_Enemy && [email protected]? (item.skill_id)
      @unnatural_skills.delete (item.skill_id)
      learn_skill (item.skill_id)
    end
  end
end

Para modificar que items harán que aprendas X técnica configuren esta parte del script:

when 1 # Potion
learn_skill = 1 # Heal
when 2 # High Potion
learn_skill = 69 # Poison Edge

Donde dice when a un lado aparece un numero, es la ID del objeto que usara para que se aprenda la tecnica y donde dice learn_skill = 1 # Heal es la ID de la técnica que aprenderá al usar el objeto, pueden agregar todos los que quieran.

Para las armas es en esta parte:

# * CONFIGURAÇÃO
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# when <ID da arma>
# learn_skill = <skill_ID>
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
when 1 # Bronze Sword
learn_skill = 1 # Heal
when 2 # Iron Sword
learn_skill = 69 # Poison Edge
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# * FIM DA CONFIGURAÇÃO
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Y se hace igual que con los objetos.

Espero que les sirva :D

Saludos.
 
Arriba Pie