Registrarse

[RPG - Scripting] Evento aleatorio

Estado
Cerrado para nuevas respuestas.

Sulphur Alchemist

Usuario de platino
Buenas, tengo un evento en el que si te colocas sobre él, todo el equipo se envenena. Me gustaría hacer ese mismo evento pero con un efecto aleatorio (envenenamiento, parálisis, quemadura, sueño, congelación...) sobre el estado del Pokémon. ¿Cómo podría plantearlo?

Muchas gracias de antemano.
 

Kaiser de Emperana

Called in hand
No explicaste mucho de como es que está funcionando tu evento, pero supongo que lo que hacés es llamar a un script que seal algo así:
Código:
def envenenar_equipo
	$Trainer.party.each do |pkmn|
		pkmn.status = PBStatuses::POISON
	end
end
Lo que tendráis que hacer es básicamente lo mismo, sólo que primero seleccionás el estado aleatoriamente con rand.
Código:
def asignar_problema_estado_aleatorio
	# Listar todos los problemas de estado que queremos asignar
	problemas_estado = [PBStatuses::SLEEP, PBStatuses::POISON, PBStatuses::BURN, PBStatuses::PARALYSIS, PBStatuses::FROZEN]

	# Seleccionar un problema de estado aleatorio de la lista
	problema_estado_a_asignar = problemas_estado[rand(problemas_estado.length - 1)]

	# Asignar el problema de estado
	$Trainer.party.each do |pkmn|
		pkmn.status = problema_estado_a_asignar
	end
end
Avisame si no se entiende.
 

Sulphur Alchemist

Usuario de platino
No explicaste mucho de como es que está funcionando tu evento, pero supongo que lo que hacés es llamar a un script que seal algo así:
Código:
def envenenar_equipo
	$Trainer.party.each do |pkmn|
		pkmn.status = PBStatuses::POISON
	end
end
Lo que tendráis que hacer es básicamente lo mismo, sólo que primero seleccionás el estado aleatoriamente con rand.
Código:
def asignar_problema_estado_aleatorio
	# Listar todos los problemas de estado que queremos asignar
	problemas_estado = [PBStatuses::SLEEP, PBStatuses::POISON, PBStatuses::BURN, PBStatuses::PARALYSIS, PBStatuses::FROZEN]

	# Seleccionar un problema de estado aleatorio de la lista
	problema_estado_a_asignar = problemas_estado[rand(problemas_estado.length - 1)]

	# Asignar el problema de estado
	$Trainer.party.each do |pkmn|
		pkmn.status = problema_estado_a_asignar
	end
end
Avisame si no se entiende.
Pues no me funciona, si pudieras explicarme qué significa lo siguiente:

Código:
problema_estado_a_asignar = problemas_estado[rand(problemas_estado.length - 1)]
Me imagino lo que es, pero quiero saber para qué sirve cada palabra, así como el número. Más o menos es como te has figurado, el objetivo es que cuando el jugador pise el evento, el equipo quede afectado por un problema de estado aleatorio.

Muchas gracias de antemano.
 

MrGrossi

El Quesos
Puedes asignarle a una variable un valor aleatorio y luego con condicionales meterle los problemas de estado dependiendo del valor. Por ejemplo, tú le asignas un valor aleatorio a la variable que tú quieras, un valor entre 1-6, si sale 1, parálisis, si sale 2, veneno... Lo puedes hacer mediante eventos y que dependiendo del valro haga un script u otro si lo ves más fácil.
 

Kaiser de Emperana

Called in hand
Pues no me funciona, si pudieras explicarme qué significa lo siguiente:

Código:
problema_estado_a_asignar = problemas_estado[rand(problemas_estado.length - 1)]
Me imagino lo que es, pero quiero saber para qué sirve cada palabra, así como el número. Más o menos es como te has figurado, el objetivo es que cuando el jugador pise el evento, el equipo quede afectado por un problema de estado aleatorio.

Muchas gracias de antemano.
ran genera un número aleatorio de 0 al valor que le pases, y bueno lo otro es básicamente acceder al vector que se creo antes. Esa linea simplemente elige uno de los estados aleatoriamente.

Me parece raro que no te funcione. ¿No funciona nunca? ¿No tira error ni nada?
 

Pikaplu

Usuario amable y agradecido
https://newpokeliberty.blogspot.com/2017/05/scripts-dar-estados-fuera-de-batalla.html aqui tienes para dar estados fuera de batalla ahora para hacer que se de al azar das variables al azar por ejemplo: si quieres los que mencionaste serian 5 asi que reproduces la variable de 1 entre 5 y con un condicional activas el evento depende de la variable que salga podrias hacer un evento comun para esto y no repetir el proceso siempre.

Ejemplo: (reproducir variable de 1 entre 5)
Si sale 1 = el script de congelar
Si sale 2 = el script de paralizar
Etc etc. Los script de dar estados estan en el link :p.
 
Estado
Cerrado para nuevas respuestas.
Arriba