As declarações if podem ter múltiplos requisitos que precisam ser verdadeiros antes de executar o código. A palavra-chave and permite que você combine declarações. O seguinte código avalia primeiro se dois mais dois é igual a seis e depois se quatro não é igual a seis. Se ambas as declarações forem verdadeiras, o código será executado.
-- não será executadoif 2 + 2 == 6 and 4 ~= 6 thenprint("Ambas as declarações são verdadeiras")end-- será executadoif 4 + 2 == 6 and 4 ~= 6 thenprint("Ambas as declarações são verdadeiras")end
Criar um powerup
Powerups são itens dentro da experiência que dão aos jogadores habilidades especiais como voar, invisibilidade ou velocidade. Este powerup aumentará a velocidade de caminhada do jogador toda vez que o powerup for tocado. Aplicar aumentos continuamente pode fazer com que o jogador fique rápido demais, então and será usado para controlar o limite superior da velocidade de caminhada.
Configurar o powerup
Use este código com uma parte simples ou um modelo, como um cristal, moeda ou esfera neon brilhante.
Crie uma nova parte chamada Powerup e insira um script chamado WalkSpeedManager.
Declare uma variável chamada speedBoost e atribua o objeto pai do script.
-- Dê um aumento de velocidade temporário quando tocadolocal speedBoost = script.ParentConfigure uma função chamada onTouch e conecte-a ao evento Touched do objeto pai. Depois, faça um teste e verifique seu trabalho.
local speedBoost = script.Parentlocal function onTouch(otherPart)print("Algo tocou o speedBoost")endspeedBoost.Touched:Connect(onTouch)A propriedade WalkSpeed é encontrada em objetos Humanoid. Use o mesmo padrão usado ao criar uma parte de trap e crie uma condição que verifica por objetos Humanoid.
Procura por partes Humanoidlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("Um Humanoid foi encontrado")endend
Acelerar os jogadores
O aumento de velocidade fará com que os avatares caminhem mais rápido toda vez que o aumento de velocidade for tocado. Isso rapidamente se tornará muito, muito rápido. A palavra-chave and garantirá que os jogadores não possam ir rápido demais, permitindo o aumento de velocidade somente se o jogador estiver abaixo de uma certa velocidade.
Se um Humanoid for encontrado, pegue o valor atual de WalkSpeed e adicione 10 a ele. Faça um teste e seu avatar ficará mais rápido toda vez que tocar o aumento de velocidade.
Aumenta o WalkSpeed atuallocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)Na declaração if, use a palavra-chave and para adicionar uma segunda condição que o valor atual de WalkSpeed seja menor que 50. Após adicionar o aumento, o maior valor de WalkSpeed será 60.
Verifica se o WalkSpeed atual é 50 ou menosif humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
Ajustar o aumento de velocidade
OnTouch é chamado toda vez que o aumento de velocidade é tocado. Cada passo ou o menor salto dispara o evento Touched e chama a função conectada. A propriedade do objeto, CanTouch, pode impedir que o evento Touched seja disparado. Aproveite o CanTouch e desative o aumento de velocidade por um segundo toda vez que ele for ativado.
Após aplicar o aumento, defina a propriedade CanTouch do objeto como falsa. Faça um teste e certifique-se de que o aumento só seja aplicado uma vez.
Desativa o aumento de velocidadelocal 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)Use task.wait(1) para pausar o script por um segundo e, em seguida, defina CanTouch como verdadeiro. Faça um teste e certifique-se de que o aumento de velocidade possa ser reaplicado após um segundo.
Script finalizadolocal 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)Brinque com os valores no script finalizado. WalkSpeed pode chegar até 100. O valor padrão de WalkSpeed é 16.
Resumo
A palavra-chave and pode ser usada para exigir múltiplas condições antes de executar um bloco de código, como um valor ser maior que 0 e menor que 100. Ou que, se houver um Humanoid e seu WalkSpeed for menor ou igual a 50.