feat: 50 игр на Lua + импорт Roblox для всех + поддержка Lua в плеере #39

Merged
min merged 215 commits from feat/lua-50-games-bundle into main 2026-06-09 21:59:25 +00:00
2 changed files with 24 additions and 6 deletions
Showing only changes of commit ddeb8ff93f - Show all commits

View File

@ -4544,8 +4544,26 @@ end)`,
}, },
// ═══════════════════════════════════════════════════════════════ // ═══════════════════════════════════════════════════════════════
// ИГРА 50: явных Lua-версий пока нет. // ИГРА 50 — «Своя игра» (песочница)
// buildGameProject в docsGamesBuilders.js использует generateFallbackLua. // ═══════════════════════════════════════════════════════════════
'make-your-own': {
g50_main: `-- === «СВОЯ ИГРА» — твоя песочница (Lua) ===
--
-- Это пустая площадка. Здесь ты придумываешь и собираешь
-- СВОЮ игру с нуля. Удали этот текст и пиши свой код.
--
-- С чего начать:
-- 1. Реши, КАКАЯ это игра (паркур / гонка / стрелялка / квест).
-- 2. Построй сцену из блоков и примитивов.
-- 3. Поставь точку спавна.
-- 4. Добавь цель финиш, счёт или врагов.
-- 5. Напиши скрипты, оживляющие игру.
--
-- Всё, что нужно, ты уже знаешь из уроков 1-49. Удачи!
__rbxl_show_text("Твоя песочница! Создай свою игру", 4)`,
},
'clicker': { 'clicker': {
g46_main: `-- === ИГРА «КЛИКЕР» — главный скрипт (Lua) === g46_main: `-- === ИГРА «КЛИКЕР» — главный скрипт (Lua) ===
${SNIPPET_BROADCAST} ${SNIPPET_BROADCAST}

View File

@ -7097,7 +7097,7 @@ game.room.onChange('tagger', (taggerId) => {
<h3 className="lessonH">Шаг 2. Главный скрипт</h3> <h3 className="lessonH">Шаг 2. Главный скрипт</h3>
<ScriptKind kind="global" /> <ScriptKind kind="global" />
<Code>{`// === ИГРА «МУЛЬТИПЛЕЕР: ГОНКА» — главный скрипт === <CodeBoth game="mp-race" script="g49_main">{`// === ИГРА «МУЛЬТИПЛЕЕР: ГОНКА» — главный скрипт ===
// //
// Мультиплеерная гонка. Чтобы соревноваться с друзьями опубликуй // Мультиплеерная гонка. Чтобы соревноваться с друзьями опубликуй
// игру с галочкой «Мультиплеер». // игру с галочкой «Мультиплеер».
@ -7137,7 +7137,7 @@ game.onMessage('finish', () => {
} else { } else {
game.ui.showText('Финиш! Но кто-то был быстрее.', 4); game.ui.showText('Финиш! Но кто-то был быстрее.', 4);
} }
});`}</Code> });`}</CodeBoth>
<p>Разберём:</p> <p>Разберём:</p>
<ul> <ul>
<li><code>game.room.get('winner')</code> читаем общую <li><code>game.room.get('winner')</code> читаем общую
@ -7157,10 +7157,10 @@ game.onMessage('finish', () => {
<h3 className="lessonH">Шаг 3. Скрипт финиша</h3> <h3 className="lessonH">Шаг 3. Скрипт финиша</h3>
<ScriptKind kind="object" on="зелёный финиш" /> <ScriptKind kind="object" on="зелёный финиш" />
<Code>{`// === Скрипт финиша === <CodeBoth game="mp-race" script="g49_finish">{`// === Скрипт финиша ===
game.self.onTouch(() => { game.self.onTouch(() => {
game.broadcast('finish'); game.broadcast('finish');
});`}</Code> });`}</CodeBoth>
<p> <p>
Когда любой игрок касается финиша, скрипт шлёт сообщение Когда любой игрок касается финиша, скрипт шлёт сообщение
<code> game.broadcast('finish')</code> а главный скрипт <code> game.broadcast('finish')</code> а главный скрипт