Registrarse

[RPG - Scripting] Cómo evolucionar a una forma alternativa.

Estado
Cerrado para nuevas respuestas.

Sulphur Alchemist

Usuario de platino
Hola, estoy intentando crear un nuevo método de evolución llamado 'RadioWave', para imitar a las ondas que hicieron evolucionar un Magikarp al Gyarados rojo en la segunda generación.

Mi versión es la 17.1 y el script que tengo para eso es el siguiente:

En la sección Settings:
Código:
RADIO_WAVE                = 74
En la sección Pokemon_Evolution:
Código:
  when PBEvolution::RadioWave
    return poke if $game_map.map_id==level && $game_switches[RADIO_WAVE]
Con esto hago que sólo pueda evolucionar el Magikarp al subir cualquier nivel y cuando el switch Radio_Wave está activo.

En los documentos de la carpeta PBS:

pokemon:
PHP:
Evolutions=GYARADOS,Level,20,GYARADOS,RadioWave,247
Le he añadido el nuevo método de evolución a Magikarp.

pokemonforms:
PHP:
#-------------------------------
[GYARADOS-3]
FormName=Gyarados Rojo
El Gyarados rojo lo he puesto como una forma alternativa además de la shiny porque quiero que sus ivs se modifiquen también.

A pesar de todo esto, sólo he conseguido que Magikarp evolucione a Gyarados (el normal) en el mapa 247 cuando el switch de Radio Wave está activo, y no sé cómo hacer que evolucione a esa forma nº3.

Muchas gracias de antemano.
 

Diego Mertens

Dartrix Joven
podrías hacer un evento en donde se cambie la forma de tu magikarp, o que al estar en ese mapa o switch activo, se cambie automáticamente y así al evolucionar o salir de ese mapa o switch el pokemon vuelva a su forma normal
 

Jessie

What goes around, comes around
Hola, estoy intentando crear un nuevo método de evolución llamado 'RadioWave', para imitar a las ondas que hicieron evolucionar un Magikarp al Gyarados rojo en la segunda generación.

Mi versión es la 17.1 y el script que tengo para eso es el siguiente:

En la sección Settings:
Código:
RADIO_WAVE                = 74
En la sección Pokemon_Evolution:
Código:
  when PBEvolution::RadioWave
    return poke if $game_map.map_id==level && $game_switches[RADIO_WAVE]
Con esto hago que sólo pueda evolucionar el Magikarp al subir cualquier nivel y cuando el switch Radio_Wave está activo.

En los documentos de la carpeta PBS:

pokemon:
PHP:
Evolutions=GYARADOS,Level,20,GYARADOS,RadioWave,247
Le he añadido el nuevo método de evolución a Magikarp.

pokemonforms:
PHP:
#-------------------------------
[GYARADOS-3]
FormName=Gyarados Rojo
El Gyarados rojo lo he puesto como una forma alternativa además de la shiny porque quiero que sus ivs se modifiquen también.

A pesar de todo esto, sólo he conseguido que Magikarp evolucione a Gyarados (el normal) en el mapa 247 cuando el switch de Radio Wave está activo, y no sé cómo hacer que evolucione a esa forma nº3.

Muchas gracias de antemano.
Hasta ahora todo parece estar bien, lo que sucede aquí es que colocaste que evolucione a la misma especie mediante dos métodos diferentes, como tipo Feebas que puede evolucionar a Mylotic mediante dos métodos diferente.

Lo que puedes hacer es forzar el cambio de forma al momento de verificar si se le es posible evolucionar.

En la sección Pokemon_Evolution:
Código:
when PBEvolution::RadioWave
    r=false
    r=true  if $game_map.map_id==level && $game_switches[RADIO_WAVE]
    pokemon.form=3 if r==true
    return poke if r==true
De esta manera primero te verificará si se cumplen las caracteristicas para que se de la evolución por esté método, luego si estás se cumplen, entonces te forzará a que el magikarp cambie a su forma a la número 3 y al momento de evolucionar en gyarados, esté igualmente tendrá la forma número 3.

No lo he probado, pero supongo que debería funcionar.
Saludos.


EDITO : En el PBS quizás debas colocar el método de RadiWave antes que el método normal para gyarados, ya que aunque esté activado el switch, si magikarp subió al 20 será un gyarados normal.
 

Sulphur Alchemist

Usuario de platino
Hasta ahora todo parece estar bien, lo que sucede aquí es que colocaste que evolucione a la misma especie mediante dos métodos diferentes, como tipo Feebas que puede evolucionar a Mylotic mediante dos métodos diferente.

Lo que puedes hacer es forzar el cambio de forma al momento de verificar si se le es posible evolucionar.

En la sección Pokemon_Evolution:
Código:
when PBEvolution::RadioWave
    r=false
    r=true  if $game_map.map_id==level && $game_switches[RADIO_WAVE]
    pokemon.form=3 if r==true
    return poke if r==true
De esta manera primero te verificará si se cumplen las caracteristicas para que se de la evolución por esté método, luego si estás se cumplen, entonces te forzará a que el magikarp cambie a su forma a la número 3 y al momento de evolucionar en gyarados, esté igualmente tendrá la forma número 3.

No lo he probado, pero supongo que debería funcionar.
Saludos.

EDITO: Nada, ya está todo solucionado, había algún que otro fallo pero ya está arreglado, así es como me funciona a mí:

Código:
  when PBEvolution::RadioWave
       r = false
       r = true if $game_map.map_id==level && [COLOR="Red"]$game_switches[74]==true[/COLOR]
       pokemon.form=3 if r==true
       pokemon.iv=[31,31,31,31,31,31]
       pokemon.calcStats
    return poke if r==true
Sólo he especificado (no sé si está bien así o si es lo mismo que lo que me explicaste) que el switch debe estar encendido para que, cuando esté activa la RadioWave, evolucione, y, mientras no lo esté, aún estando en el mapa en cuestión, no lo haga.
 
Última edición:

Jessie

What goes around, comes around
EDITO: Nada, ya está todo solucionado, había algún que otro fallo pero ya está arreglado, así es como me funciona a mí:

Código:
  when PBEvolution::RadioWave
       r = false
       r = true if $game_map.map_id==level && [COLOR="Red"]$game_switches[74]==true[/COLOR]
       pokemon.form=3 if r==true
       pokemon.iv=[31,31,31,31,31,31]
       pokemon.calcStats
    return poke if r==true
Sólo he especificado (no sé si está bien así o si es lo mismo que lo que me explicaste) que el switch debe estar encendido para que, cuando esté activa la RadioWave, evolucione, y, mientras no lo esté, aún estando en el mapa en cuestión, no lo haga.
Si, de hecho de ambas maneras deberían funcionar siempre y cuando la constante RADIO_WAVE exista y tenga el número del interruptor que usarás, lo único es que los iv no les colocaste un condicional, por comodidad yo los coloque así pokemon.form=3 if r==true, pero si le realizarás más cambios, sería mejor colocar todo en un solo condicional

Código:
  when PBEvolution::RadioWave
       if $game_map.map_id==level && $game_switches[74]==true
         pokemon.form=3
         pokemon.iv=[31,31,31,31,31,31]
         pokemon.calcStats
         return poke
      end
 
Estado
Cerrado para nuevas respuestas.
Arriba