Registrarse

[RPG - Otros] ¿Cómo dar al jugador un pokémon de forma alola/galar?

Estado
Cerrado para nuevas respuestas.

Yatter

Usuario de platino
¡Hola!

El caso es que encontré tutoriales sobre cómo hacer que un pokémon forma alola o galar aparezca como encuentro salvaje pero, ¿qué tendría que hacer si en lugar de eso quiero darle directamente al jugador un Vulpix Alola? ¡Gracias!
 

NeoGeo

Usuario de plata
Lo que estás preguntando es muy básico y todo ese tipo de información se encuentra en https://pokemonessentials.fandom.com. Hay un apartado donde te muestra como dar pokemones al jugador y otro que te dice como editarlos.
El código que altera la forma es: pokemon.form=1 (o poke.form=1 dependiendo la version).
 

Yatter

Usuario de platino
Gracias por responder, Neo!

Seguí tu sugerencia y he estado leyendo la wiki de essentials sobre ello pero me ha surgido dudas que miraba si alguien podía responder. ¿Dónde exactamente iría el poke.form=1? ¿Qué quiere decir ese $Trainer?

Código:
poke=PokeBattle_Pokemon.new(:MAGIKARP,10,$Trainer)
pbAddPokemon(poke)
 
Última edición:

NeoGeo

Usuario de plata
Gracias por responder, Neo!

Seguí tu sugerencia y he estado leyendo la wiki de essentials sobre ello pero me ha surgido dudas que miraba si alguien podía responder. ¿Dónde exactamente iría el poke.form=1? ¿Qué quiere decir ese $Trainer?

