NPCs Especiales

Pokémon Essentials incluye una serie de NPCs con funciones especiales que puedes colocar en tu juego. Estos se implementan mediante llamadas a scripts en los eventos de RPG Maker.


Cambianombres (Name Rater)

El Cambianombres permite al jugador cambiar el mote de uno de sus Pokémon.

# Abrir la pantalla del Cambianombres
pbNameRater

Esta función:

Ejemplo de evento

# ◆ Mensaje: ¡Hola! Soy el Cambianombres.
#            ¿Quieres ponerle un mote a alguno
#            de tus Pokémon?
# ◆ Script: pbNameRater
# ◆ Mensaje: ¡Espero que te guste el nuevo nombre!

Olvidamovimientos (Move Deleter)

Este NPC permite al jugador eliminar un movimiento de un Pokémon, incluyendo MOs (HMs).

# Abrir la pantalla del Olvidamovimientos
pbMoveDeleter

Funciona así:


Recordamovimientos (Move Relearner)

Permite al jugador enseñar a un Pokémon un movimiento que puede aprender por nivel pero que no conoce actualmente.

# Abrir la pantalla del Recordamovimientos
pbMoveRelearner

Características:

Ejemplo con coste de Escama Corazón

# ◆ Mensaje: Puedo ayudar a tu Pokémon a recordar
#            movimientos olvidados. Pero necesito una
#            Escama Corazón como pago.
# ◆ Conditional Branch: Script: $bag.has?(:HEARTSCALE)
#   ◆ Script: pbMoveRelearner
#   ◆ Script: $bag.remove(:HEARTSCALE)
#   ◆ Mensaje: ¡Gracias por la Escama Corazón!
# ◆ Else
#   ◆ Mensaje: Vuelve cuando tengas una Escama Corazón.
# ◆ Branch End

Revivefósiles (Fossil Reviver)

Este NPC revive un Pokémon a partir de un fósil. La relación fósil-Pokémon se define en los datos de los objetos.

# Revivir un fósil (abre la selección de fósiles de la mochila)
pbFossilRevive

Este script:

Ejemplo de evento del científico

# ◆ Mensaje: \bCientífico\b: ¡Puedo revivir Pokémon antiguos
#            a partir de fósiles! ¿Tienes alguno?
# ◆ Conditional Branch: Script: pbHasFossil?
#   ◆ Mensaje: \bCientífico\b: ¡Oh, veo que tienes un fósil!
#              Déjame trabajar en él...
#   ◆ Script: pbFossilRevive
#   ◆ Mensaje: \bCientífico\b: ¡Tu Pokémon ha sido revivido!
# ◆ Else
#   ◆ Mensaje: \bCientífico\b: No tienes ningún fósil.
#              ¡Vuelve si encuentras uno!
# ◆ Branch End
Nota: Para verificar si el jugador tiene fósiles, puedes usar un script personalizado o verificar cada fósil individualmente con $bag.has?(:OLDAMBER), etc.

Juez de IVs (IV Judge)

El Juez de IVs evalúa el potencial de un Pokémon basándose en sus IVs (Individual Values).

# Abrir el juez de IVs
pbIVJudge

El juez evalúa las estadísticas y da un veredicto general sobre el potencial del Pokémon:

Rango de IVs totales Mensaje del Juez
0 - 90 "El potencial de tu Pokémon es decente."
91 - 120 "Tu Pokémon tiene un buen potencial."
121 - 150 "¡Tu Pokémon tiene un gran potencial!"
151 - 186 "¡Tu Pokémon tiene un potencial extraordinario!"

Implementación manual alternativa

# Script personalizado para evaluar IVs con más detalle
pbChoosePokemon(1, 2)
if pbGet(1) >= 0
  pkmn = $player.party[pbGet(1)]
  stats = [:HP, :ATTACK, :DEFENSE, :SPEED, :SPECIAL_ATTACK, :SPECIAL_DEFENSE]
  best_stat = stats.max_by { |s| pkmn.iv[s] }
  best_iv = pkmn.iv[best_stat]

  if best_iv == 31
    pbMessage("¡La mejor stat tiene un valor perfecto!")
  elsif best_iv >= 26
    pbMessage("La mejor stat es fantástica.")
  elsif best_iv >= 16
    pbMessage("La mejor stat es bastante buena.")
  else
    pbMessage("La mejor stat es decente.")
  end
