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.
Créez et nommez une pièce de piège. Insérez un script dans la pièce.
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é à 0local trapPart = script.ParentCréez une fonction nommée onTouch() avec un paramètre nommé otherPart.
-- Si un joueur touche cette pièce, mettez sa santé à 0local trapPart = script.Parentlocal function onTouch(otherPart)endConnectez 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.Parentlocal function onTouch(otherPart)endtrapPart.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.
Dans onTouch(), tapez local character = otherPart.Parent.
local trapPart = script.Parentlocal function onTouch(otherPart)-- Trouve l'objet parent de otherPartlocal character = otherPart.ParentendtrapPart.Touched:Connect(onTouch)Vérifiez si character a un Humanoid en tapant :
local humanoid = character:FindFirstChildWhichIsA("Humanoid")
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")endtrapPart.Touched:Connect(onTouch)
Vérifiez avec une instruction if
Si un Humanoid est trouvé, alors définissez la santé de l'Humanoid à zéro.
Utilisez une instruction if pour vérifier si un Humanoid a été assigné avec succès à local humanoid.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Évalue si un Humanoid a été trouvéif humanoid thenendendtrapPart.Touched:Connect(onTouch)Ajoutez une instruction print et vérifiez le code jusqu'à présent.
local trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Évalue si un Humanoid a été trouvéif humanoid thenprint("Humanoid trouvé")endendtrapPart.Touched:Connect(onTouch)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.
Entre then et end, tapez humanoid.Health = 0.
Script complétélocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Évalue si un Humanoid a été trouvéif humanoid thenprint("Humanoid trouvé")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)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.