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.
Créez et nommez une partie de piège. Insérez un script dans la partie.
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 0local trapPart = script.ParentCréer une fonction nommée onTouch() avec un paramètre nommé otherPart.
-- Si un joueur touche cette partie, définir sa santé sur 0local trapPart = script.Parentlocal function onTouch(otherPart)endConnectez la fonction à l'événement Touched de la partie pour exécuter chaque fois que quelque chose touche la partie.
local trapPart = script.Parentlocal function onTouch(otherPart)endtrapPart.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.
Dans onTouch() , tapez local character = otherPart.Parent .
local trapPart = script.Parentlocal function onTouch(otherPart)-- Trouve l'objet parent d'autre partielocal 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érification avec une if déclaration
Si un humanoid est trouvé, alors définir la santé du humanoid sur zéro.
Utilisez une if statement pour vérifier si un Humanoid a été attribué 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 déclaration 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("Found a Humanoid")endendtrapPart.Touched:Connect(onTouch)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.
Entre then et end, type humanoid.Health = 0.
Script scriptlocal trapPart = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")-- Évalue si un humanoid a été trouvéif humanoid thenprint("Found a Humanoid")humanoid.Health = 0endendtrapPart.Touched:Connect(onTouch)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