¡Bienvenido a Universo Maker!
¿Es esta la primera vez que visitas el foro? Si es así te recomendamos que te registres para tener completo acceso a todas las áreas y secciones del foro, así también podrás participar activamente en la comunidad. Si ya tienes una cuenta, conectate cuanto antes.
Iniciar Sesión Registrarme

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo Mensaje [Página 1 de 1.]

#1 KBlueMage XP o Mago Azul el Vie Sep 07, 2018 8:04 am

kyonides

avatar
KBlueMage XP

por Kyonides-Arkanthes

Con la célebre intromisión de Ópalo  Opalo Hola ¡Ese soy yo!

Este script trata de configurar su juego para que puedan utilizar a uno o más héroes como magos azules.

Opalo Sorprendido ¿Qué es un mago azul?

Bueno cuando jugaba Final Fantasy del 4 al 6 vi que un personaje podía recibir los efectos de las técnicas enemigas a propósito.

Opalo Sorprendido ¡Pero qué sádico era ese muchacho!

Pues, sí, lo era. Ópalo Tuerto El asunto es que también podía empezar a utilizar esas mismas técnicas si lograba aprenderlas. En pocas palabras, le daba vuelta a la tortilla y les daba una dosis de su propia medicina.

Ópalo Aplaudiendo ¡Ahora ese mago azul es mi héroe!

Bueno copien y peguen este script para XP en el editor de scripts. Solo sirve al 100% si no han implementado un script de batallas diferente al original.

Ópalo Memo Eh, bueno, trataré de tenerlo muy en cuenta.

Código:
#  KBlueMage XP - Versión para el Sistema de Batalla por Defecto
#  v 1.2.1 - 2012-12-23
#  v 1.0   - 2012-08-26
#  Scripter: Kyonides-Arkanthos

#  No hay que utilizar llamados a script.

module BlueSys
  # IDs de Héroes que aprenderán las técnicas al ser golpeados por estas
  BLUEMAGES = [8]
  # IDs de Skills - 0 : todas las IDs, otro número : esa skill se aprende
  BLUEMAGIC = [0]
  # IDs de Skills - Cualquier número : Magos Azules no pueden aprenderlas
  NOBMLEARNING = []
  # IDs de Estados - Previenen que los Magos Azules aprendan skills
  ANTIBMSTATES = []#[3, 6, 12]
  # Boolean (true o false) - ¿Estados deben impedir que aprendan skills?
  STATESTOPBML = false #true
  # String o Texto - Díle al jugador que acaba de aprender una skill.
  BMLEARNED = ' aprendió la habilidad de '
  # Esta versión de mi script ofrece la posibilidad de fallar al aprender skills
  # Deja true si no habrá fallos, false si deben contar con su buena suerte
  IGNORESUCCESSRATES = false
  # ¿Cuán probable es que el Mago Azul aprenda la skill al ser golpeado
  # Primer Nivel..Ultimo Nivel => Multiplos de 5
  SUCCESSRATES = { 1..9 => 15, 10..21 => 20,
    22..38 => 25, 39..62 => 30,
    63..87 => 35, 88..100 => 40 }
  # NO NECESITAN EQUIPAR ACCESORIOS para aprender ciertos skills: true o false
  IGNOREACCESSORIES = false
  # ID de Accesorio => Array o Arreglo de IDs de Skills
  ACCESSORIES = { 28 => [8, 11] }
  @bmlearned = [] # ¡¡Déjalo en paz!!
  def self.learned_skill(actor_name, skill)
    @bmlearned << [actor_name, $data_skills[skill].name]
  end

  def self.new_skills() @bmlearned end

  def self.clear_skills() @bmlearned.clear end
end

class Array
  def shuffle
    hsh = {}
    self.size.times {|n| index = rand(1000000)
      index = !hsh.keys.include?(index)? n : n + rand(1000000)
      hsh[index] = self[n] }
    hsh.values
  end

  def shuffle!() self[0..-1] = self.shuffle end
end

class Game_Actor
  alias kyon_blue_magic_gm_act_sk_eff skill_effect
  def skill_effect(user, skill)
    effective = kyon_blue_magic_gm_act_sk_eff(user, skill)
    afflicted = antibluemagic_states?
    learn_blue_magic(skill, afflicted, effective)
    return effective
  end

  def antibluemagic_states?
    return false if @states.empty? or !BlueSys::STATESTOPBML
    afflicted = @states.map {|s| break if BlueSys::ANTIBMSTATES.include?(s)}
    return afflicted.nil?
  end

  def learn_blue_magic(skill, afflicted, effective)
    if !afflicted and effective and BlueSys::BLUEMAGES.include?(self.id) and
        (BlueSys::BLUEMAGIC.include?(skill.id) or BlueSys::BLUEMAGIC[0] == 0)
      return if BlueSys::NOBMLEARNING.include?(skill.id)
      unless BlueSys::IGNORESUCCESSRATES
        key = BlueSys::SUCCESSRATES.keys.select {|k| k.include?(@level) }[0]
        success = [true] * (BlueSys::SUCCESSRATES[key] / 5)
        success += [nil] * (20 - success.size)
        success = success[rand(20)]
        return unless success
      end
      unless BlueSys::IGNOREACCESSORIES
        req = BlueSys::ACCESSORIES.select{|a, s| s.include?(skill.id)}.flatten
        armorid_ok = req.empty? ? nil : req[0] == @armor4_id
        return unless req.empty? or armorid_ok
      end
      learned = learn_skill(skill.id)
      BlueSys.learned_skill(self.name, skill.id) if learned
    end
  end
end

class Scene_Battle
  alias kyon_blue_magic_sc_bat_up_ph4_s6 update_phase4_step6
  def update_phase4_step6
    if @wait_count > 0
      @wait_count -= 1
      return
    end
    unless BlueSys.new_skills.empty?
      name, skill = BlueSys.new_skills.shift
      @help_window.set_text(name + BlueSys::BMLEARNED + skill, 1)
      @help_window.visible = true if !@help_window.visible
      @wait_count = 60
    end
    return if @wait_count > 0
    kyon_blue_magic_sc_bat_up_ph4_s6
  end
end

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

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