As declarações if podem ter múltiplos requisitos que precisam ser verdadeiros antes de executar o código. A palavra-chave and permite combinar declarações. O código a seguir 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á executado
if 2 + 2 == 6 and 4 ~= 6 then
print("Ambas as declarações são verdadeiras")
end
-- será executado
if 4 + 2 == 6 and 4 ~= 6 then
print("Ambas as declarações são verdadeiras")
endCriar um powerup
Powerups são itens dentro do jogo 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 orbe 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. Em seguida, faça um teste de jogo e verifique seu trabalho.
local speedBoost = script.Parentlocal function onTouch(otherPart)print("Algo tocou speedBoost")endspeedBoost.Touched:Connect(onTouch)A propriedade WalkSpeed é encontrada em objetos Humanoid. Use o mesmo padrão usado ao criar uma parte de armadilha e crie uma condição que verifica 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 andem 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 fiquem muito rápidos, permitindo o aumento de velocidade apenas 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 de jogo, 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 de que o valor atual de WalkSpeed é menor que 50. Após adicionar o aumento, o valor máximo 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 leve salto aciona o evento Touched e chama a função conectada. A propriedade da parte, CanTouch, pode impedir que o evento Touched seja acionado. 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 da parte como falsa. Faça um teste de jogo e certifique-se de que o aumento só se aplica 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, depois defina CanTouch como verdadeiro. Faça um teste de jogo e certifique-se de que o aumento de velocidade pode 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. O 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 sendo maior que 0 e menor que 100. Ou que se houver um Humanoid e sua WalkSpeed for menor ou igual a 50.