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(() => {
{`// === ИГРА «КВЕСТ-ПОБЕГ» — главный скрипт ===
+ {`// === ИГРА «КВЕСТ-ПОБЕГ» — главный скрипт ===
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 });
-});`}
+});`}
Разберём:
pressed — счётчик нажатых кнопок,
@@ -6878,19 +6878,19 @@ game.onMessage('escape', () => {
{`// === Скрипт кнопки 1 ===
+ {`// === Скрипт кнопки 1 ===
let used = false;
game.self.onInteract(() => {
if (used) return;
used = true;
game.scene.setColor(game.self.ref, '#22dd55'); // нажата — зелёная
game.broadcast('pressButton');
-}, { text: 'Нажать кнопку', distance: 3 });`}
+}, { text: 'Нажать кнопку', distance: 3 });`}
{`// === Скрипт финиша ===
+ {`// === Скрипт финиша ===
game.self.onTouch(() => {
game.broadcast('escape');
-});`}
+});`}
Кнопка при нажатии становится зелёной (видно, что нажата),
шлёт game.broadcast('pressButton') и больше