Roblox · Дополнительное
Наступил — подбрасывает высоко вверх, разбег сохраняется. Наклони трамплин — и он бросит в сторону наклона.
Синим — что нужно создать.
Workspace └─ Trampoline (Model) — PrimaryPart = Frame; наклон модели = направление броска ├─ Frame (Part) — рама, Anchored ├─ Pad (Part) — сетка сверху рамы, Anchored │ └─ Boing (Sound) — звук пружины ├─ Configuration (Configuration) │ └─ Power (NumberValue) — сила подброса, 100 └─ TrampolineServer (Script)
Где: Workspace → Trampoline · Script
Зачем: Подбрасывает наступившего вверх по наклону трамплина.
-- трамплин — модель: рама Frame и сетка Pad
local trampoline = script.Parent
-- упругая сетка: на неё прыгают
local pad = trampoline:WaitForChild("Pad")
-- сила подброса
local config = trampoline:WaitForChild("Configuration")
-- звук пружины — в сетке
local boing = pad:WaitForChild("Boing")
-- удаление по таймеру
local Debris = game:GetService("Debris")
-- на трамплин что-то наступило
pad.Touched:Connect(function(otherPart)
-- модель, которой принадлежит деталь
local model = otherPart:FindFirstAncestorOfClass("Model")
-- живая?
local humanoid = model and model:FindFirstChildOfClass("Humanoid")
-- центр персонажа
local root = model and model:FindFirstChild("HumanoidRootPart")
-- не живая — пропускаем
if not humanoid or not root or humanoid.Health <= 0 then return end
-- только что подбросило — не повторяем
if os.clock() - (model:GetAttribute("BouncedAt") or 0) < 0.5 then return end
-- запоминаем время
model:SetAttribute("BouncedAt", os.clock())
-- точка приложения
local attachment = Instance.new("Attachment")
-- в центр персонажа
attachment.Parent = root
-- толчок; работает и на игроках
local push = Instance.new("LinearVelocity")
-- куда приложен
push.Attachment0 = attachment
-- без ограничения силы
push.MaxForce = math.huge
-- скорость бега по земле — сохраняем её
local run = root.AssemblyLinearVelocity * Vector3.new(1, 0, 1)
-- вверх по наклону сетки + разбег
push.VectorVelocity = pad.CFrame.UpVector * config.Power.Value + run
-- толкаем
push.Parent = root
-- толчок короткий
Debris:AddItem(push, 0.15)
-- убираем и точку
Debris:AddItem(attachment, 0.15)
-- звук
boing:Play()
-- конец обработчика
end)Запусти Play (или Run) и убедись: