From e78f585fd4106b417da6340739538955c68bd7d8 Mon Sep 17 00:00:00 2001 From: min Date: Tue, 9 Jun 2026 23:15:11 +0300 Subject: [PATCH] =?UTF-8?q?docs(47)=20+=20feat(g48):=20=C2=AB=D0=9C=D1=83?= =?UTF-8?q?=D0=BB=D1=8C=D1=82=D0=B8=D0=BF=D0=BB=D0=B5=D0=B5=D1=80:=20?= =?UTF-8?q?=D0=A1=D0=B0=D0=BB=D0=BA=D0=B8=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit g47 docs: CodeBoth main+btn_1+finish. g48 паритет (упрощённый — без MP-API): - __rbxl_show_text 'Опубликуй игру для игры с друзьями' - __rbxl_hud_set 'info' 50,8 'Игроков в комнате: N' (Players:GetPlayers) - Players.PlayerAdded → '<имя> присоединился!' + refresh - Players.PlayerRemoving → refresh - task.delay 2 показывает правила - В одиночке роли не назначаются (нет game.room API в shim) --- src/community/docsGamesBuildersLua.js | 37 ++++++++++++++++++++++++++- src/community/docsLessons.jsx | 12 ++++----- 2 files changed, 42 insertions(+), 7 deletions(-) diff --git a/src/community/docsGamesBuildersLua.js b/src/community/docsGamesBuildersLua.js index 6e238e7..7c94e26 100644 --- a/src/community/docsGamesBuildersLua.js +++ b/src/community/docsGamesBuildersLua.js @@ -4449,7 +4449,42 @@ end)`; })(), // ═══════════════════════════════════════════════════════════════ - // ИГРЫ 48-50: явных Lua-версий пока нет. + // ИГРА 48 — «Мультиплеер: Салки» + // ═══════════════════════════════════════════════════════════════ + 'mp-tag': { + g48_main: `-- === ИГРА «МУЛЬТИПЛЕЕР: САЛКИ» — главный скрипт (Lua) === +-- Это МУЛЬТИПЛЕЕРНАЯ игра. Чтобы играть с друзьями, опубликуй её +-- с галочкой «Мультиплеер» — тогда в комнату смогут зайти несколько +-- игроков. В одиночку игра показывает только правила. + +local Players = game:GetService("Players") + +__rbxl_show_text("Салки! Опубликуй игру для игры с друзьями", 4) + +-- Показываем сколько игроков в комнате (постоянная плашка вверху) +local function refresh() + local n = #Players:GetPlayers() + __rbxl_hud_set("info", "Игроков в комнате: " .. n, 50, 8, "#ffe066", 22) +end +refresh() + +-- Подписки на вход/выход +Players.PlayerAdded:Connect(function(p) + __rbxl_show_text(p.Name .. " присоединился к салкам!", 2) + refresh() +end) +Players.PlayerRemoving:Connect(function() + refresh() +end) + +-- В одиночке роли не назначаются — показываем правила +task.delay(2, function() + __rbxl_show_text("Водящий — первый зашедший. Он догоняет остальных.", 4) +end)`, + }, + + // ═══════════════════════════════════════════════════════════════ + // ИГРЫ 49-50: явных Lua-версий пока нет. // buildGameProject в docsGamesBuilders.js использует generateFallbackLua. 'clicker': { g46_main: `-- === ИГРА «КЛИКЕР» — главный скрипт (Lua) === diff --git a/src/community/docsLessons.jsx b/src/community/docsLessons.jsx index 1450e1f..45fc99c 100644 --- a/src/community/docsLessons.jsx +++ b/src/community/docsLessons.jsx @@ -6830,7 +6830,7 @@ game.self.onInteract(() => {

Шаг 2. Главный скрипт

- {`// === ИГРА «КВЕСТ-ПОБЕГ» — главный скрипт === + {`// === ИГРА «КВЕСТ-ПОБЕГ» — главный скрипт === let pressed = 0; // сколько кнопок нажато const TOTAL = 3; @@ -6862,7 +6862,7 @@ game.onMessage('escape', () => { const p = game.player.position; game.scene.spawnParticles('confetti', { x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 }); -});`} +});`}

Разберём: