Aprender Movimientos

En Pokémon Essentials v21.1, los Pokémon pueden aprender movimientos de diversas formas: subiendo de nivel, usando MTs/MOs, mediante tutores, por herencia (movimientos huevo) y a través de scripts. Esta página cubre todos los métodos disponibles.

Movimientos por nivel (Level-Up Moves)

Los movimientos que un Pokémon aprende al subir de nivel se definen en el archivo PBS pokemon.txt (o pokemon_forms.txt para formas alternativas), dentro de la propiedad Moves de cada especie.

Formato en el PBS

La propiedad Moves es una lista de pares nivel,MOVIMIENTO separados por comas:

[PIKACHU]
...
Moves = 1,THUNDERSHOCK,1,GROWL,4,TAILWHIP,7,THUNDERWAVE,
        10,DOUBLETEAM,13,ELECTROBALL,18,NUZZLE,21,DISCHARGE,
        26,SLAM,29,THUNDERBOLT,34,AGILITY,37,WILDCHARGE,
        42,THUNDER,45,LIGHTSCREEN
...

Cada par indica que al alcanzar ese nivel, el Pokémon intentará aprender el movimiento. Si el nivel es 1, el Pokémon conocerá el movimiento al ser capturado o al nacer (si su nivel es 1 o superior).

Cómo funciona al subir de nivel

Compatibilidad con MT y MO (TMs/HMs)

Las MTs (Máquinas Técnicas) y MOs (Máquinas Ocultas) son objetos que enseñan movimientos específicos a los Pokémon compatibles. La compatibilidad se define en el PBS de cada especie.

Formato en el PBS

En pokemon.txt, la propiedad TutorMoves define qué movimientos puede aprender un Pokémon por MT, MO o tutor:

[PIKACHU]
...
TutorMoves = MEGAPUNCH,MEGAKICK,THUNDERPUNCH,PAYDAY,SWIFT,DIG,
             LIGHTSCREEN,REST,SUBSTITUTE,THIEF,SNORE,PROTECT,
             RAINDANCE,IRONTAIL,THUNDERBOLT,THUNDER,FACADE,
             HELPINGHAND,ELECTROBALL,VOLTSWITCH,WILDCHARGE,
             PLAYROUGH,CHARM,ENCORE,FLING,ENDURE,SURF,FLY
...

Funcionamiento

Movimientos de tutor (Tutor Moves)

Los tutores de movimientos son NPCs que enseñan movimientos especiales a Pokémon compatibles. La compatibilidad se define en la misma propiedad TutorMoves del PBS, compartida con las MTs.

Implementar un tutor por evento

Para crear un NPC tutor de movimientos, usa el siguiente código en un evento de RPG Maker:

# Enseñar un movimiento específico
pbMoveTutorChoose(:DRAGONPULSE)

Este comando abre la pantalla de selección de Pokémon, muestra solo los Pokémon compatibles y permite enseñar el movimiento.

# Tutor con múltiples movimientos a elegir
movimientos = [:DRAGONPULSE, :AURASPHERE, :IRONHEAD, :ZENHEADBUTT]
pbMoveTutorChoose(movimientos)

Movimientos huevo (Egg Moves)

Los movimientos huevo son movimientos que un Pokémon solo puede aprender si los hereda de sus padres al nacer de un huevo.

Formato en el PBS

Se definen en la propiedad EggMoves de cada especie en pokemon.txt:

[CHARMANDER]
...
EggMoves = ANCIENTPOWER,BELLYDRUM,BITE,COUNTER,CRUNCH,
           DRAGONDANCE,DRAGONPULSE,DRAGONRUSH,DRUMBEATING,
           FLAREBLITZ,FOCUSPUNCH,METALCLAW,OUTRAGE,
           WINGATTACK
...

Cómo funciona la herencia

Scripts para aprender movimientos

pbLearnMove

Enseña un movimiento a un Pokémon específico. Si el Pokémon ya tiene 4 movimientos, muestra el diálogo para elegir cuál olvidar:

