Mundo Maker
¡Bienvenid@ a Mundo Maker!

¿Quieres aprender todo sobre el RPG Maker?



Regístrate y forma parte de Mundo Maker.

Skill Teaching Equipment & Items

Ver el tema anterior Ver el tema siguiente Ir abajo

RPG Maker VX Skill Teaching Equipment & Items

Mensaje por Demyx09 el 2011-01-26, 13:49

Con este scrip puedes añadirle alguna habilidad(magia) a un Arma Item o armadura.

Como usar:
Tenemos una espada de fuego entonces queremos que al tener equipada esta espada aprendas la habilidad Fuego(solo mientras esta equipada) en comentarios de la espada ponemos:

Código:
\ls[59]

59 es la ID de la Habilidad en este caso fuego.

tambien se puede agregar algun requerimiento de Nivel

Código:
\ls[59,7]

si no esta en el nivel 7 o mayor no tendra la habilidad.

Script
Spoiler:
Código:
#==============================================================================
#  Skill Teaching Equipment & Items
#  Version 2.0b
#  Author: modern algebra (rmrk.net)
#  Date: February 20, 2010
#~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Instructions:
#    Insert this script just above Main.
#
#    To configure this script, merely go into the item, weapon, or armor in the
#  database. In the Notes Field, put in this code:
#
#        \ls[skill_id, level_min]
#
#      where skill_id is the ID of the skill you want the item to teach and
#    level_min is optional and makes it so that the skill the item teaches
#    is only taught if the actor is at least that level. If it's left blank,
#    it is assumed that there is no level requirement.

#    You can put in as many of these as you like, so if, for example, an item
#  has this in it's notes:
#
#      \ls[5]
#      \ls[8, 7]
#
#    Then that item would teach skill 5 no matter what level the actor is, and
#  once the actor reaches level 7 will teach skill 8. The script will take
#  every instance of that code regardless of what else is in the Note Field
#==============================================================================
# ** RPG::BaseItem
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#    Summary of Changes:
#      new method - skill_ids
#==============================================================================

class RPG::BaseItem
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Skill IDs
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  def skill_ids
    # Only works for Item, Weapon, and Armor
    return if self.class == RPG::Skill
    learn_skills = []
    # Dissect Note
    text = self.note.dup
    while text[/\\ls\[(\w+),*\s*(\d*?)\]/i] != nil
      text.sub! (/\\ls\[(\w+),*\s*(\d*?)\]/i) { '' }
      learn_skills.push ([$1.to_i, $2.to_i])
    end
    return learn_skills
  end
end 

#==============================================================================
# ** Game_Actor
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    aliased methods - change_equip, setup, level_up
#==============================================================================

class Game_Actor < Game_Battler
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Change Equipment
  #    equip_type : type of equipment
  #    id    : weapon or armor ID (If 0, remove equipment)
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias ma_skill_teaching_items_equipment_change change_equip
  def change_equip (equip_type, item, test = false)
    unless test
      last_item = equips[equip_type]
      # Forget the skills from what was previously equipped
      skill_ids = last_item.nil? ? [] : last_item.skill_ids
      skill_ids.each { |skill_id|
        forget_skill (skill_id[0]) if @unnatural_skills.include? (skill_id[0])
        @unnatural_skills.delete (skill_id[0])
      }
    end
    # Run original method
    ma_skill_teaching_items_equipment_change (equip_type, item, test)
    unless test
      last_item = equips[equip_type]
      # Learn the skills from current_equipment
      skill_ids = last_item.nil? ? [] : last_item.skill_ids
      skill_ids.each { |skill_id|
        unless skill_learn? ($data_skills[skill_id[0]]) || self.level < skill_id[1]
          @unnatural_learning = true
          learn_skill (skill_id[0])
          @unnatural_learning = false
        end
      }
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Setup
  #    actor_id : actor ID
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  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?
      item.skill_ids.each { |skill_id|
        next if skill_learn? ($data_skills[skill_id[0]]) || self.level < skill_id[1]
          @unnatural_learning = true
          learn_skill (skill_id[0])
          @unnatural_learning = false
      }
    end
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Level Up
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias modalg_skl_teacher_equip_actor_lvlup level_up
  def level_up
    modalg_skl_teacher_equip_actor_lvlup
    # Check Equipment and learn skills if not already learned
    equips.each { |item|
      next if item == nil
      item.skill_ids.each { |skill_id|
        unless skill_learn? ($data_skills[skill_id[0]]) || self.level < skill_id[1]
          @unnatural_learning = true
          learn_skill (skill_id[0])
          @unnatural_learning = false
        end
      }
    }
  end
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Learn Skill
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  alias ma_lrnskll_eqpmnt_8ik2 learn_skill
  def learn_skill (skill_id, *args)
    if @unnatural_learning
      @unnatural_skills.push (skill_id) unless @unnatural_skills.include? (skill_id)
    elsif skill_learn? (skill_id)
      @unnatural_skills.delete (skill_id)
    end
    ma_lrnskll_eqpmnt_8ik2 (skill_id, *args)
  end
end

#==============================================================================
# ** Game_Battler (Skill Teaching modification)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#  Summary of Changes:
#    aliased methods - item_test, item_effect
#==============================================================================

class Game_Battler
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # * Item Test
  #      user : person using item
  #      item : the item being used
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  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
      item.skill_ids.each { |skill_id|
        effective |= !skill_learn? ($data_skills[skill_id[0]]) && self.level > skill_id[1]
      }
    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)
    item.skill_ids.each { |skill_id|
      learn_skill (skill_id[0]) if self.class != Game_Enemy && self.level > skill_id[1]
    }
  end
