Створення гри з випадковими подіями передбачає використання скриптів, які періодично запускають випадкові події, такі як скарби, перешкоди чи бонуси.
Основний скрипт для випадкових подій генерації об'єктів (Скарби, перешкоди, бонуси)
Цей скрипт відповідає за запуск подій через випадковий час.
🔹 Куди його помістити?
➡ ServerScriptService (це місце для серверних скриптів).
📌 Як додати?
- Відкрийте Explorer (
View -> Explorer
). - Знайдіть ServerScriptService.
- Натисніть + (плюс) -> Script.
- Перейменуйте в
RandomEventsScript
та вставте цей код:
local events = {"treasure", "obstacle", "bonus"} -- Список подій
local eventTime = 5 -- Час між подіями
function spawnTreasure()
local treasure = game.ServerStorage.Treasure:Clone() -- Копіюємо скарб
treasure.Position = Vector3.new(math.random(-50, 50), 5, math.random(-50, 50)) -- Випадкове місце
treasure.Parent = game.Workspace
game:GetService("Debris"):AddItem(treasure, 20) -- Видалити через 20 сек
end
function spawnObstacle()
local obstacle = game.ServerStorage.Obstacle:Clone()
obstacle.Position = Vector3.new(math.random(-50, 50), 5, math.random(-50, 50))
obstacle.Parent = game.Workspace
game:GetService("Debris"):AddItem(obstacle, 30) -- Видалити через 30 сек
end
function spawnBonus()
local bonus = game.ServerStorage.Bonus:Clone()
bonus.Position = Vector3.new(math.random(-50, 50), 5, math.random(-50, 50))
bonus.Parent = game.Workspace
game:GetService("Debris"):AddItem(bonus, 15) -- Видалити через 15 сек
end
while true do
wait(math.random(5, 15)) -- Чекаємо випадковий час
local eventType = events[math.random(1, #events)] -- Випадкова подія
print("Запускається подія: " .. eventType)
if eventType == "treasure" then
spawnTreasure()
elseif eventType == "obstacle" then
spawnObstacle()
elseif eventType == "bonus" then
spawnBonus()
end
end
Скрипт для взаємодії гравця зі скарбами
Цей скрипт дозволяє гравцю підбирати скарби.
🔹 Куди його помістити?
➡ В сам об'єкт "Treasure" у ServerStorage
.
📌 Як додати?
- Відкрийте Explorer.
- Перейдіть до
ServerStorage -> Treasure
(або створіть частину-скарб). - Додайте новий Script (
+ -> Script
). - Вставте цей код:
local function onTouch(other)
local player = game.Players:GetPlayerFromCharacter(other.Parent)
if player then
print(player.Name .. " знайшов скарб!")
script.Parent:Destroy() -- Видаляємо скарб
end
end
script.Parent.Touched:Connect(onTouch)