Código:
poke=PokeBattle_Pokemon.new(:MAGIKARP,10,$Trainer)
pbAddPokemon(poke)
Casi me desmayo de la risa, me pregunto donde habrás puesto esos comandos xDD. Ahí cree un giratina lvl10 y lo hice de naturaleza modesta y una forma especial (mirá la indicación más abajo sobre las formas que te dejé) (. Eso de $trainer ignoralo solo hace como yo puse en la imagen.
1598545933862.png

Por cierto te recomiendo descargarte la versión oficial de essentials 16.2 que está completamente en español. Por lo que preguntás veo que recién estas empezando con esta herramienta y ahí hay muchos NPC de ejemplo que te pueden decir como dar pokemon modificados, como intercambiar, como dar objetos, etc. En cada npc hay una nota que te indica como se hace cada cosa.

Indicación especial sobre las formas:
Sobre el código poke.form=1 :Establece la forma del Pokémon. El valor 0 indica la forma por defecto según se define en el archivo PBS "pokemon.txt".
Algunas especies de Pokémon determinan su forma automáticamente dependiendo de algunos factores. Esa forma no puede ser cambiada por este método, ya que volverá a restablecerse inmediatamente.

Además, será necesario registrar la nueva forma como vista, de forma que pueda ser mostrada en el Pokédex. Para hacer esto, use pbSeenForm(poke) justo después. Esto suele aplicarse en Pokémon que no suelen cambiar de forma, por ejemplo, Unown.


fuente: https://pokemonessentials.fandom.com/es/wiki/Edici%C3%B3n_de_un_Pok%C3%A9mon
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Casi me desmayo de la risa, me pregunto donde habrás puesto esos comandos xDD. Ahí cree un giratina lvl10 y lo hice de naturaleza modesta y una forma especial (mirá la indicación más abajo sobre las formas que te dejé) (. Eso de $trainer ignoralo solo hace como yo puse en la imagen.
Ver el archivo adjunto 2293
Por cierto te recomiendo descargarte la versión oficial de essentials 16.2 que está completamente en español. Por lo que preguntás veo que recién estas empezando con esta herramienta y ahí hay muchos NPC de ejemplo que te pueden decir como dar pokemon modificados, como intercambiar, como dar objetos, etc. En cada npc hay una nota que te indica como se hace cada cosa.

Indicación especial sobre las formas:
Sobre el código poke.form=1 :Establece la forma del Pokémon. El valor 0 indica la forma por defecto según se define en el archivo PBS "pokemon.txt".
Algunas especies de Pokémon determinan su forma automáticamente dependiendo de algunos factores. Esa forma no puede ser cambiada por este método, ya que volverá a restablecerse inmediatamente.

Además, será necesario registrar la nueva forma como vista, de forma que pueda ser mostrada en el Pokédex. Para hacer esto, use pbSeenForm(poke) justo después. Esto suele aplicarse en Pokémon que no suelen cambiar de forma, por ejemplo, Unown.


fuente: https://pokemonessentials.fandom.com/es/wiki/Edici%C3%B3n_de_un_Pok%C3%A9mon
Esto no funcionará si no lo añade al Equipo. Lo que busca es algo como:


Código:
def pbAddPokemon(pokemon,form=0,level=nil,seeform=true)
  return if !pokemon || !$Trainer
  if pbBoxesFull?
    Kernel.pbMessage(_INTL("There's no more room for Pokémon!\1"))
    Kernel.pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
    return false
  end
  if pokemon.is_a?(String) || pokemon.is_a?(Symbol)
    pokemon = getID(PBSpecies,pokemon)
  end
  if pokemon.is_a?(Integer) && level.is_a?(Integer)
    pokemon = PokeBattle_Pokemon.new(pokemon,level,$Trainer)
  end
  speciesname = PBSpecies.getName(pokemon.species)
  pokemon.form=form
  Kernel.pbMessage(_INTL("\\me[Pkmn get]{1} obtained {2}!\1",$Trainer.name,speciesname))
  pbNicknameAndStore(pokemon)
  pbSeenForm(pokemon) if seeform
  return true
end
Y que lo llame con

Código:
pbAddPokemon(:RATTATA,1,5)
 

NeoGeo

Usuario de plata
Esto no funcionará si no lo añade al Equipo. Lo que busca es algo como:


Código:
def pbAddPokemon(pokemon,form=0,level=nil,seeform=true)
  return if !pokemon || !$Trainer
  if pbBoxesFull?
    Kernel.pbMessage(_INTL("There's no more room for Pokémon!\1"))
    Kernel.pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
    return false
  end
  if pokemon.is_a?(String) || pokemon.is_a?(Symbol)
    pokemon = getID(PBSpecies,pokemon)
  end
  if pokemon.is_a?(Integer) && level.is_a?(Integer)
    pokemon = PokeBattle_Pokemon.new(pokemon,level,$Trainer)
  end
  speciesname = PBSpecies.getName(pokemon.species)
  pokemon.form=form
  Kernel.pbMessage(_INTL("\\me[Pkmn get]{1} obtained {2}!\1",$Trainer.name,speciesname))
  pbNicknameAndStore(pokemon)
  pbSeenForm(pokemon) if seeform
  return true
end
Y que lo llame con

Código:
pbAddPokemon(:RATTATA,1,5)
[/Q
pero a mi me funciona el código que puse bro. Es toda información legítima que saqué de fandom.com. O tal vez no interpreté bien la pregunta del compañero.
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
pero a mi me funciona el código que puse bro. Es toda información legítima que saqué de fandom.com. O tal vez no interpreté bien la pregunta del compañero.
Funciona si lo añades al equipo. Prueba a tener el equipo lleno y que te lo mande a la caja, te cambia el último del equipo, bro
 

Yatter

Usuario de platino
Gracias a ambos por la ayuda! :) Sep, tengo el Essentials 16.2 pero como que lo de las formas me costó entenderlo.
@Manurocker95 ¿Podrías ponerme un pantallazo de ejemplo para saber dónde va esta parte del código en el evento si no es una molestia? ¡Mil gracias!
Código:
def pbAddPokemon(pokemon,form=0,level=nil,seeform=true)
  return if !pokemon || !$Trainer
  if pbBoxesFull?
    Kernel.pbMessage(_INTL("There's no more room for Pokémon!\1"))
    Kernel.pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
    return false
  end
  if pokemon.is_a?(String) || pokemon.is_a?(Symbol)
    pokemon = getID(PBSpecies,pokemon)
  end
  if pokemon.is_a?(Integer) && level.is_a?(Integer)
    pokemon = PokeBattle_Pokemon.new(pokemon,level,$Trainer)
  end
  speciesname = PBSpecies.getName(pokemon.species)
  pokemon.form=form
  Kernel.pbMessage(_INTL("\\me[Pkmn get]{1} obtained {2}!\1",$Trainer.name,speciesname))
  pbNicknameAndStore(pokemon)
  pbSeenForm(pokemon) if seeform
  return true
end
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
Gracias a ambos por la ayuda! :) Sep, tengo el Essentials 16.2 pero como que lo de las formas me costó entenderlo.
@Manurocker95 ¿Podrías ponerme un pantallazo de ejemplo para saber dónde va esta parte del código en el evento si no es una molestia? ¡Mil gracias!
Código:
def pbAddPokemon(pokemon,form=0,level=nil,seeform=true)
  return if !pokemon || !$Trainer
  if pbBoxesFull?
    Kernel.pbMessage(_INTL("There's no more room for Pokémon!\1"))
    Kernel.pbMessage(_INTL("The Pokémon Boxes are full and can't accept any more!"))
    return false
  end
  if pokemon.is_a?(String) || pokemon.is_a?(Symbol)
    pokemon = getID(PBSpecies,pokemon)
  end
  if pokemon.is_a?(Integer) && level.is_a?(Integer)
    pokemon = PokeBattle_Pokemon.new(pokemon,level,$Trainer)
  end
  speciesname = PBSpecies.getName(pokemon.species)
  pokemon.form=form
  Kernel.pbMessage(_INTL("\\me[Pkmn get]{1} obtained {2}!\1",$Trainer.name,speciesname))
  pbNicknameAndStore(pokemon)
  pbSeenForm(pokemon) if seeform
  return true
end
Con que hagas copy-paste en cualquier script encima del main (puedes hacer uno nuevo y pegarlo), luego solo tienes que llamar en un evento algo como:

Código:
pbAddPokemon(:PIKACHU,1,level=5)
En el comando "script"
 
Estado
Cerrado para nuevas respuestas.
Arriba