Lave meurtrière

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Dans Introduction au scripting, vous avez appris à faire des modifications dans une expérience en boucle dans le temps.Et si vous voulez faire des modifications en fonction du comportement des utilisateurs ? Dans ce tutoriel, vous apprendrez à créer un sol de lave mortel qui tue les utilisateurs lorsqu'ils y marchent.

Mettre en place

Vous avez besoin d'un endroit dans votre monde pour placer la lave mortelle.Si vous avez suivi le cours Introduction à la programmation, le plancher de lave s'insérerait bien dans l'écart couvert par les plateformes disparues.

  1. Insérez un Part et déplacez-le dans votre monde. Nommez-le LavaFloor .

  2. Redimensionnez-le pour qu'il couvre le sol de l'espace clos.

  3. Faites en sorte que le sol ressemble plus à de la lave en définissant la propriété Material à Neon et la propriété Color à une teinte orange.

  4. Insérez un script dans la partie LavaFloor et renommez-le en Kill.

  5. Supprimez le code par défaut et créez une variable pour la lave.


    local lava = script.Parent

Se connecter à un événement

Utilisez un événement évenement pour détecter quand un utilisateur touche la lave.Chaque partie a un événement Touched qui se déclenche quand quelque chose la touche.Vous pouvez vous connecter à cet événement pour exécuter une fonction lorsqu'il se déclenche.

  1. Déclarez une nouvelle fonction appelée kill.

  2. Accédez à l'événement Touched de l'objet de lave en utilisant un point, tout comme une propriété : lava.Touched .

  3. Appellez la fonction Connect sur l'événement Touched, en passant kill() comme fonction à appeler lorsque la partie est touchée.


    local lava = script.Parent
    local function kill()
    end
    lava.Touched:Connect(kill)

Tout code que vous écrivez dans la fonction kill sera exécuté chaque fois que quelque chose touchera la lave.Notez qu'une colonne est utilisée pour la fonction , pas un point - ne vous inquiétez pas pourquoi à ce stade, souvenez-vous simplement de la différence

Obtenir la partie touchante

Pour tuer l'utilisateur, la fonction a besoin d'un objet associé à cet utilisateur.L'événement d'une partie peut fournir l'« autre partie » qui l'a touchée — mais seulement si vous le demandez en la faisant devenir un paramètre de la fonction.

Les paramètres sont des définitions de ce qu'une fonction s'attend à recevoir lorsqu'elle est appelée.Un paramètre peut être utilisé dans une fonction tout comme toute autre variable.Vous pouvez transmettre des informations à un paramètre en les incluant entre parenthèses lorsqu'une fonction est appelée.Les paramètres sont définis dans les parenthèses sur la première ligne d'une fonction.Créer un paramètre appelé pour la fonction .


local lava = script.Parent
local function kill(otherPart)
end
lava.Touched:Connect(kill)

Lorsque la fonction kill est appelée, le paramètre otherPart représentera la partie qui a touché le plancher de lave, et le code que vous écrivez dans la fonction pourra l'utiliser.

Caractère et humanoïde

Lorsqu'un utilisateur touche la lave, Roblox peut détecter la partie spécifique du corps de l'utilisateur qui l'a touchée, comme la jambe gauche ou le pied droit.Cette partie est dans le modèle caractère de l'utilisateur, qui contient tous les objets qui composent l'avatar de l'utilisateur dans l'expérience, y compris :

  • Les parties du corps individuelles de l'utilisateur telles que la tête, les membres et le torse.
  • Toute tenue et accessoire portés par l'utilisateur.
  • Le Humanoid , un objet spécial qui contient de nombreuses propriétés liées à l'utilisateur, y compris la santé de l'utilisateur
  • La partie racine humanoïde qui contrôle le mouvement de l'utilisateur.

Comme mentionné précédemment, toute partie du corps qui touche la lave fait partie du modèle de personnage, vous pouvez donc obtenir une référence à ce personnage avec otherPart.Parent .Créez une variable pour stocker le parent de la partie qui a touché le plancher de lave.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
end
lava.Touched:Connect(kill)

A partir du modèle de personnage, vous devrez obtenir l'objet Humanoid pour tuer l'utilisateur.Vous pouvez le faire avec la fonction FindFirstChild()—il suffit de lui passer le nom de la chose que vous cherchez et elle fournit le premier enfant correspondant qu'elle trouve dans cet objet.Appellez FindFirstChild() sur la variable partParent avec "Humanoid" comme enfant pour trouver et stocker le résultat dans une nouvelle variable appelée humanoid.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
end
lava.Touched:Connect(kill)

Vérifiez le humanoïd

Vous pouvez facilement vérifier si l'Humanoïde a été trouvé en utilisant une déclaration si .Le code dans une déclaration if s'exécutera seulement si la condition définie dans la première ligne est vraie.

Il existe une variété d'opérateurs qui peuvent être utilisés pour construire des conditions plus complexes que vous rencontrerez dans les cours futurs - pour l'instant, mettez simplement la variable là.Créez une déclaration si avec humanoid comme condition.


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
end
end
lava.Touched:Connect(kill)

Définir la santé du personnage

Maintenant que le Humanoid a été vérifié, ses propriétés peuvent être modifiées.Si vous définissez sa propriété Health à 0 , le personnage associé meurt.Dans le corps de la déclaration if, définissez la propriété Health de l'humanoïde à 0.


local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)

Avec cela, votre plancher de lave est complet ! Testez votre expérience et vous devriez trouver que votre lave mortelle tue avec succès les utilisateurs au contact.Essayez d'utiliser votre lave comme défi supplémentaire dans un obby, ou comme limite pour un monde.

Le code final


local lava = script.Parent
local function kill(otherPart)
local partParent = otherPart.Parent
local humanoid = partParent:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
lava.Touched:Connect(kill)