Створення гри з випадковими подіями

Створення гри з випадковими подіями передбачає використання скриптів, які періодично запускають випадкові події, такі як скарби, перешкоди чи бонуси.

Основний скрипт для випадкових подій генерації об'єктів (Скарби, перешкоди, бонуси)

Цей скрипт відповідає за запуск подій через випадковий час.

🔹 Куди його помістити?
ServerScriptService (це місце для серверних скриптів).

📌 Як додати?

  1. Відкрийте Explorer (View -> Explorer).
  2. Знайдіть ServerScriptService.
  3. Натисніть + (плюс) -> Script.
  4. Перейменуйте в 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.

📌 Як додати?

  1. Відкрийте Explorer.
  2. Перейдіть до ServerStorage -> Treasure (або створіть частину-скарб).
  3. Додайте новий Script (+ -> Script).
  4. Вставте цей код:
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)