# Enseñar Lanzallamas al primer Pokémon del equipo
pbLearnMove($player.party[0], :FLAMETHROWER)

Parámetros:

Retorna true si el Pokémon aprendió el movimiento, false si el jugador decidió no aprenderlo.

pbForgetMove

Abre la pantalla para que el jugador elija un movimiento a olvidar:

# Abrir la pantalla de olvidar movimiento para el primer Pokémon
pbForgetMove($player.party[0], :FLAMETHROWER)

Parámetros:

Retorna el índice del movimiento olvidado (0-3) o -1 si el jugador canceló.

Otros métodos útiles

# Comprobar si un Pokémon conoce un movimiento
$player.party[0].hasMove?(:SURF)  # => true o false

# Comprobar si un Pokémon puede aprender un movimiento
$player.party[0].compatible_with_move?(:THUNDERBOLT)  # => true o false

# Añadir un movimiento directamente (sin diálogo, máx. 4)
$player.party[0].learn_move(:FLAMETHROWER)

# Olvidar un movimiento directamente (sin diálogo)
$player.party[0].forget_move(:TACKLE)

# Olvidar todos los movimientos y asignar nuevos
$player.party[0].reset_moves

Recordar Movimientos (Move Relearner / Move Reminder)

El Recordador de Movimientos (o Recordamovimientos) es un NPC que permite a un Pokémon volver a aprender movimientos que ha olvidado, siempre que el movimiento esté en su lista de movimientos por nivel hasta su nivel actual.

Implementar el Recordamovimientos

Para crear el NPC, usa este código en un evento:

# Pantalla del Recordamovimientos
pbRelearnMoveScreen($player.party[0])

Este comando:

Ejemplo completo de evento NPC

# Evento de Recordamovimientos con diálogo
pbMessage(_INTL("¡Soy el Recordamovimientos!"))
pbMessage(_INTL("Puedo hacer que tu Pokémon recuerde movimientos que ha olvidado."))
pbChoosePokemon(1, 2)  # Elegir un Pokémon del equipo
if pbGet(2) >= 0
  pkmn = $player.party[pbGet(2)]
  pbRelearnMoveScreen(pkmn)
end

Borrar Movimientos (Move Deleter)

El Borramovimientos es un NPC que permite olvidar cualquier movimiento, incluyendo los enseñados por MO (que normalmente no se pueden olvidar).

Implementar el Borramovimientos

# Evento del Borramovimientos
pbMessage(_INTL("Soy el Borramovimientos. Puedo hacer que tu Pokémon olvide un movimiento."))
pbChoosePokemon(1, 2)
if pbGet(2) >= 0
  pkmn = $player.party[pbGet(2)]
  if pkmn.numMoves <= 1
    pbMessage(_INTL("¡Tu Pokémon solo conoce un movimiento! No puede olvidarlo."))
  else
    pbMessage(_INTL("¿Qué movimiento debería olvidar?"))
    # Mostrar pantalla de selección de movimiento a olvidar
    moveIndex = pbForgetMove(pkmn, nil)
    if moveIndex >= 0
      moveName = pkmn.moves[moveIndex].name
      pkmn.forget_move_at_index(moveIndex)
      pbMessage(_INTL("¡{1} olvidó {2}!", pkmn.name, moveName))
    else
      pbMessage(_INTL("Bien, no olvidaremos ningún movimiento."))
    end
  end
end

Resumen de propiedades PBS

Propiedad Archivo Descripción
Moves pokemon.txt Movimientos aprendidos por nivel. Formato: nivel,MOVIMIENTO,nivel,MOVIMIENTO,...
TutorMoves pokemon.txt Movimientos aprendibles por MT, MO y tutor. Lista de nombres internos separados por comas.
EggMoves pokemon.txt Movimientos heredables al nacer de un huevo. Lista de nombres internos separados por comas.
Nota: Los movimientos definidos en TutorMoves sirven tanto para MTs/MOs como para tutores de movimientos. No es necesario definirlos por separado. Para más detalles sobre cómo definir los movimientos en sí, consulta Definir un Movimiento.