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 jeulocal control = falselocal 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  endendfor _, 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)endendChoisir 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 corpshumanoid.BodyDepthScale.Value = object:GetAttribute("epaisseur") -- epaisseur du corpshumanoid.BodyHeightScale.Value = object:GetAttribute("hauteur") -- hauteur du corpshumanoid.HeadScale.Value = object:GetAttribute("tete") -- taille de la tĆŖte