Размер персонажа: большой, маленький, обычный
Три кнопки изменяют масштаб R15-персонажа.
GrowPad увеличивает игрока в 1,8 раза, ShrinkPad уменьшает до 0,6, NormalPad восстанавливает исходный масштаб.
1. Подготовьте объект
Где разместить: Script в ServerScriptService
Выберите в Game Settings тип аватара R15 (для изменения масштаба Humanoid).
В Workspace создайте три Part: GrowPad, ShrinkPad, NormalPad. Включите Anchored и CanTouch.
В ServerScriptService добавьте обычный Script и вставьте код.
Запустите Play и по очереди наступите на кнопки.
2. Вставьте код
local pads = {
GrowPad = 1.8,
ShrinkPad = 0.6,
NormalPad = 1,
}
local debounce = {}
local function bindPad(padName, factor)
local pad = workspace:WaitForChild(padName)
pad.Touched:Connect(function(hit)
local character = hit:FindFirstAncestorOfClass("Model")
local humanoid = character and character:FindFirstChildOfClass("Humanoid")
if not humanoid or humanoid.Health <= 0 or humanoid.RigType ~= Enum.HumanoidRigType.R15 then return end
if debounce[humanoid] then return end
debounce[humanoid] = true
-- GetAppliedDescription позволяет восстановить исходный масштаб игрока.
local description = humanoid:GetAppliedDescription()
if not humanoid:GetAttribute("IgroBaseHeight") then
humanoid:SetAttribute("IgroBaseHeight", description.HeightScale)
humanoid:SetAttribute("IgroBaseWidth", description.WidthScale)
humanoid:SetAttribute("IgroBaseDepth", description.DepthScale)
humanoid:SetAttribute("IgroBaseHead", description.HeadScale)
end
description.HeightScale = humanoid:GetAttribute("IgroBaseHeight") * factor
description.WidthScale = humanoid:GetAttribute("IgroBaseWidth") * factor
description.DepthScale = humanoid:GetAttribute("IgroBaseDepth") * factor
description.HeadScale = humanoid:GetAttribute("IgroBaseHead") * factor
local ok, err = pcall(function() humanoid:ApplyDescription(description) end)
if not ok then warn("Не удалось изменить размер: ", err) end
task.delay(1, function() debounce[humanoid] = nil end)
end)
end
for name, factor in pairs(pads) do bindPad(name, factor) end
3. Проверьте в игре
Нажмите Play в Roblox Studio и проверьте действие механики. Если механика не работает, откройте окно Output и проверьте тип скрипта, его расположение и названия объектов.
Когда проверите механику в Roblox Studio, отметьте практику как выполненную. Отметка хранится только в этом браузере, не в личном кабинете.
Добавляйте механики по одной и проверяйте окно Output. Не создавайте несколько одинаковых систем монет или интерфейсов; скрипты, меняющие WalkSpeed, прыжок или освещение, могут влиять друг на друга.
Поменяйте 1.8 на 2.2 и 0.6 на 0.8.
Сделайте платформы разного цвета и подпишите их.
Постройте лабиринт, в котором маленький герой проходит в узкий тоннель.
4. Проверьте себя
Что делает площадка NormalPad?
Масштабирование HumanoidDescription работает с R15. Названия GrowPad, ShrinkPad и NormalPad должны совпадать точно.