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