Gravitée et Rebonds
Sur cette page tu trouveras comment faire:
- Un script pour varier la gravitée du joueur, lorsque l’on touche un objet
- Un script pour rebondir lorsque l’on touche un objet
- Un script pour changer la puissance de son saut lorsque l’on touche un objet
- choisir sa valeur hors script
Script Local Joueur: Gravitée lunaire
Comme ce script ne concerne que le joueur, et que les mouvements sont gérés par le serveur par défaut, tout est géré par le script.
local humanoid = script.Parent:WaitForChild("Humanoid") --recupère le corps du joueur pour tester ce qui est touché
local player = game.Players:GetPlayerFromCharacter(script.Parent) -- récupère le joueur dans la liste des joueurs pour gerer les scores
local CS = game:GetService("CollectionService") --liste des objets taggé du jeu
local initialGravity = 196.2 -- La gravité par défaut dans Roblox
humanoid.Touched:Connect(function(hit) --si on touche un objet
if CS:HasTag(hit,"moon") then --si il a le tag qu'on veut
game.Workspace.Gravity = 20 -- Vous pouvez ajuster la gravité ici
wait(5)
game.Workspace.Gravity = initialGravity
end
end)
Script Local Joueur: Boing!
Comme ce script ne concerne que le joueur, et que les mouvements sont gérés par le serveur par défaut, tout est géré par le script.
local humanoid = script.Parent:WaitForChild("Humanoid") --recupère le corps du joueur pour tester ce qui est touché
local player = game.Players:GetPlayerFromCharacter(script.Parent) -- récupère le joueur dans la liste des joueurs pour gerer les scores
local CS = game:GetService("CollectionService") --liste des objets taggé du jeu
humanoid.Touched:Connect(function(hit) --si on touche un objet
if CS:HasTag(hit,"boing") then --si il a le tag qu'on veut
hit.Velocity += Vector3.new(0, 100, 0)
end
end)
Script Local Joueur: Boost de saut
Comme ce script ne concerne que le joueur, et que les mouvements sont gérés par le serveur par défaut, tout est géré par le script.
local humanoid = script.Parent:WaitForChild("Humanoid") --recupère le corps du joueur pour tester ce qui est touché
local player = game.Players:GetPlayerFromCharacter(script.Parent) -- récupère le joueur dans la liste des joueurs pour gerer les scores
local CS = game:GetService("CollectionService") --liste des objets taggé du jeu
local saut_base = Humanoid.JumpHeight --hauteur de saut de base
humanoid.Touched:Connect(function(hit) --si on touche un objet
if CS:HasTag(hit,"saut") then --si il a le tag qu'on veut
Humanoid.JumpHeight = saut_base * 2
end
end)
Choisir sa valeur hors script
On peut utiliser un attribut pour décider de la valeur de saut, de rebond ou de gravitée directement dans Roblox (ce qui rend le script plus versatile)
Consulte la fiche des attributs pour voir comment les créer et change legèrement ton code: (choisi la bonne ligne!)
game.Workspace.Gravity = object:GetAttribute("gravitee")
hit.Velocity += Vector3.new(object:GetAttribute("boing"))
Humanoid.JumpHeight = saut_base * object:GetAttribute("boost")