Registrarse

[RPG - Scripting] Trampas en el mapa que envenenen, paralicen, etc.

Estado
Cerrado para nuevas respuestas.

Morel X

Pues bueno aquí estamosxD
Buenas pues estaba haciendo un mapa de unas ruinas y quería hacer algunas trampas para cuando el jugador caiga en ellas un pokémon al azar se envenene, se paralice, se queme, sufra daño, se debilite por completo, caiga dormido y un largo etc, he puesto todas esas pero minimo me gustaría un ejemplo de una que cambiar el estado del pokemon al azar (domir, quemar, envenenar) y otro ejemplo de debilitar el pokemon o que simplemente sufra daños.
 

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
De nuevo, te va a tocar tirar de scripting.
El funcionamiento sería simple, generar un número aleatorio que vaya del 0 al número de Pokémon que tengas en el equipo (recuerda que hablamos de programación por lo que $Trainer.party[0] es el primer Pokémon del equipo y $Trainer.party[5] es el último)

Código:
def randomParalysis
  poke = $Trainer.party[rand($Trainer.party.length - 1)] 
  poke.status = PBStatuses::PARALYSIS
end
Como ves el código es de lo más sencillo, lo primero que hacemos es asignar la variable "poke" a un Pokémon del equipo (que se guarda en la variable $Trainer.party), para hacerlo aleatorio llamamos al comando rand(x) que lo que hace es generar un número aleatorio entre 0 y el número que sea x, en este caso el número que hemos dado es la longitud del array del equipo, o sea, el número de Pokémon que tenemos. Además verás que le he restado 1, esto es porque como he dicho antes la primera posición es el 0 y la última es el 5 pero obviamente la longitud devuelve el número de elementos en el array, así que tenemos que restarle 1 para obtener el valor real.
 

Morel X

Pues bueno aquí estamosxD
De nuevo, te va a tocar tirar de scripting.
El funcionamiento sería simple, generar un número aleatorio que vaya del 0 al número de Pokémon que tengas en el equipo (recuerda que hablamos de programación por lo que $Trainer.party[0] es el primer Pokémon del equipo y $Trainer.party[5] es el último)

Código:
def randomParalysis
  poke = $Trainer.party[rand($Trainer.party.length - 1)] 
  poke.status = PBStatuses::PARALYSIS
end
Como ves el código es de lo más sencillo, lo primero que hacemos es asignar la variable "poke" a un Pokémon del equipo (que se guarda en la variable $Trainer.party), para hacerlo aleatorio llamamos al comando rand(x) que lo que hace es generar un número aleatorio entre 0 y el número que sea x, en este caso el número que hemos dado es la longitud del array del equipo, o sea, el número de Pokémon que tenemos. Además verás que le he restado 1, esto es porque como he dicho antes la primera posición es el 0 y la última es el 5 pero obviamente la longitud devuelve el número de elementos en el array, así que tenemos que restarle 1 para obtener el valor real.
Oye otra vez muchas gracias, te voy a mandar un privado con una pregunta porque creo que no tiene mucho que ver con el tema.

De nuevo, te va a tocar tirar de scripting.
El funcionamiento sería simple, generar un número aleatorio que vaya del 0 al número de Pokémon que tengas en el equipo (recuerda que hablamos de programación por lo que $Trainer.party[0] es el primer Pokémon del equipo y $Trainer.party[5] es el último)

Código:
def randomParalysis
  poke = $Trainer.party[rand($Trainer.party.length - 1)] 
  poke.status = PBStatuses::PARALYSIS
end
Como ves el código es de lo más sencillo, lo primero que hacemos es asignar la variable "poke" a un Pokémon del equipo (que se guarda en la variable $Trainer.party), para hacerlo aleatorio llamamos al comando rand(x) que lo que hace es generar un número aleatorio entre 0 y el número que sea x, en este caso el número que hemos dado es la longitud del array del equipo, o sea, el número de Pokémon que tenemos. Además verás que le he restado 1, esto es porque como he dicho antes la primera posición es el 0 y la última es el 5 pero obviamente la longitud devuelve el número de elementos en el array, así que tenemos que restarle 1 para obtener el valor real.
Por cierto, algo que no me ha quedado claro es donde tengo que poner cada cosa, el código que tu me has escrito aquí va en el main no? y luego tengo que escribir otra cosa en el evento o como va? es que ya he probado a escribir el codigo en el evento y como pensaba me da error.
 
