Las declaraciones if pueden tener múltiples requisitos que deben ser verdaderos antes de ejecutar el código. La palabra clave and te permite combinar declaraciones. El siguiente código evalúa primero si dos más dos es igual a seis y luego si cuatro no es igual a seis. Si ambas declaraciones son verdaderas, el código se ejecutará.
-- no se ejecutaráif 2 + 2 == 6 and 4 ~= 6 thenprint("Ambas declaraciones son verdaderas")end-- se ejecutaráif 4 + 2 == 6 and 4 ~= 6 thenprint("Ambas declaraciones son verdaderas")end
Crear un powerup
Los powerups son elementos dentro de la experiencia que otorgan a los jugadores habilidades especiales como volar, invisibilidad o velocidad. Este powerup aumentará la velocidad de caminar del jugador cada vez que el powerup sea tocado. Aplicar continuamente aumentos puede hacer que el jugador vaya demasiado rápido, así que se utilizará and para controlar el límite superior de velocidad al caminar.
Configurar el powerup
Usa este código con una parte simple o un modelo, como un cristal, moneda u orbe de neón brillante.
Crea una nueva parte llamada Powerup e inserta un script llamado WalkSpeedManager.
Declara una variable llamada speedBoost y asigna el objeto padre del script.
-- Da un aumento de velocidad temporal al ser tocadolocal speedBoost = script.ParentConfigura una función llamada onTouch y conéctala al evento Touched del objeto padre. Luego, prueba y verifica tu trabajo.
local speedBoost = script.Parentlocal function onTouch(otherPart)print("Algo tocó speedBoost")endspeedBoost.Touched:Connect(onTouch)La propiedad WalkSpeed se encuentra en objetos Humanoid. Usa el mismo patrón utilizado al crear una parte trampa y crea una condición que verifique si hay objetos Humanoid.
Busca partes Humanoidlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("Se encontró un Humanoid")endend
Acelerar a los jugadores
El aumento de velocidad hará que los avatares caminen más rápido cada vez que se toque el aumento de velocidad. Eso rápidamente se volverá muy, muy rápido. La palabra clave and asegurará que los jugadores no vayan demasiado rápido, habilitando el aumento de velocidad solo si el jugador está por debajo de una cierta velocidad.
Si se encuentra un Humanoid, toma el valor actual de WalkSpeed y súmale 10. Prueba y tu avatar se volverá más rápido cada vez que toque el aumento de velocidad.
Aumenta el WalkSpeed actuallocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)En la declaración if, utiliza la palabra clave and para añadir una segunda condición que el valor actual de WalkSpeed sea menor o igual a 50. Después de añadir el aumento, el valor más rápido de WalkSpeed será 60.
Verifica si el WalkSpeed actual es 50 o menosif humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
Ajustar el aumento de velocidad
onTouch se llama cada vez que se toca el aumento de velocidad. Cada paso o el más mínimo rebote activa el evento Touched y llama a la función conectada. La propiedad de la parte, CanTouch, puede evitar que el evento Touched se dispare. Aprovecha CanTouch y desactiva el aumento de velocidad durante un segundo cada vez que se ha activado.
Después de aplicar el aumento, establece la propiedad CanTouch de la parte a false. Prueba y asegúrate de que el aumento se aplique solo una vez.
Desactiva el aumento de velocidadlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falseendendspeedBoost.Touched:Connect(onTouch)Usa task.wait(1) para pausar el script durante un segundo, luego establece CanTouch a true. Prueba y asegúrate de que el aumento de velocidad se pueda volver a aplicar después de un segundo.
Script terminadolocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falsetask.wait(1)speedBoost.CanTouch = trueendendspeedBoost.Touched:Connect(onTouch)Juega con los valores en el script terminado. WalkSpeed puede llegar hasta 100. El valor predeterminado de WalkSpeed es 16.
Resumen
La palabra clave and se puede utilizar para requerir múltiples condiciones antes de ejecutar un bloque de código, como que un valor sea mayor que 0 y menor que 100. O que si hay un Humanoid y su WalkSpeed es menor o igual a 50.