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