[RPG - Scripting] Impedir el paso al jugador dependiendo de los pokemon que tenga


Like Tree5Gracias
Tema cerrado
 
Herramientas Desplegado
  #1  
28/05/2018
Predeterminado Impedir el paso al jugador dependiendo de los pokemon que tenga
Buenas, pues quería saber como hacer esto, quiero acceder a una zona pero hay un npc que me dice que no puedo pasar a menos que todos mis pokemon sean del tipo planta o de cualquier otro tipo, es esto posible? y de ser así como podría hacerlo?

O por ejemplo que solo pueda pasar si tengo determinados pokemon por ejemplo, solo puedo pasar si tengo en mi equipo a pikachu, caterpie y geodude, si tengo alguno más o no tengo todos esos no me deje pasar
  #2  
28/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Yo quisiera saber (para la batalla contra un Pokémon legendario maligno de mi proyecto
  #3  
28/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Para esto tendrías que comprobar algo en todo el equipo, lo más fácil es crear un script y ejecutarlo desde un condicional en el evento.
Para el caso de que todos los Pokémon tengan que ser de tipo planta sería algo así:

Código:
def checkTypes(type)
  $Trainer.party.each {|x| # Bucle por todo el equipo, x es el Pokémon actual
    if x.type1 != type && x.type2 != type # Comprueba que el tipo sea el tipo que le hemos dado
      return false # Si no alguno no lo es, devolvemos false
    end
  }
  return true # Si hemos llegado hasta aquí es que todos los Pokémon son válidos, devolvemos true
end
Luego simplemente en la condición lo llamas (ten en cuenta que primero tienes que pegarlo en un nuevo script encima de main o donde quieras), por ejemplo para que todo el equipo sea de tipo planta:

Código:
checkTypes(PBTypes::GRASS)
Para lo segundo no necesitarías ningún script extra, puedes combinar los ya existentes, en la condición tendrías que poner algo así:

Código:
$Trainer.party.length == 3 && pbHasSpecies?(:PIKACHU) && pbHasSpecies?(:CATERPIE) && pbHasSpecies?(:GEODUDE)
Gracias: Morel X y nlades
  #4  
28/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
¿Y cómo le hago si necesito que tenga los legendarios y el inicial (son 5 iniciales y 5 legendarios benignos)?
  #5  
29/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Dicho por NeonMixTour611 Ver mensaje
¿Y cómo le hago si necesito que tenga los legendarios y el inicial (son 5 iniciales y 5 legendarios benignos)?
¿Has leído mi respuesta?
He dejado este ejemplo:
Código:
$Trainer.party.length == 3 && pbHasSpecies?(:PIKACHU) && pbHasSpecies?(:CATERPIE) && pbHasSpecies?(:GEODUDE)
Simplemente modifica las especies de los Pokémon.
Como vas a necesitar el equipo completo puedes quitar el $Trainer.party.length == 3 o ponerlo a 6.
  #6  
29/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Me refiero a por si tiene cierto inicial (uno de los 5) y los 5 legendarios
  #7  
29/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Por lo que sé el comando && es equivalente al "y" entonces el || es el equivalente al "o"

Yo haría algo como:

pbHasSpecies?(:Inicial1) || pbHasSpecies?(:inicial2) || pbHasSpecies?(:inicial3)
PbHasSpecies?(:legendarios del 1 al 5 con && entre ellos)

Antigua


  #8  
29/05/2018
Predeterminado
Gracias... Ya guardé el tema (¿También aplica para GBA?)

además... ¿sería así?

pbHasSpecies?(:Mikanto) || pbHasSpecies?(:Gantari) || pbHasSpecies?(:Solinthe) || pbHasSpecies?(:Fengaru) || pbHasSpecies?(:Rederia)
pbHasSpecies?(:Tlanextli) && pbHasSpecies?(:Itlakayotl) && pbHasSpecies?(:Teyaotlani) && pbHasSpecies?(:Niktemaktli) && pbHasSpecies?(:Neli)
  #9  
29/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Dicho por NeonMixTour611 Ver mensaje
Gracias... Ya guardé el tema (¿También aplica para GBA?)

además... ¿sería así?

pbHasSpecies?(:Mikanto) || pbHasSpecies?(:Gantari) || pbHasSpecies?(:Solinthe) || pbHasSpecies?(:Fengaru) || pbHasSpecies?(:Rederia)
pbHasSpecies?(:Tlanextli) && pbHasSpecies?(:Itlakayotl) && pbHasSpecies?(:Teyaotlani) && pbHasSpecies?(:Niktemaktli) && pbHasSpecies?(:Neli)
No, estás en el subforo de dudas de RPG, esto es solo para RPG.
Y sí, aunque yo pondría a los starters entre paréntesis para que quede claro que es solo una opción.

Código:
(pbHasSpecies?(:Mikanto) || pbHasSpecies?(:Gantari) || pbHasSpecies?(:Solinthe) || pbHasSpecies?(:Fengaru) || pbHasSpecies?(:Rederia)) && pbHasSpecies?(:Tlanextli) && pbHasSpecies?(:Itlakayotl) && pbHasSpecies?(:Teyaotlani) && pbHasSpecies?(:Niktemaktli) && pbHasSpecies?(:Neli)
  #10  
29/05/2018
Predeterminado Respuesta: Impedir el paso al jugador dependiendo de los pokemon que tenga
Dicho por KleinStudio Ver mensaje
Para esto tendrías que comprobar algo en todo el equipo, lo más fácil es crear un script y ejecutarlo desde un condicional en el evento.
Para el caso de que todos los Pokémon tengan que ser de tipo planta sería algo así:

Código:
def checkTypes(type)
  $Trainer.party.each {|x| # Bucle por todo el equipo, x es el Pokémon actual
    if x.type1 != type && x.type2 != type # Comprueba que el tipo sea el tipo que le hemos dado
      return false # Si no alguno no lo es, devolvemos false
    end
  }
  return true # Si hemos llegado hasta aquí es que todos los Pokémon son válidos, devolvemos true
end
Luego simplemente en la condición lo llamas (ten en cuenta que primero tienes que pegarlo en un nuevo script encima de main o donde quieras), por ejemplo para que todo el equipo sea de tipo planta:

Código:
checkTypes(PBTypes::GRASS)
Para lo segundo no necesitarías ningún script extra, puedes combinar los ya existentes, en la condición tendrías que poner algo así:

Código:
$Trainer.party.length == 3 && pbHasSpecies?(:PIKACHU) && pbHasSpecies?(:CATERPIE) && pbHasSpecies?(:GEODUDE)
Muchas gracias eres el mejor! voy aprobarlo ahora mismo pero dime, lo que hay que poner en el main es lo de: checkTypes(PBTypes::GRASS)? o lo primero? y sobre lo ultimo si lo pones así te impidiria el paso si llevas mas pokemon aparte de esos o si por ejemplo llevas 2 pikachu?
Tema cerrado

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 02:25.