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

Проверяем читерские запросы

Изучить серверные ограничения

Проверяем читерские запросы
Иллюстрация к теме занятия

Цель

Изучить серверные ограничения

Подготовка

ReplicatedStorage → RemoteEvent RequestReward; ServerScriptService → Script RewardGuard; наградной объект BonusPad в Workspace.

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

  1. Создай отдельную копию проекта для урока №80.
  2. ReplicatedStorage → RemoteEvent RequestReward; ServerScriptService → Script RewardGuard; наградной объект BonusPad в Workspace.
  3. Пошли несколько повторных запросов
  4. Замерь отклонения
  5. Проверь неизменность Stars
  6. Запусти Play и проверь результат по контрольным условиям.

Пример Luau

local event = game.ReplicatedStorage:WaitForChild("RequestReward")
local pad = workspace:WaitForChild("BonusPad")
local awarded = {}
event.OnServerEvent:Connect(function(player)
    if awarded[player] then return end
    local root = player.Character and player.Character:FindFirstChild("HumanoidRootPart")
    if not root or (root.Position-pad.Position).Magnitude > 8 then return end
    local stars = player:FindFirstChild("leaderstats")
    stars = stars and stars:FindFirstChild("Stars")
    if not stars then return end
    awarded[player] = true
    stars.Value += 1
end)
game.Players.PlayerRemoving:Connect(function(p) awarded[p] = nil end)

Проверка

Сервер не выдаёт повторные награды

Даже при десяти одинаковых запросах сервер начисляет игроку максимум одну звезду за сессию.

Ошибка и ограничения

Валидация существует только в GUI. Проверка расстояния — только учебное ограничение: в настоящей игре сервер должен подтверждать событие награды, а не полагаться лишь на положение игрока.

Усложнение

Добавь лог отказов без персональных данных

Проверь пример в тестовой Roblox Studio перед публикацией. Используй отдельные копии проектов и не подключай два конкурирующих сохранения одновременно.

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

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

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

Проверь себя

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

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

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

1. Игрок отправил запрос награды 20 раз за секунду. Что должен делать сервер?
2. На сервере есть защита от повторной выдачи награды. Где хранить факт получения?
3. Что делать, если RemoteEvent получил предмет с неизвестным идентификатором?
4. Как безопасно вести журнал отклонённых запросов?
5. Клиент сообщает «Я прошёл все контрольные точки». Как определить победу?