Registrarse

[RPG - Otros] Duda respecto a especies

Estado
Cerrado para nuevas respuestas.

Raykiel

Pequeño saltamontes
¡Buenas!

Estoy tratando de hacer una cosa que no se si es posible.
La idea es como puedo hacer que un NPC que yo ponga me de por ejemplo un Vulpix de alola Nv10 (el nv es de ejemplo). Es que trato de buscar y no encuentro la forma :(

Gracias!
 

Manurocker95

Doctorando en Ingeniería Biomédica & Game Dev
Miembro insignia
¡Buenas!

Estoy tratando de hacer una cosa que no se si es posible.
La idea es como puedo hacer que un NPC que yo ponga me de por ejemplo un Vulpix de alola Nv10 (el nv es de ejemplo). Es que trato de buscar y no encuentro la forma :(

Gracias!
Fácil. Solo hay que actuar con un poco de lógica. El método pbAddPokemon da un Pokémon al jugador. Vemos que recibe esencialmente 2 parámetros, el Pokémon y el nivel (vamos a su definición y vemos def pbAddPokemon(pokemon,level=nil). Entonces dentro de ese método vemos que hace un pokemon = PokeBattle_Pokemon.new(pokemon,level,$Trainer) si el "pokemon" es una cadena de caracteres (ejemplo ':pIKACHU'), por lo que si lo imitas y cambias la forma en la llamada a script, se te dará con la forma alternativa (debe estar definida en el PBS).

Código:
pokemon = PokeBattle_Pokemon.new(:VULPIX,10,$Trainer)
pokemon.form=1
pbAddPokemon(pokemon, 10)
Alternativamente puedes añadir este método encima del main:

Código:
#===============================================================================
# Giving Pokémon to the player (will send to storage if party is full)
#===============================================================================
def pbAddPokemonWithForm(pokemon,level=nil,form=0,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
  pokemon.form=form
  speciesname = PBSpecies.getName(pokemon.species)
  Kernel.pbMessage(_INTL("\\me[Pkmn get]{1} obtained {2}!\1",$Trainer.name,speciesname))
  pbNicknameAndStore(pokemon)
  pbSeenForm(pokemon) if seeform
  return true
end
y lo llamas desde un evento a script con pbAddPokemonWithForm(:VULPIX,10,1)
 
Estado
Cerrado para nuevas respuestas.
Arriba