From 8c32e80f9f73c539b8aa909aaaabcd7ff847d5cd Mon Sep 17 00:00:00 2001 From: min Date: Tue, 9 Jun 2026 21:05:16 +0300 Subject: [PATCH] =?UTF-8?q?fix(g20):=20UserInputService.InputBegan=20?= =?UTF-8?q?=D1=84=D0=B5=D0=B9=D0=B5=D1=80=D0=B8=D1=82=D1=81=D1=8F=20=D0=BD?= =?UTF-8?q?=D0=B0=20mouseButton1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Раньше при ЛКМ фейерился только playerMouse.Button1Down.Fire(), а UserInputService.InputBegan/InputEnded — нет. Lua-скрипт игры 20 ловил клик через InputBegan + UserInputType.MouseButton1 → нет события → урон не наносился. Фикс: при mouseButton1Down/Up фейерим InputBegan/InputEnded с InputObject {UserInputType=Enum.UserInputType.MouseButton1} — ссылка на тот же объект, что Lua использует в сравнении. --- src/editor/engine/lua/RobloxShim.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/editor/engine/lua/RobloxShim.js b/src/editor/engine/lua/RobloxShim.js index 7a52f66..702bd02 100644 --- a/src/editor/engine/lua/RobloxShim.js +++ b/src/editor/engine/lua/RobloxShim.js @@ -2308,9 +2308,28 @@ export function registerRobloxShim(lua, opts) { playerMouse.Hit.p = playerMouse.Hit.Position; } try { playerMouse.Button1Down.Fire(); } catch (_) {} + // Также фейерим UserInputService.InputBegan с UserInputType.MouseButton1 + try { + const uitEnum = global.get('Enum')?.UserInputType || {}; + const inputObj = { + UserInputType: uitEnum.MouseButton1 + || { Name: 'MouseButton1', Value: 'MouseButton1' }, + KeyCode: { Name: 'Unknown', Value: 'Unknown' }, + }; + uis.InputBegan.Fire(inputObj, false); + } catch (_) {} } if (p.type === 'mouseButton1Up') { try { playerMouse.Button1Up.Fire(); } catch (_) {} + try { + const uitEnum = global.get('Enum')?.UserInputType || {}; + const inputObj = { + UserInputType: uitEnum.MouseButton1 + || { Name: 'MouseButton1', Value: 'MouseButton1' }, + KeyCode: { Name: 'Unknown', Value: 'Unknown' }, + }; + uis.InputEnded.Fire(inputObj, false); + } catch (_) {} } if (p.type === 'keyDown' || p.type === 'keydown') { const k = String(p.key || '').toLowerCase();