Roblox · Дополнительное
Наступил на кнопку — с неба на тебя сыплются разноцветные мячи. Кнопка краснеет до конца дождя и перезарядки, мячи исчезают сами через 8 секунд.
Синим — что нужно создать.
Workspace └─ ItemRain (Model) ├─ Button (Part) — кнопка на полу ├─ Configuration (Configuration) — Count, Radius, Height, Cooldown └─ RainServer (Script)
Где: Workspace → ItemRain · Script
Зачем: Мячи с неба.
-- игроки
local Players = game:GetService("Players")
-- удаление по таймеру
local Debris = game:GetService("Debris")
-- модель ItemRain
local model = script.Parent
-- кнопка на полу
local button = model:WaitForChild("Button")
-- Count, Radius, Height, Cooldown
local config = model:WaitForChild("Configuration")
-- кнопка готова
local ready = true
-- наступили
button.Touched:Connect(function(hit)
-- центр персонажа
local root = hit.Parent:FindFirstChild("HumanoidRootPart")
-- не готова или не игрок
if not ready or not Players:GetPlayerFromCharacter(hit.Parent) or not root then return end
-- до конца дождя и перезарядки кнопка не работает (в оригинале сбрасывалось внутри цикла)
ready = false
-- кнопка красная
button.Color = Color3.fromRGB(200, 60, 60)
-- радиус
local r = config.Radius.Value
-- столько предметов
for i = 1, config.Count.Value do
-- мяч
local ball = Instance.new("Part")
-- шар
ball.Shape = Enum.PartType.Ball
-- случайный размер
local size = 1 + math.random() * 2
-- размер
ball.Size = Vector3.new(size, size, size)
-- случайный яркий цвет
ball.Color = Color3.fromHSV(math.random(), 0.7, 1)
-- высоко над игроком
ball.Position = root.Position + Vector3.new(math.random(-r, r), config.Height.Value, math.random(-r, r))
-- падает
ball.Parent = workspace
-- через 8 секунд исчезнет — без лагов
Debris:AddItem(ball, 8)
-- по одному
task.wait(0.05)
-- конец цикла
end
-- перезарядка
task.wait(config.Cooldown.Value)
-- снова зелёная
button.Color = Color3.fromRGB(80, 200, 90)
-- можно снова
ready = true
-- конец функции
end)Запусти Play (или Run) и убедись: