fix(lua): убран двойной part.Touched.Fire — счёт +1 за монетку

Симптом: счётчик показывает 10/8 при 5 собранных монетах.

Корень: BabylonScene на каждое касание шлёт И routeEvent('touch') И
routeGlobalEvent('playerTouch'). Lua-shim фейерил part.Touched.Fire(hrp)
в обоих обработчиках (fireTargetEvent + fireGlobalEvent). Handler
монетки срабатывал 2 раза → 2 Fire CoinCollected → score +2.

Фикс: в fireGlobalEvent для playerTouch УБРАЛИ part.Touched.Fire.
Остался только humanoid.Touched.Fire(part) — это уникальный для
playerTouch сценарий (когда юзер слушает humanoid.Touched).
This commit is contained in:
min 2026-06-09 10:45:06 +03:00
parent 598b91bd9e
commit ad26395e10

View File

@ -1984,8 +1984,9 @@ export function registerRobloxShim(lua, opts) {
} }
if (primId != null) { if (primId != null) {
const part = partById.get(Number(primId)); const part = partById.get(Number(primId));
if (part?.Touched) part.Touched.Fire(hrp); // НЕ фейерим part.Touched — это делает fireTargetEvent
if (humanoid.Touched) humanoid.Touched.Fire(part); // в routeEvent('touch'). Иначе двойной счёт.
if (part && humanoid.Touched) humanoid.Touched.Fire(part);
} }
} }
// GUI-клик: GameRuntime шлёт {type:'guiClick', localId, id} // GUI-клик: GameRuntime шлёт {type:'guiClick', localId, id}