Registrarse

[RPG - Scripting] Script según el personaje escogido

Estado
Cerrado para nuevas respuestas.

Chaotik

Ingeniero informático aprendiendo decompilación
Hola forer@s!

Veréis, ando liado con RPG Maker XP y Pokémon Essentials, y quería preguntar una cosa.
He incluído este script en mi juego, de este post de pokecommunity:

https://www.pokecommunity.com/showthread.php?t=338481

Todo va bien(menos el fondo, que no me sale, pero bueno...), pero quiero saber lo que tengo que hacer para no matarme poniendo mugshots, me explico:

Tengo dos posibilidades para escoger personaje. Vale, quiero que de alguna manera, si escojo por ejemplo el primer personaje, que en un evento se muestre un cierto mugshot y un cierto color de letra, y si cojo el segundo personaje que en ese mismo evento se muestre un mugshot y color de letra distintos.

Espero haberme expresado bien, llevo mucho rato buscando pero nada. Puede que tenga que ver con lo de $Trainer.gender o $Trainer.outfit , pero no sé trabajar con eso.

Os leo!, y gracias!!
 

Jessie

What goes around, comes around
No creo haber entendido bien, quieres que el Mugshot y el nombre se vean durante la pantalla de selección o durante un evento dentro del juego? Porque si es lo segundo entonces no tiene que ver con la función de ese script.
 

Chaotik

Ingeniero informático aprendiendo decompilación
Siento si no me he explicado bien:

Quiero que, dependiendo de si elijo un personaje u otro, me salga un mugshot que yo ponga. Es decir, que en el mismo evento, si en una partida cojo al personaje A con su sprite, mini, etc. quiero que cuando hable me salga su mugshot. Y si me cojo al personaje B, que cuando hable salga otro. Es decir, que salga el mugshot y si es posible el color de la letra en función del personaje escogido en la intro.

Podría hacerse con interruptores, y poner en cada script una nueva página con el mismo pero con mugshots cambiados, y activar uno de los dos según el interruptor que haya activado en la intro(el personaje que yo haya escogido). El problema está en que no sé como activar un interruptor u otro con ese script, ya que el valor que toma el pbChangePlayer es (result), cojas el personaje que cojas.

Espero que se me haya entendido ahora:D:D
 

Jessie

What goes around, comes around
Lo que sucede es que la función pbChangePlayer(Val) requiere un número, el cual será el ID global del jugador, o sea 0 = Jugador A(Chico) y 1 = Jugador B(Chica)

Entonces para poder comprobar cual Jugador fue elegido, lo puedes hacer de diferentes maneras, puedes usar alguna de las siguientes variables que dependen de cual Jugador se ha elegido.
Código:
$Trainer.metaID
$PokemonGlobal.playerID
Estas dos variables guardan el mismo valor que se le envía al pbChangePlayer, así que en un evento podrías usar alguna de estas como condicional, así :



En la imagen, tengo un evento que tiene activado el Inicio automatico, esto quiere decir que al entrar en el mapa enseguida se realizará lo que hay dentro de este, así que le coloque una condición para verificar el ID del Jugador, sí es el jugador A(Chico), se activará el interruptor local A y si es el JugadorB(Chica) se activará el interruptor local B.
Ahora en las paginas 2 y 3 del evento, seleccionarás el interruptor correspondiente y dentro de cada uno colocarás lo que ese evento hará si se ha elegido al JugadorA o al JugadorB.



Recuerda que esto solo funciona si tienes solo 2 Jugadores a elegir, si tienes más tendrás que colocar condicionales adicionales a la primera pagina del evento.


Otra manera de realizarlo, es colocando tu propia variable dentro del mismo script que llama a la pantalla de selección, así cada vez que necesites hacer este tipo de eventos, puedes usar tu variable como condición. Por ejemplo lo puedes hacer así :

Código:
overworld = ["trchar000","trchar001","trchar002","trchar003"]
battle = ["trainer000","trainer001","trainer002","trainer003"]
result = pbCharacterSelection(overworld,battle) 
pbChangePlayer(result)
$game_variables[666] = result
En este ejemplo, he usado la variable número 666, pero puedes usar cualquiera que tengas libre. Ahora solo es cuestión de que coloque tu variable como una condición en tu evento.



Lo mismo iría para la segunda pagina pero con el valor de la variable 1, ya que 0 = JugadorA y 1 = JugadorB.

Espero que alguna de estas dos maneras te sean útiles.
Saludos.
 

Chaotik

Ingeniero informático aprendiendo decompilación
Lo que sucede es que la función pbChangePlayer(Val) requiere un número, el cual será el ID global del jugador, o sea 0 = Jugador A(Chico) y 1 = Jugador B(Chica)

Entonces para poder comprobar cual Jugador fue elegido, lo puedes hacer de diferentes maneras, puedes usar alguna de las siguientes variables que dependen de cual Jugador se ha elegido.
Código:
$Trainer.metaID
$PokemonGlobal.playerID
Estas dos variables guardan el mismo valor que se le envía al pbChangePlayer, así que en un evento podrías usar alguna de estas como condicional, así :



En la imagen, tengo un evento que tiene activado el Inicio automatico, esto quiere decir que al entrar en el mapa enseguida se realizará lo que hay dentro de este, así que le coloque una condición para verificar el ID del Jugador, sí es el jugador A(Chico), se activará el interruptor local A y si es el JugadorB(Chica) se activará el interruptor local B.
Ahora en las paginas 2 y 3 del evento, seleccionarás el interruptor correspondiente y dentro de cada uno colocarás lo que ese evento hará si se ha elegido al JugadorA o al JugadorB.



Recuerda que esto solo funciona si tienes solo 2 Jugadores a elegir, si tienes más tendrás que colocar condicionales adicionales a la primera pagina del evento.


Otra manera de realizarlo, es colocando tu propia variable dentro del mismo script que llama a la pantalla de selección, así cada vez que necesites hacer este tipo de eventos, puedes usar tu variable como condición. Por ejemplo lo puedes hacer así :

Código:
overworld = ["trchar000","trchar001","trchar002","trchar003"]
battle = ["trainer000","trainer001","trainer002","trainer003"]
result = pbCharacterSelection(overworld,battle) 
pbChangePlayer(result)
$game_variables[666] = result
En este ejemplo, he usado la variable número 666, pero puedes usar cualquiera que tengas libre. Ahora solo es cuestión de que coloque tu variable como una condición en tu evento.



Lo mismo iría para la segunda pagina pero con el valor de la variable 1, ya que 0 = JugadorA y 1 = JugadorB.

Espero que alguna de estas dos maneras te sean útiles.
Saludos.
Muchas gracias, la primera solución que me has dado es la que he usado, informándome más conseguí averiguar como funcionan las variables que guardan texto. Igualmente te has explicado muy bien, además has puesto imágenes. Gracias!

Perdona por ser pesado, @JessWishes, pero tengo otra pregunta xD:

Si quisiera poner 3 personajes bastaría con poner otro condicional pero poniendo como condición que se cumpla el script: $PokemonGlobal.playerID==2 (habiendo definido el 3er personaje en el metadata.txt),

¿No?
 
Última edición:

Jessie

What goes around, comes around
Si así es, solo que el nuevo condicional lo pondrías en lugar de la excepción del primer condicional, así en caso de que no se ha elegido al JugadorA, la excepción te verificará si se eligió al JugadorB, o en la excepción de esta segundo condición se elegiría al JugadorC.
 
Estado
Cerrado para nuevas respuestas.
Arriba