Перейти до основного вмісту

Виживання на Острові (Survival Island)

Ідея гри 'Виживання на Острові' (Survival Island):

  • Гравці потрапляють на безлюдний острів після корабельної аварії.
  • Необхідно збирати ресурси, будувати укриття, добувати їжу та уникати небезпек (наприклад, диких тварин чи стихійних лих).

Створення ігрового світу (острова)

  1. Створення нового проекту:
    • Відкрий Roblox Studio → натисни Create New → обери Baseplate.
  2. Додавання води та землі:
    • Перейдіть у вкладку Terrain EditorGenerate → виставте параметри:
      • Water (вода) – так
      • Islands (острови) – так
      • Mountains – за бажанням
      • Натисніть Generate
  3. Редагування острова:
    • Використовуйте Add, Subtract, Paint у Terrain Editor, щоб змінити форму острова.
  4. Додавання рослинності:
    • Відкрийте Toolbox → у пошуку введіть Tree, Bush, Grass → розставте по острову.
  5. Додавання об’єктів:
    • Поставте дерева, камені, уламки човна тощо.

Додавання leaderstats у Roblox Studio

Leaderstats – це спеціальна папка в кожного гравця, яка зберігає статистику (голод, ресурси, очки тощо).

📌 Як створити leaderstats для всіх гравців?

В ExplorerServerScriptService додати Script і вставити код:

game.Players.PlayerAdded:Connect(function(player) -- Створюємо leaderstats local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" leaderstats.Parent = player -- Створюємо змінну Hunger local hunger = Instance.new("IntValue") hunger.Name = "Hunger" hunger.Value = 100 hunger.Parent = leaderstats -- Створюємо змінну Wood (дерево) local wood = Instance.new("IntValue") wood.Name = "Wood" wood.Value = 0 wood.Parent = leaderstats -- Цикл зменшення голоду while true do wait(10) -- Кожні 10 секунд if hunger.Value > 0 and wood.Value < 5 then hunger.Value = hunger.Value - 5 -- Зменшуємо голод elseif hunger.Value == 0 then local character = player.Character if character then local humanoid = character:FindFirstChild("Humanoid") if humanoid then humanoid.Health = humanoid.Health - 5 -- Гравець отримує шкоду end end end end end)

Тепер у кожного гравця є Hunger та Wood в leaderstats!

Додавання персонажа та взаємодії

1. Їжа (Apple):
  • Створіть Part → змініть колір і розмір під ресурс (наприклад, яблуко).
  • Додайте ClickDetector для взаємодії.
  • Додайте до цього Part такий скрипт у Script:
    local apple = script.Parent local clickDetector = apple:FindFirstChild("ClickDetector") clickDetector.MouseClick:Connect(function(player) local leaderstats = player:FindFirstChild("leaderstats") if leaderstats then local hunger = leaderstats:FindFirstChild("Hunger") if hunger then hunger.Value = math.min(hunger.Value + 20, 100) -- Відновлюємо 20 голоду (не більше 100) apple:Destroy() -- Видаляємо яблуко після з’їдання end end end)
2. Ресурси (Wood):
  • Створіть Part → змініть колір і розмір під ресурс (наприклад, дерево).
  • Додайте ClickDetector для взаємодії.
  • Додайте до цього Part такий скрипт у Script:
    local tree = script.Parent local clickDetector = tree:FindFirstChild("ClickDetector") clickDetector.MouseClick:Connect(function(player) local leaderstats = player:FindFirstChild("leaderstats") local wood = leaderstats:FindFirstChild("Wood") if leaderstats then local hunger = leaderstats:FindFirstChild("Hunger") if hunger then tree:Destroy() -- Видаляємо яблуко після з’їдання wood.Value +=1 end end end)

Створення крафту (будівництва)

  1. Додайте систему крафту:
    • Створіть GUI-кнопку для створення хатини.
    • Додайте до кнопки скрипт:
      local button = script.Parent button.MouseButton1Click:Connect(function() local player = game.Players.LocalPlayer if player.leaderstats.Wood.Value >= 10 then player.leaderstats.Wood.Value = player.leaderstats.Wood.Value - 10 local hut = game.ReplicatedStorage.Hut:Clone() -- Змінна "Hut" має бути в ReplicatedStorage hut.Parent = workspace hut.Position = player.Character.HumanoidRootPart.Position + Vector3.new(5,0,5) end end)

Код крафту хатини

📌 Де додати:

  • ExplorerStarterGuiScreenGui
  • Додати TextButton (Кнопку "Побудувати хатину")
  • До кнопки додати LocalScript

LocalScript для кнопки:

local button = script.Parent button.MouseButton1Click:Connect(function() game.ReplicatedStorage.BuildHutEvent:FireServer() -- Викликаємо серверний скрипт end)

📌 Додайте новий "RemoteEvent" в ReplicatedStorage

  • Відкрийте ExplorerReplicatedStorage
  • Створіть RemoteEvent (назвіть його BuildHutEvent)

📌 Додайте Script в ServerScriptService

local event = game.ReplicatedStorage:FindFirstChild("BuildHutEvent") event.OnServerEvent:Connect(function(player) local leaderstats = player:FindFirstChild("leaderstats") if leaderstats and leaderstats:FindFirstChild("Wood") then if leaderstats.Wood.Value >= 10 then leaderstats.Wood.Value = leaderstats.Wood.Value - 10 -- Витрачаємо ресурси local hut = game.ReplicatedStorage:FindFirstChild("Hut"):Clone() if hut then hut.Parent = workspace hut.Position = player.Character.HumanoidRootPart.Position + Vector3.new(5, 0, 5) end end end end)

Гравець тепер може натиснути кнопку та побудувати хатину, якщо має 10 дерев.


Додавання небезпек

  1. Хижі тварини:

    • У Toolbox знайдіть "Wolf" або "Bear".
    • Додайте до них Script:
      local npc = script.Parent local humanoid = npc:FindFirstChild("Humanoid") local target = nil while true do wait(1) for _, player in pairs(game.Players:GetPlayers()) do if player.Character and (player.Character.PrimaryPart.Position - npc.PrimaryPart.Position).Magnitude < 20 then target = player.Character humanoid:MoveTo(target.PrimaryPart.Position) humanoid:TakeDamage(10) -- Атакує гравця end end end
  2. Шторм або цунамі:

    • Створіть Part у вигляді хвилі.
    • Додайте скрипт, щоб хвиля рухалася:
      local wave = script.Parent while true do wait(30) -- Кожні 30 секунд запускається хвиля wave.Position = Vector3.new(-100, 10, 0) for i = 1, 100 do wave.Position = wave.Position + Vector3.new(2, 0, 0) wait(0.1) end end

Додавання кінцевої мети (втеча з острова)

  1. Створіть човен (Boat) у ReplicatedStorage.
  2. Додайте квест:
    • Гравці повинні зібрати 10 дерев для будівництва човна. Для цього перед циклом while скрипта, який знаходиться в папці ServerScriptService створіть 2 змінні: 
local buildWood = 10
local flag = false

3. Скрипт будівництва човна в цикл while скрипта, який знаходиться в папці ServerScriptService:
if player.leaderstats.Wood.Value == 1 and flag == false then -- Створюємо GUI для гравця local screenGui = Instance.new("ScreenGui") screenGui.Parent = player.PlayerGui local textLabel = Instance.new("TextLabel") textLabel.Parent = screenGui textLabel.Size = UDim2.new(0, 400, 0, 50) textLabel.Position = UDim2.new(0.3, -100, -0.1, 5) textLabel.BackgroundTransparency = 0.5 textLabel.Text = "Щоб побудувати корабель, потрібно " ..buildWood.. "дерева" textLabel.TextScaled = true textLabel.TextColor3 = Color3.new(1, 0, 0) wait(5) screenGui:Destroy() elseif player.leaderstats.Wood.Value >= buildWood then player.leaderstats.Wood.Value = player.leaderstats.Wood.Value - buildWood flag = true game.Workspace.BrokenCutter:Destroy() local boat = game.ReplicatedStorage.Cutter:Clone() boat.Parent = workspace boat.Position = Vector3.new(50, 5, 50) -- Човен з'являється біля берега break end

Завершення та тестування

Перевірте всі механіки (збір ресурсів, виживання, небезпеки).
Додайте звуки та музику для атмосфери.
Опублікуйте гру у File → Publish to Roblox.

Коментарі

Популярні дописи з цього блогу

Створення меню

Як створити меню в Роблокс Студіо При створенні власної гри в Роблокс дуже часто виникає необхідність створення меню, в якому гравці зможуть переглядати різні розділи, відкривати вкладку з магазином або отримувати якусь інформацію. Зробити його в Роблокс студіо досить просто за допомогою стандартних інструментів та найпростіших скриптів. Заходимо до Roblox Studio. У вкладці Explorer знаходимо StarterGui , натискаємо кнопку " + " і вибираємо Screen Gui Усередині ScreenGui за допомогою кнопки " + " вставляємо TextButton (це буде натиснувши кнопка на яку ви відкриєте меню) Розміщуємо його у будь-якому місці на екрані та редагуємо зовнішній вигляд (шрифт, колір фону, розмір тощо) Всередину ScreenGui вставляємо Frame (це область меню всередині якого можна буде розміщувати інші кнопки, розділи або інформацію) Розміщуємо Frame у будь-якому місці, редагуємо його розмір, колір, прозорість та інші параметри, що впливають на зовнішній вигляд. Усередину Frame вставляємо Tex...

Проект пригодницької гри. Частина 1.

Налаштування таблиці лідерів Щоразу, коли гравця додають до досвіду, його потрібно буде додати до таблиці лідерів разом із кодом для відстеження індивідуальної статистики. У провіднику в розділі ServerScriptService створіть новий сценарій під назвою PlayerSetup. У цьому скрипті видаліть рядок Hello World і напишіть описовий коментар. Повний сценарій PlayerSetup local Players = game:GetService("Players") -- Creates a leaderboard that shows player variables local function onPlayerJoin(player) local leaderstats = Instance.new("Folder") leaderstats.Name = "leaderstats" leaderstats.Parent = player local items = Instance.new("IntValue") items.Name = "Items" items.Value = 0 items.Parent = leaderstats local spaces = Instance.new("IntValue") spaces.Name = "Spaces" spaces.Value = 2 spaces.Parent = leaderstats end -- Run onPlayerJoin when the PlayerAdded event fires Players.PlayerAdded:Connect(onPlay...