Si/alors Pratiquer 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 déclarations conditionnées. Exercez-vous à utiliser des conditionnels en créant une partie qui définit la santé du joueur à zéro lorsqu'elle est touchée.

Configurer le piège

Les pièges fonctionnent de manière exceptionnelle dans les expériences basées 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 d'abord les boîtes de code.

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

  2. Dans le script, ajoutez un commentaire descriptif et utilisez ensuite une variable pour référencer le script's parent.


    -- Si un joueur touche cette partie, définir sa santé sur 0
    local trapPart = script.Parent
  3. Créer une fonction nommée onTouch() avec un paramètre nommé otherPart.


    -- Si un joueur touche cette partie, définir sa santé sur 0
    local trapPart = script.Parent
    local function onTouch(otherPart)
    end
  4. Connectez la fonction à l'événement Touched de la partie pour exécuter chaque fois que quelque chose touche la partie.


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

Vérification de la touche du joueur

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

Pour vous assurer que le piège ne détruira que les joueurs et ne détruira pas d'objets de décor aléatoires, utilisez une if/then statement pour vérifier si tout ce qui est dans otherPart contient un objet Humanoïde.

Recherche d'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, donc une variable doit être configurée pour trouver le parent de la partie touchée et le 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 d'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érification avec une if déclaration

Si un humanoid est trouvé, alors définir la santé du humanoid sur zéro.

  1. Utilisez une if statement pour vérifier si un Humanoid 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 humanoid 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 humanoid 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, type 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 humanoid a été trouvé
    if humanoid then
    print("Found a Humanoid")
    humanoid.Health = 0
    end
    end
    trapPart.Touched:Connect(onTouch)
  2. Testez le piège.

Résumé

Cette partie de piège utilisait des conditionnels pour détecter des pièces humanoïdes et définir la santé de l'humanoïde sur zéro. Ce script est une amélioration du script de pièce humanoïde précédent, qui a détruit n'importe quel objet touchant quel que soit son état.

Cependant, il contient toujours 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 n'est que bon à définir la santé du joueur à zéro. Vous pouvez expérimenter avec la soustraction d'une petite quantité de santé, mais il est probable que la santé soit soustraite plus rapidement que souhaité. Les leçons ultérieures fournissent de meilleures améliorations pour four