Registrarse

(Duda)Controlar la evolución en RPG

Estado
Cerrado para nuevas respuestas.

Delta

Guardián Meteoro
Bueno como dice el titulo quiero que en mi juego tu Pokémon inicial no evolucione hasta que
llegue un momento. Por lo que por más que subiera de nivel no quiero que evolucione y cuando llegue esa escena evolucione. El starter ese es Riolu. Bueno esa era mi duda y espero que puedan contestarme gracias de antemano.
 
Bueno como dice el titulo quiero que en mi juego tu Pokémon inicial no evolucione hasta que
llegue un momento. Por lo que por más que subiera de nivel no quiero que evolucione y cuando llegue esa escena evolucione. El starter ese es Riolu. Bueno esa era mi duda y espero que puedan contestarme gracias de antemano.
Podrias hacer que evolucione con un objeto y que ese objeto no se consiga hasta cierto momento
 

Delta

Guardián Meteoro
También sería una opción pero si se puede hacer con algún script o algo sería mejor aún así gracias.
 

Rembry

Hakuna Matata
Podrías hacer que mientras el evento sucede se te quite el Riolu y se te ponga a Lucario.
 

Jessie

What goes around, comes around
Es fácil, solo tienes que colocar un condicional en Pokemon_Evolution.

Solo buscas el método de evolución por ejemplo, evolución por nivel y buscas estas lineas
Código:
 when PBEvolution::Level
     return poke if pokemon.level>=level
y luego solo colocas el condicional, por ejemplo el interruptor 300 ($game_switches[300])

Código:
when PBEvolution::Level
  if pokemon.species!=PBSpecies::RIOLU
     return poke if pokemon.level>=level
  else
     if $game_switches[300]==false
        return poke if pokemon.level>=level 
     end
  end
De este modo, cuando el interruptor 300 este activado riolu no evolucionará.

En el caso de rioulo, creo que evoluciona por felicidad, entonces en lugar de buscar el when PBEvolution::Level buscas el when PBEvolution::Happiness o when PBEvolution::HappinessDay o el método que quieras.

Espero que te sirva, saludos.


EDITO :

Para forzar la evolución, puedes usar un método similar, por ejemplo

Código:
when PBEvolution::Level
     if pokemon.species!=PBSpecies::RIOLU
        return poke if pokemon.level>=level
     else
        if $game_switches[300]==false 
          return poke if pokemon.level>=level 
          return poke if  $game_switches[301]
        end
    end
Solo agregas otra linea de return, cuando el interruptor 301 ($game_switches[301]) se active riolu evolucionará sin importar que tenga el nivel o la felicidad necesaria.

Durante tu evento, solo colocas
Código:
$game_switches[300]=false
$game_switches[301]=true
pbCheckEvolution(pokemon)
Aquí suponiendo que el interruptor 300 es el que bloque la evolución y el 301 es el que la forza.

donde dice pbCheckEvolution(pokemon) es el comando que te revisará si algún pokémon puede evolucionar, y la variable "pokemon" que esta entre paréntesis es el pokemon que va a forzar su evolución, es este caso Riolu, así que tendrás que definir esa variable desde antes de colocar el pbCheckEvolution(pokemon).

Lo puedes hacer de diferente formas, te doy unos ejemplo.

Suponiendo que riolu está en tu equipo
Código:
pokemon=0 
for i in $Trainer.party.length
  poke=$Trainer.party[i-1]
  if poke.species==PBSpecies::RIOLU
    pokemon=poke.species
 end
end
Suponiendo que riolu es el primer pokemon de tu equipo
Código:
pokemon=$Trainer.party[0].species
Una vez que Riolu evolucione, desactivas el interruptor 301 para evitar que otros riolus evolucionen sin razón.

Todo depende de la manera en que desarrolles tu evento.

Suerte.
 
Última edición:

Delta

Guardián Meteoro
Gracias por el script lo he podido entender espero que me funcione en mi proyecto y también
a otras personas que tengan la misma duda que yo
 
Estado
Cerrado para nuevas respuestas.
Arriba