Si/alors pratiquez 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 amusant du jeu qui peut être codé avec des déclarations conditionnelles.Pratiquez l'utilisation des conditionnels en créant une partie qui définit la santé du joueur à zéro lorsqu'il est touché.

Configurer 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 les fonctions nécessaires.Faites autant que vous le pouvez sans regarder les boîtes de code en premier.

  1. Créer et nommer une partie de piège. Insérer un script dans la partie.

  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 partie, définissez 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 partie, définissez sa santé à 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Connectez la fonction à l'événement Touched de la partie piège pour qu'elle s'exécute chaque fois que quelque chose touche la partie.


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

Vérifier la touche du joueur

Rappelez-vous, le paramètre otherPart enregistre tout ce qui touche la partie du piège, qui peut être une partie d'un joueur ou simplement la Plaque de base.

Pour assurer que le piège ne détruira que les joueurs et ne détruira pas d'objets de décoration aléatoires, utilisez une déclaration if/then pour vérifier si quelque chose contient dans otherPart contient un objet Humanoïde.

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 Humanoïde.Les joueurs toucheront probablement le piège avec seulement une partie de leur avatar, il faut donc configurer une variable pour trouver le parent de la partie touchée et la rechercher pour un humanoïde.

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


    local trapPart = script.Parent
    local function onTouch(otherPart)
    -- Trouve l'objet parent de l'autre partie
    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érifier avec une déclaration if

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

  1. Utilisez une déclaration if pour vérifier si un Humanoïde a été attribué 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 humanoïde a été trouvé
    if humanoid then
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Ajoutez une déclaration 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 humanoïde a été trouvé
    if humanoid then
    print("Found a Humanoid")
    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 partie.

Modifier la santé du joueur

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

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

    Script script

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

Sommaire

Cette partie du piège utilisait des conditions pour détecter des parties humanoïdes et mettait la santé de l'humanoïde à zéro.Ce script est une amélioration du script de piège précédent, qui a détruit tout objet touchant, peu importe ce qu'il était.

Il a cependant encore quelques défauts.Les humanoïdes ne sont pas seulement dans les joueurs.Les humanoïdes sont également trouvés dans les personnages non jouables.Le script est également seulement bon pour définir 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 apportent d'autres améliorations pour donner un plus grand contrôle sur la quantité de santé soustraite aux joueurs.