Crée des zones de danger qui vont réduire la santé des joueurs lorsqu’ils les touchent. Pour commencer, apprend à créer une grande partie invisible au niveau de l’eau, de sorte que tomber dans celle-ci entraine la disparition du joueur et le fasse recommencer au début du jeu.
Pour créer cette zone de danger :
- Dans la fenêtre de l’Explorateur , ajoute un nouveau dossier dans le dossier Monde , puis renomme-le : Hazards .
- Dans le dossier Hazards , insére une partie bloc et renomme-la Hazard :
Sur le + à droite de World demande à insérer un Model :

Puis renomme ce model en Hazards :

Puis dans l’onglet MODELE, demande un nouveau Elément Bloc :

Puis glisse ce nouvel objet sous Hazards :

Renomme le Hazard :

Déplace et met à l’échelle la zone de danger pour couvrir l’eau autour des plates-formes. Par exemple, avec ces données :

Puis modifie ces propriétés pour que la zone de danger soit invisible et que les joueurs puissent le traverser :
Règle la transparence sur 1. Cela rend le danger invisible, de sorte que l’eau réelle semble être le danger:

Désactive CanCollide . Cela indique au moteur ROBLOX que les autres parties peuvent traverser le danger sans interruption, ce qui signifie que les joueurs peuvent tomber à travers le danger.
Active Ancre . Cela indique au moteur ROBLOX de ne jamais modifier la position de la zone de danger.

Crée un script dans ServerScriptService , puis renommez-le en HazardService :

Remplace le code par défaut par le code suivant :
local workspace = game:GetService("Workspace")
local hazards = workspace.World.Hazards:GetChildren()
local function onHazardTouched(player, hazard)
if not hazard:GetAttribute("Enabled") then
return
end
local character = player.Parent
local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
for _, hazard in hazards do
hazard:SetAttribute("Enabled", true)
hazard.Touched:Connect(function(player)
onHazardTouched(player, hazard)
end)
end
Joue et tombe dans l’eau autour des plateformes :


Rajoute des animations sur les zones de danger
Mettre le feu
Installe une zone où un incendie se déclenche aléatoirement, à ne pas traverser au péril de perdre une vie.
Dans la boîte à outil recherche une animation d’un feu : fire :

Sélectionne l’animation Realistic Fire With Smoke, un feu avec de la fumée. Puis glisse cette animation sous Hazards :

Positionne ton incendie à un endroit stratégique de ton jeu :

Modifie le script HazardService en ajoutant cette programmation qui va sur un intervalle de temps aléatoire allumer ou éteindre le feu en rendant ainsi la zone dangereuse ou pas.
local workspace = game:GetService("Workspace")
local hazards = workspace.World.Hazards:GetChildren()
local function onHazardTouched(player, hazard)
if not hazard:GetAttribute("Enabled") then
return
end
local character = player.Parent
local humanoid = character and character:FindFirstChild("Humanoid")
if humanoid then
humanoid.Health = 0
end
end
for _, hazard in hazards do
hazard:SetAttribute("Enabled", true)
hazard.Touched:Connect(function(player)
onHazardTouched(player, hazard)
end)
end
local runService = game:GetService("RunService")
local interval = math.random(5, 10)
local function updateFire()
for _, hazard in hazards do
local fire = hazard:FindFirstChildOfClass("ParticuleEmitter")
if fire then
fire.Enabled = not fire.Enabled
hazard.SetAttribut("Enabled", fire.Enabled)
end
end
end
Le joueur doit attendre la fin de l’incendie pour pouvoir passer.
Si tu le souhaites, tu peux installer plusieurs zones de feu dans ton jeu :

Une explosion

Rajoute un bloc sous Hazards et renomme le Explosion :


Puis utilise le + à droite de Explosion pour rajouter ParticleEmitter :

Que tu renommes Explosion :

Puis modifie les propriétés suivantes :






Teste le résultat et reviens sur les paramètres pour obtenir le résultat que tu souhaites :

Puis rends le socle transparent et canCollide à False :



Recommence pour une nouvelle zone de danger avec ce nouvel effet comme celui-ci :


Trouve les bons paramètres.
