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 f18835d5e9 - Show all commits

View File

@ -4357,19 +4357,29 @@ export class GameRuntime {
// Lua-вызов hrp.Position = ... — телепорт игрока // Lua-вызов hrp.Position = ... — телепорт игрока
try { try {
const v = payload.value || {}; const v = payload.value || {};
if (player.body && player.body.position) { const halfH = player.HALF_H ?? 0.9;
if (player._pos) {
player._pos.set(v.x || 0, (v.y || 0) + halfH, v.z || 0);
if (player._vy != null) player._vy = 0;
} else if (player.body?.position?.set) {
player.body.position.set(v.x || 0, v.y || 0, v.z || 0); player.body.position.set(v.x || 0, v.y || 0, v.z || 0);
} }
} catch (_) {} } catch (_) {}
} else if (payload.prop === 'respawn') { } else if (payload.prop === 'respawn') {
// Lua-вызов player:LoadCharacter() — телепорт к spawn и сброс HP // Lua-вызов player:LoadCharacter() — телепорт к spawn и сброс HP
try { try {
if (typeof player.respawn === 'function') player.respawn(); if (typeof player.respawn === 'function') {
else { player.respawn();
} else {
const sp = this.scene3d?.projectData?.scene?.spawnPoint const sp = this.scene3d?.projectData?.scene?.spawnPoint
|| this.projectData?.scene?.spawnPoint || this.projectData?.scene?.spawnPoint
|| { x: 0, y: 5, z: 0 }; || { x: 0, y: 5, z: 0 };
if (player.body && player.body.position) { // PlayerController хранит позицию в player._pos.
const halfH = player.HALF_H ?? 0.9;
if (player._pos) {
player._pos.set(sp.x, sp.y + halfH, sp.z);
if (player._vy != null) player._vy = 0;
} else if (player.body?.position?.set) {
player.body.position.set(sp.x, sp.y, sp.z); player.body.position.set(sp.x, sp.y, sp.z);
} }
player.hp = player.maxHp || 100; player.hp = player.maxHp || 100;