Pratique if/then avec des pièges

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Les pièges qui diminuent la santé des joueurs sont un élément de jeu amusant qui peut être codé avec des instructions conditionnelles. Pratiquez l'utilisation des conditionnels en créant une pièce qui réduit la santé du joueur à zéro lorsqu'elle est touchée.

Configurer le piège

Les pièges fonctionnent exceptionnellement bien dans les jeux avec des défis basés sur le mouvement, comme les obbies. Ces étapes commenceront par la configuration des variables et des fonctions nécessaires. Faites autant que vous pouvez sans regarder d'abord les blocs de code.

  1. Créez et nommez une pièce de piège. Insérez un script dans la pièce.

  2. Dans le script, ajoutez un commentaire descriptif, puis utilisez une variable pour référencer le parent du script.

    -- Si un joueur touche cette pièce, mettez sa santé à 0
    local trapPart = script.Parent
  3. Créez une fonction nommée onTouch() avec un paramètre nommé otherPart.

    -- Si un joueur touche cette pièce, mettez sa santé à 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Connectez la fonction à l'événement Touched de la pièce de piège pour qu'elle s'exécute chaque fois que quelque chose touche la pièce.

    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
    trapPart.Touched:Connect(onTouch)

Vérifiez le contact du joueur

N'oubliez pas que le paramètre otherPart enregistre ce qui touche la pièce de piège, qui peut être une partie d'un joueur ou simplement la base.

Pour s'assurer que le piège ne détruira que les joueurs et ne détruira pas des objets de décoration aléatoires, utilisez une instruction if/then pour vérifier si ce qui se trouve dans otherPart contient un objet Humanoid.

Trouver un objet spécifique

La fonction FindFirstChildWhichIsA() peut être utilisée pour rechercher des types d'objets spécifiques, ce qui est pratique car nous recherchons un objet de type Humanoid. Les joueurs toucheront probablement le piège avec seulement une partie de leur avatar, donc une variable doit être configurée pour trouver le parent de la partie touchante et le rechercher pour un Humanoid.

  1. Dans onTouch(), tapez local character = otherPart.Parent.

    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Trouve l'objet parent de otherPart
    local character = otherPart.Parent
    end
    trapPart.Touched:Connect(onTouch)
  2. Vérifiez si character a un Humanoid en tapant :

    local humanoid = character:FindFirstChildWhichIsA("Humanoid")

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    end
    trapPart.Touched:Connect(onTouch)

Vérifiez avec une instruction if

Si un Humanoid est trouvé, alors définissez la santé de l'Humanoid à zéro.

  1. Utilisez une instruction if pour vérifier si un Humanoid a été assigné avec succès à local humanoid.

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Évalue si un Humanoid a été trouvé
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Ajoutez une instruction print et vérifiez le code jusqu'à présent.

    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Évalue si un Humanoid a été trouvé
    if humanoid then
    print("Humanoid trouvé")
    end
    end
    trapPart.Touched:Connect(onTouch)
  3. Exécutez le code et vérifiez que vous pouvez voir la sortie chaque fois qu'un joueur touche la pièce.

Changer la santé du joueur

Si l'instruction est vraie, vous pouvez utiliser la même variable humanoïde pour définir la santé du joueur à 0.

  1. Entre then et end, tapez humanoid.Health = 0.

    Script complété
    local trapPart = script.Parent
    local function onTouch(otherPart)
    local character = otherPart.Parent
    local humanoid = character:FindFirstChildWhichIsA("Humanoid")
    -- Évalue si un Humanoid a été trouvé
    if humanoid then
    print("Humanoid trouvé")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Testez le piège.

Résumé

Cette pièce de piège a utilisé des conditionnels pour détecter des parties Humanoid et définir la santé de l'Humanoid à zéro. Ce script est une amélioration par rapport au script de piège précédent, qui détruisait tout objet touchant, peu importe ce que c'était.

Cependant, il a encore quelques défauts. Les humanoïdes ne se trouvent pas seulement chez les joueurs. Les humanoïdes se trouvent également chez les personnages non jouables. Le script est également seulement bon pour réduire la santé du joueur à zéro. Vous pouvez expérimenter avec la soustraction d'une petite quantité de santé, mais il est probable que cela soustraie la santé plus rapidement que désiré. Les leçons ultérieures fourniront d'autres améliorations pour donner un meilleur contrôle sur la quantité de santé soustraite aux joueurs.

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.