end

Comprobador de Amistad (Friendship Checker)

Este NPC evalúa cuánta amistad tiene el jugador con un Pokémon.

# Seleccionar un Pokémon y mostrar su amistad
pbChoosePokemon(1, 2)
if pbGet(1) >= 0
  pkmn = $player.party[pbGet(1)]
  felicidad = pkmn.happiness

  if felicidad >= 250
    pbMessage("¡Tu #{pkmn.name} te adora con todo su corazón!")
  elsif felicidad >= 200
    pbMessage("Tu #{pkmn.name} es muy feliz contigo.")
  elsif felicidad >= 150
    pbMessage("Tu #{pkmn.name} parece contento a tu lado.")
  elsif felicidad >= 100
    pbMessage("Tu #{pkmn.name} se está acostumbrando a ti.")
  elsif felicidad >= 50
    pbMessage("Tu #{pkmn.name} aún no confía mucho en ti.")
  else
    pbMessage("Tu #{pkmn.name} no parece cómodo contigo...")
  end
end

Pareja de la Guardería (Day Care Couple)

Los NPCs de la guardería permiten dejar Pokémon para que suban de nivel y críen huevos. Consulta la página de Guardería y Crianza para más detalles.

# NPC que recibe Pokémon en la guardería
pbDayCareDeposit

# NPC que devuelve Pokémon de la guardería
pbDayCareWithdraw

# NPC que entrega un huevo (si hay uno disponible)
pbDayCareGetEgg

Entrenador de EVs (EV Trainer)

Puedes crear un NPC que muestre o modifique los EVs de un Pokémon:

# Mostrar los EVs de un Pokémon
pbChoosePokemon(1, 2)
if pbGet(1) >= 0
  pkmn = $player.party[pbGet(1)]
  pbMessage("EVs de #{pkmn.name}:")
  pbMessage("PS: #{pkmn.ev[:HP]}")
  pbMessage("Ataque: #{pkmn.ev[:ATTACK]}")
  pbMessage("Defensa: #{pkmn.ev[:DEFENSE]}")
  pbMessage("Velocidad: #{pkmn.ev[:SPEED]}")
  pbMessage("At. Esp: #{pkmn.ev[:SPECIAL_ATTACK]}")
  pbMessage("Def. Esp: #{pkmn.ev[:SPECIAL_DEFENSE]}")
  total = 0
  pkmn.ev.each_value { |v| total += v }
  pbMessage("Total: #{total}/510")
end

NPC que resetea EVs

# Resetear todos los EVs de un Pokémon
pbChoosePokemon(1, 2)
if pbGet(1) >= 0
  pkmn = $player.party[pbGet(1)]
  GameData::Stat.each_main do |s|
    pkmn.ev[s.id] = 0
  end
  pkmn.calc_stats
  pbMessage("Los EVs de #{pkmn.name} han sido reseteados a 0.")
end

Otros NPCs útiles

NPC Script Descripción
Enfermera (curar equipo) pbFadeOutIn { $player.heal_party } Cura a todos los Pokémon del equipo.
Vendedor de objetos pbPokemonMart([:POTION, :SUPERPOTION, :POKEBALL]) Abre una tienda con los objetos indicados.
Intercambio en juego pbPokemonTrade(:MACHOP, :ABRA, "Alonso", "Kadabrito") Intercambia un Pokémon del jugador por otro predefinido.
Peluquero (subir amistad) pkmn.happiness += 10; pkmn.happiness = [pkmn.happiness, 255].min Aumenta la felicidad de un Pokémon.
Tutor de movimientos pbMoveTutor(:FIREPUNCH, pkmn) Enseña un movimiento específico si el Pokémon es compatible.
💡 Consejo: Todos estos scripts se colocan dentro de comandos Script en los eventos de RPG Maker. Puedes combinar varios en un mismo evento para crear NPCs más complejos.