end


Creditos a:
Modern algebra

Demyx09
Soñador
Soñador

0/3

Créditos 204

Gracias : 2

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Clark-CLK el 2011-01-26, 14:16

Parece bueno el script.
Pero. ¿Si queremos que en vez de tener la espada equipada sea un arco, sin cambiar de ID la espada como lo hacemos?
Es una pequeña duda nada más. ¿Puedes ayudarme, no?^

Me gustó el aporte.

Wong Wong!!
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1346

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Demyx09 el 2011-01-26, 14:37

@Clark-CLK escribió:Parece bueno el script.
Pero. ¿Si queremos que en vez de tener la espada equipada sea un arco, sin cambiar de ID la espada como lo hacemos?
Es una pequeña duda nada más. ¿Puedes ayudarme, no?^

Me gustó el aporte.

Wong Wong!!

mmm no entiendo muy bien tu duda.. quieres agregarle a otra arma esa misma habilidad? xD
solo le pones esto
Código:
\ls[59]

a cualquier arma..

Demyx09
Soñador
Soñador

0/3

Créditos 204

Gracias : 2

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Clark-CLK el 2011-01-26, 14:41

No entiendo.
Por ejemplo, yo tengo la espada (con la habilidad por defecto) en el ID 26 (me lo invento)
Si quiero ponerle la habilidad 52 a un arco que tiene de ID 38,
¿Como lo hago?
Me parece que antes no me expresé bien.

Wong Wong!!
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1346

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Demyx09 el 2011-01-26, 14:50

@Clark-CLK escribió:No entiendo.
Por ejemplo, yo tengo la espada (con la habilidad por defecto) en el ID 26 (me lo invento)
Si quiero ponerle la habilidad 52 a un arco que tiene de ID 38,
¿Como lo hago?
Me parece que antes no me expresé bien.

Wong Wong!!

mmmmmmm

en los comentarios de las armas.. mira por ejemplo

Espada en comentarios pones:
Código:
\ls[1]

Arco en comentarios del arco pones:
Código:
\ls[2]

Lanza en comentarios de la lanza pones:
Código:
\ls[3]

esto quedaria

Espada habilidad ID 1
Arco hablidad ID 2
Lanza habilidad ID 3



creo que eso era xD

Demyx09
Soñador
Soñador

0/3

Créditos 204

Gracias : 2

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Clark-CLK el 2011-01-26, 15:13

Sep, era eso, recien me fijo que es para VX.
¿Funciona tambien para el maker XP?

Si no ya me las arreglaré.

Buen aporte.

wong wong!!
avatar
Clark-CLK
Veterano
Veterano

0/3

Créditos 1346

Gracias : 3

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Shirono el 2011-01-26, 23:01

Che! estan re utiles estos scripts demy xD
Ya mismo los uso a los tres, te felicito por tus descubrimientos!
Saludos n.n
avatar
Shirono
Principiante
Principiante

0/3

Créditos 438

Gracias : 2

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por SrBestia el 2015-07-17, 00:37

Yo tuve un problema con esto, no logro hacerlo funcionar, me tira este error:



Yo estoy usando el maker con la Victor Engine (por el sistema de Materias de FFVII y la iluminación), ¿podría ser ese el problema? ¿Cómo lo hago funcionar?
Lo necesito D:
jaja
avatar
SrBestia
Iniciado
Iniciado

0/3

Créditos 2

Gracias : 2

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Bleuw el 2015-07-17, 01:00

El problema es, básicamente, que es un script para VX y no para VX Ace, que es el que parece que usás si no me equivoco, tomando en cuenta los scripts de Victor que ustilizás, porque por lo que sé hio muy pocos o ninguno para VX. Por lo que a menos que sea convertido por alguien que sepa hacerlo, te va a tirar error siempre.

Por otro lado, fijate que el tema es muy viejo antes de postear, capaz esta gente ni se conecta más. Si tenés duda siempre podés abrir un tema nuevo en lugar de revivir uno viejo.

Saludos.
avatar
Bleuw
Aventurero
Aventurero

0/3

Créditos 2033

Gracias : 114

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por SrBestia el 2015-07-17, 07:19

@Bleuw escribió:El problema es, básicamente, que es un script para VX y no para VX Ace, que es el que parece que usás si no me equivoco, tomando en cuenta los scripts de Victor que ustilizás, porque por lo que sé hio muy pocos o ninguno para VX. Por lo que a menos que sea convertido por alguien que sepa hacerlo, te va a tirar error siempre.

Por otro lado, fijate que el tema es muy viejo antes de postear, capaz esta gente ni se conecta más. Si tenés duda siempre podés abrir un tema nuevo en lugar de revivir uno viejo.

Saludos.

Sí, noté que el tema era extremadamente viejo, pero cuento con que siempre hay alguien rondando los hilos a ver qué hay de nuevo, porque en algún momento lo hice tambien jaja. Muchas gracias por ser ese alguien!

No sabía que había alguna diferencia entre VX y VX Ace, creí que serían lo mismo, muchas gracias nuevamente.
Ya encontré un script que funciona para lo que estaba buscando, no sé si infrija alguna regla del foro con esto, pero este es el link:
Spoiler:

http://cobbtocs.co.uk/wp/?p=36
(por las dudas lo metí en un spoiler)

es muy completo, también tiene una función de aprender las skill por AP estilo FFIX pero como no se condecía con lo que buscaba, no la implementé. Lo recomiendo mucho!
avatar
SrBestia
Iniciado
Iniciado

0/3

Créditos 2

Gracias : 2

Volver arriba Ir abajo

RPG Maker VX Re: Skill Teaching Equipment & Items

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.