Última edición:

KleinStudio

Un plato es un plato
Miembro del equipo
Webmaster
Esto son funciones, como son scripts tan pequeños lo suyo sería crear un script encima de main, llamarlo "funciones" o como quieras y poner ahí todas esas minifunciones que necesites. Ten en cuenta que el nombre del script no afecta a su funcionamiento para nada, es solo para mantener un orden.
Las funciones luego las llamas desde un evento con la función "Llamar script" que hay en la tercera página de comandos ;)
 

Morel X

Pues bueno aquí estamosxD
Esto son funciones, como son scripts tan pequeños lo suyo sería crear un script encima de main, llamarlo "funciones" o como quieras y poner ahí todas esas minifunciones que necesites. Ten en cuenta que el nombre del script no afecta a su funcionamiento para nada, es solo para mantener un orden.
Las funciones luego las llamas desde un evento con la función "Llamar script" que hay en la tercera página de comandos ;)
Entiendo, y cuando le damos a llamar script que tengo que poner? es que no estoy seguro como se pone despues de poner el codigo en el main >.<''

He probado a poner algunas cosas del codigo pero como no se como ponerlo exactamente o me da error o no hace nada jaja

(Edito: Vale tenía que poner randomParalysis jaja)

Otra cosa ahora si en vez de un estado quiero producir cierta cantidad de daño? por ejemplo al azar quiero que pierda el 50% de sus Ps
 
Última edición:

Morel X

Pues bueno aquí estamosxD
Oh perfecto muchas gracias!

De nuevo, te va a tocar tirar de scripting.
El funcionamiento sería simple, generar un número aleatorio que vaya del 0 al número de Pokémon que tengas en el equipo (recuerda que hablamos de programación por lo que $Trainer.party[0] es el primer Pokémon del equipo y $Trainer.party[5] es el último)

Código:
def randomParalysis
  poke = $Trainer.party[rand($Trainer.party.length - 1)] 
  poke.status = PBStatuses::PARALYSIS
end
Como ves el código es de lo más sencillo, lo primero que hacemos es asignar la variable "poke" a un Pokémon del equipo (que se guarda en la variable $Trainer.party), para hacerlo aleatorio llamamos al comando rand(x) que lo que hace es generar un número aleatorio entre 0 y el número que sea x, en este caso el número que hemos dado es la longitud del array del equipo, o sea, el número de Pokémon que tenemos. Además verás que le he restado 1, esto es porque como he dicho antes la primera posición es el 0 y la última es el 5 pero obviamente la longitud devuelve el número de elementos en el array, así que tenemos que restarle 1 para obtener el valor real.
Buenas klein mira es que lo he estado probando y tal y ahora me surge la duda de como poner que en vez de que solo a uno le afecte el veneno, la paralisis o lo que sea, le afecte a varios, por ejemplo a 3 y tambien quería saber como hacer que afecte directamente a todo el equipo, supongo que es posible pero que habría que crear un codigo nuevo para cada caso y en ese caso me gustaría que me enseñaras como sería jaja (no se si esto debería hacerse en un tema nuevo si es así borro y hago uno nuevo o lo que sea no quiero romper reglas de foro o algo)
 
Última edición:

Morel X

Pues bueno aquí estamosxD
Hola, no sé si te servirá de mucho pero he encontrado un script para lo que quieres hacer, te dejo el link a la página del script:

https://reliccastle.com/resources/88/
Gracias, es otra forma a la que me han dicho y me interesa esa que pone daño de porcentaje pero no entiendo muy bien como se pondría en el main solo sin poner los otros y como ponerlo luego en el evento que haga el daño con el porcentaje que quiero, sabrías mostrarme un ejemplo?
 
Estado
Cerrado para nuevas respuestas.
Arriba