diff --git a/ReallifeGamemode.Client/util/animationSync.ts b/ReallifeGamemode.Client/util/animationSync.ts index 22dfd365..60d2d57a 100644 --- a/ReallifeGamemode.Client/util/animationSync.ts +++ b/ReallifeGamemode.Client/util/animationSync.ts @@ -72,30 +72,26 @@ export default function animationSync() { return; } - let pair; - while (true) { - mp.gui.chat.push("transition to " + string); + mp.gui.chat.push("transition to " + string); - let index = mp.game.joaat(string); - let animData = animationSyncData.animations[index]; + let index = mp.game.joaat(string); + let animData = animationSyncData.animations[index]; - if (!animData) - break; + if (!animData) + return; - let { id, name, animDict, animName, duration, loop, flag } = animData; + let { id, name, animDict, animName, duration, loop, flag } = animData; - if (entity.getAnimCurrentTime(animDict, animName) > 0.95) { - string = pair.transitionTo; - } - else if (entity.getAnimCurrentTime(animDict, animName) == 0) { - loadAnimDict(animDict, function () { - mp.players.exists(entity) && 0 !== entity.handle && entity.taskPlayAnim(animDict, animName, 1, 0, -1, parseInt(flag), 0, !1, !1, !1) - }); - } - pair = pairData.find(pair => pair.from == name); - if (!pair) - break; - } + loadAnimDict(animDict, function () { + mp.players.exists(entity) && 0 !== entity.handle && entity.taskPlayAnim(animDict, animName, 1, 0, -1, parseInt(flag), 0, !1, !1, !1) + }); + + let pair = pairData.find(pair => pair.from == name); + if (!pair && duration < 0) + return; + string = setInterval(function () { + pair.transitionTo; + }, duration); }); function loadAnimDict(animDict, callback) {