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:
parent
598b91bd9e
commit
ad26395e10
@ -1984,8 +1984,9 @@ export function registerRobloxShim(lua, opts) {
|
||||
}
|
||||
if (primId != null) {
|
||||
const part = partById.get(Number(primId));
|
||||
if (part?.Touched) part.Touched.Fire(hrp);
|
||||
if (humanoid.Touched) humanoid.Touched.Fire(part);
|
||||
// НЕ фейерим part.Touched — это делает fireTargetEvent
|
||||
// в routeEvent('touch'). Иначе двойной счёт.
|
||||
if (part && humanoid.Touched) humanoid.Touched.Fire(part);
|
||||
}
|
||||
}
|
||||
// GUI-клик: GameRuntime шлёт {type:'guiClick', localId, id}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user