docs(47) + feat(g48): «Мультиплеер: Салки»
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)
This commit is contained in:
parent
57c5779644
commit
e78f585fd4
@ -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) ===
|
||||
|
||||
@ -6830,7 +6830,7 @@ game.self.onInteract(() => {
|
||||
|
||||
<h3 className="lessonH">Шаг 2. Главный скрипт</h3>
|
||||
<ScriptKind kind="global" />
|
||||
<Code>{`// === ИГРА «КВЕСТ-ПОБЕГ» — главный скрипт ===
|
||||
<CodeBoth game="escape-quest" script="g47_main">{`// === ИГРА «КВЕСТ-ПОБЕГ» — главный скрипт ===
|
||||
|
||||
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 });
|
||||
});`}</Code>
|
||||
});`}</CodeBoth>
|
||||
<p>Разберём:</p>
|
||||
<ul>
|
||||
<li><code>pressed</code> — счётчик нажатых кнопок,
|
||||
@ -6878,19 +6878,19 @@ game.onMessage('escape', () => {
|
||||
|
||||
<h3 className="lessonH">Шаг 3. Скрипты кнопки и финиша</h3>
|
||||
<ScriptKind kind="object" on="каждую красную кнопку" />
|
||||
<Code>{`// === Скрипт кнопки 1 ===
|
||||
<CodeBoth game="escape-quest" script="g47_btn_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 });`}</Code>
|
||||
}, { text: 'Нажать кнопку', distance: 3 });`}</CodeBoth>
|
||||
<ScriptKind kind="object" on="зелёный финиш" />
|
||||
<Code>{`// === Скрипт финиша ===
|
||||
<CodeBoth game="escape-quest" script="g47_finish">{`// === Скрипт финиша ===
|
||||
game.self.onTouch(() => {
|
||||
game.broadcast('escape');
|
||||
});`}</Code>
|
||||
});`}</CodeBoth>
|
||||
<p>
|
||||
Кнопка при нажатии становится зелёной (видно, что нажата),
|
||||
шлёт <code>game.broadcast('pressButton')</code> и больше
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user