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) {
|
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}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user