Полезные скрипты для Роблокс Студио
Подборка полезных скриптов для Роблокс Студио, которые могут Вам пригодиться при создании собственных плейсов и игр в Роблокс.
Скрипт для чекпоинтов
Чекпоинты позволяют игрокам сохранять прогресс на уровнях. Когда игрок достигает чекпоинта, его позиция сохраняется, и в случае смерти он возрождается на этом чекпоинте.
-- Вставьте этот скрипт в чекпоинт (например, в Part)
local checkpoint = script.Parent
local debounce = false
checkpoint.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") and not debounce then
debounce = true
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player then
player:SetAttribute("Checkpoint", checkpoint.Position)
end
wait(1)
debounce = false
end
end)
Также добавьте скрипт для возрождения игрока на чекпоинте:
-- Вставьте этот скрипт в StarterPlayer -> StarterCharacterScripts
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
character:WaitForChild("Humanoid").Died:Connect(function()
wait(5) -- Время до возрождения
if player:GetAttribute("Checkpoint") then
character:SetPrimaryPartCFrame(CFrame.new(player:GetAttribute("Checkpoint")))
else
character:LoadCharacter()
end
end)
Скрипт для сборки монет
Скрипт для добавления монет или других предметов, которые игрок может собирать для получения очков или валюты.
-- Вставьте этот скрипт в монету (например, в Part)
local coin = script.Parent
coin.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local player = game.Players:GetPlayerFromCharacter(hit.Parent)
if player then
player.leaderstats.Coins.Value = player.leaderstats.Coins.Value + 1
coin:Destroy()
end
end
end)
Скрипт для создания табло лидеров
Табло лидеров позволяет отображать очки, деньги или другие статистические данные игроков.
-- Вставьте этот скрипт в ServerScriptService
game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local coins = Instance.new("IntValue")
coins.Name = "Coins"
coins.Value = 0
coins.Parent = leaderstats
end)
Скрипт для телепортации
Создайте телепорт, который перемещает игрока из одного места в другое.
-- Вставьте этот скрипт в телепорт (например, в Part)
local teleportPart = script.Parent
local destination = Vector3.new(0, 50, 0) -- координаты точки назначения
teleportPart.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local character = hit.Parent
character:SetPrimaryPartCFrame(CFrame.new(destination))
end
end)
Скрипт для изменения времени суток
Скрипт для динамического изменения времени суток в игре.
-- Вставьте этот скрипт в ServerScriptService
while true do
for i = 0, 24, 0.1 do
game.Lighting.ClockTime = i
wait(0.1)
end
end)
Скрипт для увеличения скорости игрока
Скрипт для временного увеличения скорости игрока при соприкосновении с определенным объектом.
-- Вставьте этот скрипт в ускоряющий объект (например, в Part)
local speedBoost = script.Parent
speedBoost.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") then
local humanoid = hit.Parent:FindFirstChild("Humanoid")
humanoid.WalkSpeed = humanoid.WalkSpeed * 2
wait(5) -- Время действия ускорения
humanoid.WalkSpeed = humanoid.WalkSpeed / 2
end
end)
Скрипт для анимации персонажа
Этот скрипт позволяет воспроизводить анимацию при выполнении определенного действия, например, при нажатии кнопки.
-- Вставьте этот скрипт в LocalScript в StarterPlayer -> StarterCharacterScripts
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local animation = Instance.new("Animation")
animation.AnimationId = "rbxassetid://1234567890" -- Замените на ID вашей анимации
local animTrack = humanoid:LoadAnimation(animation)
game:GetService("UserInputService").InputBegan:Connect(function(input, gameProcessed)
if input.KeyCode == Enum.KeyCode.E then -- Клавиша, при нажатии на которую будет воспроизводиться анимация
animTrack:Play()
end
end)
Скрипт для создания системы здоровья с полосой здоровья
Скрипт, который добавляет полосу здоровья к персонажу.
-- Вставьте этот скрипт в LocalScript в StarterPlayer -> StarterCharacterScripts
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local screenGui = Instance.new("ScreenGui")
screenGui.Parent = player:WaitForChild("PlayerGui")
local healthBarFrame = Instance.new("Frame")
healthBarFrame.Size = UDim2.new(0.2, 0, 0.05, 0)
healthBarFrame.Position = UDim2.new(0.4, 0, 0.9, 0)
healthBarFrame.BackgroundColor3 = Color3.new(0, 0, 0)
healthBarFrame.Parent = screenGui
local healthBar = Instance.new("Frame")
healthBar.Size = UDim2.new(1, 0, 1, 0)
healthBar.BackgroundColor3 = Color3.new(0, 1, 0)
healthBar.Parent = healthBarFrame
humanoid.HealthChanged:Connect(function(health)
local healthPercentage = health / humanoid.MaxHealth
healthBar.Size = UDim2.new(healthPercentage, 0, 1, 0)
end)
Скрипт для улучшения оружия
Скрипт для создания оружия, которое наносит урон при соприкосновении с противником.
-- Вставьте этот скрипт в оружие (например, в Part)
local weapon = script.Parent
local damage = 10
weapon.Touched:Connect(function(hit)
local humanoid = hit.Parent:FindFirstChild("Humanoid")
if humanoid then
humanoid:TakeDamage(damage)
end
end)
Скрипт для автоматического открытия дверей
Скрипт, который открывает двери, когда игрок подходит к ним, и закрывает, когда игрок уходит.
-- Вставьте этот скрипт в дверь (например, в Part)
local door = script.Parent
local openPosition = door.Position + Vector3.new(0, 0, 5)
local closedPosition = door.Position
local debounce = false
door.Touched:Connect(function(hit)
if hit.Parent:FindFirstChild("Humanoid") and not debounce then
debounce = true
door.Position = openPosition
wait(2)
door.Position = closedPosition
debounce = false
end
end)
Скрипт для создания системы опыта и уровней
Скрипт, который добавляет систему опыта и уровней для игроков.
-- Вставьте этот скрипт в ServerScriptService
game.Players.PlayerAdded:Connect(function(player)
local leaderstats = Instance.new("Folder")
leaderstats.Name = "leaderstats"
leaderstats.Parent = player
local level = Instance.new("IntValue")
level.Name = "Level"
level.Value = 1
level.Parent = leaderstats
local experience = Instance.new("IntValue")
experience.Name = "Experience"
experience.Value = 0
experience.Parent = leaderstats
experience.Changed:Connect(function(exp)
local nextLevelExp = level.Value * 100
if exp >= nextLevelExp then
level.Value = level.Value + 1
experience.Value = exp - nextLevelExp
end
end)
end)
Скрипт для создания спавнера врагов
Скрипт, который спавнит врагов через определенные интервалы времени.
-- Вставьте этот скрипт в спавнер (например, в Part)
local spawner = script.Parent
local enemyTemplate = game.ServerStorage:WaitForChild("EnemyTemplate") -- Убедитесь, что у вас есть шаблон врага в ServerStorage
local spawnInterval = 10
while true do
wait(spawnInterval)
local newEnemy = enemyTemplate:Clone()
newEnemy.Parent = workspace
newEnemy.Position = spawner.Position
end
Какие еще скрипты вы бы хотели увидеть, накидайте варианты в комментарии.