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.
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, réglez 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, réglez sa santé à 0local trapPart = script.Parentlocal function onTouch(otherPart)endConnectez 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.Parentlocal function onTouch(otherPart)endtrapPart.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.
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 réglez 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 d'impression 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.
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.
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 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.