Урок Roblox StudioЗанятие 4 / 8

Режим «Соберите предметы»

Считать цели уровня

Режим «Соберите предметы»
Иллюстрация к теме занятия

Цель урока

Подсчитывать собранные предметы для каждого игрока отдельно.

Подготовка

Workspace → Folder Collectibles → 5 Anchored Parts с CanCollide=false. ServerScriptService → Script CollectRound.

Пошаговая работа

  1. Создай папку и пять деталей-наград.
  2. Запусти скрипт; собери предметы двумя разными персонажами.
  3. Проверь атрибут RoundCollected у каждого игрока.

Код Luau

В примерах с двумя скриптами помести части кода в указанные разные объекты.

local Players = game:GetService("Players")
local folder = workspace:WaitForChild("Collectibles")
local collected = {}
Players.PlayerAdded:Connect(function(player)
    collected[player] = {}
    player:SetAttribute("RoundCollected", 0)
end)
Players.PlayerRemoving:Connect(function(player) collected[player] = nil end)
for _, part in ipairs(folder:GetChildren()) do
    if part:IsA("BasePart") then
        part.Touched:Connect(function(hit)
            local model = hit:FindFirstAncestorOfClass("Model")
            local player = model and Players:GetPlayerFromCharacter(model)
            if not player or not collected[player] then return end
            if collected[player][part] then return end
            collected[player][part] = true
            player:SetAttribute("RoundCollected", math.min(5,
                (player:GetAttribute("RoundCollected") or 0) + 1))
        end)
    end
end

Проверяем результат

У каждого игрока собственный счётчик от 0 до 5. Предметы в этом учебном варианте остаются видимыми для всех.

Типичная ошибка

Не удаляй общую Part после сбора первым игроком: второй игрок тоже должен иметь возможность её собрать.

Дополнительное задание

Добавь сброс collected и RoundCollected перед следующим раундом.

Перед публикацией: протестируй код в Roblox Studio с двумя игроками и добавь собственные скриншоты редактора.

Проверь свою работу

Перед тестом убедись, что ты выполнил практику самостоятельно.

Эти отметки — личная памятка, они не влияют на звёзды.

Проверь себя

Ответь на вопросы урока. Успешный тест даёт одну звезду в личном кабинете.

⭐ Проверь свои знания

5 вопросов по теме урока. За 4 правильных ответа получишь звезду. Повторные попытки разрешены.

1. Игрок А собрал 2 предмета, игрок Б — 5. Каким должен быть счёт игрока А?
2. Как лучше хранить собранные предметы каждого игрока?
3. Что сервер должен проверить перед начислением предмета?
4. Что опасно в начислении очков прямо из LocalScript?
5. Как проверить независимость прогресса?