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
Showing only changes of commit 745e50703d - Show all commits

View File

@ -3209,7 +3209,7 @@ game.self.onTouch(() => {
каждое нажатие. каждое нажатие.
</p> </p>
<ScriptKind kind="global" /> <ScriptKind kind="global" />
<Code>{`// === ИГРА «ПЕРЕКЛЮЧАТЕЛИ» — главный скрипт === <CodeBoth game="switches" script="g23_main">{`// === ИГРА «ПЕРЕКЛЮЧАТЕЛИ» — главный скрипт ===
// правильный порядок рычагов // правильный порядок рычагов
const ORDER = [2, 3, 1]; const ORDER = [2, 3, 1];
@ -3249,7 +3249,7 @@ game.onMessage('win', () => {
const p = game.player.position; const p = game.player.position;
game.scene.spawnParticles('confetti', game.scene.spawnParticles('confetti',
{ x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 }); { x: p.x, y: p.y + 3, z: p.z }, { duration: 3, count: 3 });
});`}</Code> });`}</CodeBoth>
<p>Самое интересное проверка порядка:</p> <p>Самое интересное проверка порядка:</p>
<ul> <ul>
<li><code>ORDER = [2, 3, 1]</code> секретный порядок: <li><code>ORDER = [2, 3, 1]</code> секретный порядок:
@ -3277,10 +3277,10 @@ game.onMessage('win', () => {
Вот скрипт первого рычага: Вот скрипт первого рычага:
</p> </p>
<ScriptKind kind="object" on="Рычаг_1" /> <ScriptKind kind="object" on="Рычаг_1" />
<Code>{`// === Скрипт рычага 1 === <CodeBoth game="switches" script="g23_lever_1">{`// === Скрипт рычага 1 ===
game.self.onInteract(() => { game.self.onInteract(() => {
game.broadcast('lever', { num: 1 }); game.broadcast('lever', { num: 1 });
}, { text: 'Дёрнуть рычаг 1', distance: 3 });`}</Code> }, { text: 'Дёрнуть рычаг 1', distance: 3 });`}</CodeBoth>
<p> <p>
Рычаг шлёт сообщение <code>game.broadcast('lever', {'{ num: 1 }'})</code>: Рычаг шлёт сообщение <code>game.broadcast('lever', {'{ num: 1 }'})</code>:
имя сообщения <code>'lever'</code>, а второй кусок имя сообщения <code>'lever'</code>, а второй кусок
@ -3297,10 +3297,10 @@ game.self.onInteract(() => {
<h3 className="lessonH">Шаг 4. Скрипт финиша и проверка</h3> <h3 className="lessonH">Шаг 4. Скрипт финиша и проверка</h3>
<ScriptKind kind="object" on="зелёный финиш" /> <ScriptKind kind="object" on="зелёный финиш" />
<Code>{`// === Скрипт финиша === <CodeBoth game="switches" script="g23_finish">{`// === Скрипт финиша ===
game.self.onTouch(() => { game.self.onTouch(() => {
game.broadcast('win'); game.broadcast('win');
});`}</Code> });`}</CodeBoth>
<ul> <ul>
<li>подойди к рычагу появится подсказка «Дёрнуть рычаг»;</li> <li>подойди к рычагу появится подсказка «Дёрнуть рычаг»;</li>
<li>дёргай <kbd className="kbd">E</kbd> в верном <li>дёргай <kbd className="kbd">E</kbd> в верном