Changement de taille

Sur cette page tu trouveras comment faire:

  • Un script serveur de changement de taille automatique
  • Un script Local Joueur pour changer la taille du joueur quand il touche un objet

Script Serveur

Ce script permet d’avoir des objets taggĆ©s dont la taille va varier de faƧon rĆ©guliĆØre. On peut s’en servir pour crĆ©er un obstacle qui grossis et retrecie par exemple:

local CollectionService = game:GetService(« CollectionServiceĀ Ā») — rĆ©cuperer les objets du jeu

Ā 

— constament en train de tourner, verifie les objets du jeu pour savoir si on en a ratĆ© un qui aurait le bon tag
for _, object in pairs(CollectionService:GetTagged(« grossisĀ Ā»)) do — si l’objet Ć  le bon tag
Ā  Ā  if object:IsA(« BasePartĀ Ā») then — on s’assure d’avoir bien touchĆ© l’objet et pas une sous-partie
Ā  Ā  Ā  Ā  local taille_origine = object.Size — on mĆ©morise sa taille normale
Ā  Ā  Ā  Ā  while true do
Ā  Ā  Ā  Ā  Ā  Ā  object.Size *= 2 — double de taille
Ā  Ā  Ā  Ā  Ā  Ā  wait(5)
Ā  Ā  Ā  Ā  Ā  Ā  object.Size = taille_origine –reviens normal
Ā  Ā  Ā  Ā  Ā  Ā  wait(5)
Ā  Ā  Ā  Ā  end
Ā  Ā  end
end

Serveur Script Joueur

Le changement de taille du joueur doit ĆŖtre gĆ©rĆ©e par serveur car sinon ce n’est visible que par le joueur qui le fait.
Pour plus d’infos sur les chose gĆ©rĆ©e par le serveur VS celles gĆ©rĆ©es par le joueur, regarde la fiche Variable Serveur.

local CollectionService = game:GetService("CollectionService") --récupère les objets du jeu

local control = false

local function ObjetTouchee(objet,other) -- la fonction qui se lancer quand il y a contact
Ā  Ā  local humanoid = other.Parent:FindFirstChildOfClass("Humanoid")
Ā  Ā  if control == false and humanoid then
Ā  Ā  Ā  Ā  control = true Ā  Ā  Ā 
Ā  Ā  Ā  Ā  humanoid.BodyWidthScale.Value = 0.5 -- largeur du corps
Ā  Ā  Ā  Ā  humanoid.BodyDepthScale.Value = 0.5 -- epaisseur du corps
Ā  Ā  Ā  Ā  humanoid.BodyHeightScale.Value = 0.5 -- hauteur du corps
Ā  Ā  Ā  Ā  humanoid.HeadScale.Value = 0.5 -- taille de la tĆŖte
Ā  Ā  Ā  Ā  control = false
Ā  Ā  end
end


for _, object in pairs(CollectionService:GetTagged("petit")) do -- pour tout objet taggƩ
    if object:IsA("BasePart") then -- si touché par un humanoid
Ā  Ā  Ā  Ā  object.Touched:Connect(function(otherPart)ObjetTouchee(object,otherPart) -- lancer la fonction
Ā  Ā  Ā  Ā  end)end
end

Choisir sa valeur hors script

On peut utiliser un attribut pour décider de la valeur de taille 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!)

object.Size *= object:GetAttribute("taille")
Ā 
humanoid.BodyWidthScale.Value = object:GetAttribute("largeur") -- largeur du corps
humanoid.BodyDepthScale.Value = object:GetAttribute("epaisseur") -- epaisseur du corps
humanoid.BodyHeightScale.Value = object:GetAttribute("hauteur") -- hauteur du corps
humanoid.HeadScale.Value = object:GetAttribute("tete") -- taille de la tĆŖte
Retour en haut