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 réduisent la santé des joueurs sont un élément de jeu amusant qui peut être codé avec des instructions conditionnelles. Entraînez-vous à utiliser des conditionnels en créant une pièce qui réduit la santé du joueur à zéro lorsqu'elle est touchée.

Configurez le piège

Les pièges fonctionnent exceptionnellement bien dans les expériences avec des défis basés sur le mouvement, comme les obbies. Ces étapes commenceront par configurer les variables et 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, réglez 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, réglez 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 s'exécuter 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 toucher du joueur

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

Pour s'assurer que le piège détruira uniquement les joueurs et ne détruira pas des objets décoratifs 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 définie 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 réglez 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 d'impression 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.

Changez la santé du joueur

Si l'instruction est vraie, vous pouvez utiliser la même variable humanoïde pour régler 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 régler la santé de l'Humanoid à zéro. Ce script est une amélioration par rapport au précédent script de piège, qui détruisait tout objet touchant, peu importe ce que c'était.

Il a cependant encore quelques défauts. Les humanoïdes ne se trouvent pas seulement chez les joueurs. Les humanoïdes se trouvent également dans des personnages non jouables. Le script est également uniquement bon pour régler la santé du joueur à zéro. Vous pouvez expérimenter en soustrayant une petite quantité de santé, mais il est probable que cela soustraie la santé plus rapidement que souhaité. Les leçons ultérieures offrent d'autres améliorations pour donner plus de 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.