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")
Retour en haut