From 968c0b80523d600e11b4282196349e768ebea623 Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 6 Apr 2021 04:03:16 +0200 Subject: [PATCH] test --- ReallifeGamemode.Client/util/animationSync.ts | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/ReallifeGamemode.Client/util/animationSync.ts b/ReallifeGamemode.Client/util/animationSync.ts index 2f9d95f4..9646f419 100644 --- a/ReallifeGamemode.Client/util/animationSync.ts +++ b/ReallifeGamemode.Client/util/animationSync.ts @@ -1,4 +1,6 @@ -export default function animationSync() { +import planeSchoolHandle from "./planeschool"; + +export default function animationSync() { mp.events.add("SERVER:LoadAnimations", () => { animationSyncData.register("Cuffed", "mp_arresting", "idle", -1, true, 50); animationSyncData.register("doArrest", "mp_arrest_paired", "cop_p2_back_right", 3000, false, 0); @@ -64,18 +66,18 @@ }); }, 100); - mp.events.addDataHandler("AnimationData", (entity, string) => { + mp.events.addDataHandler("AnimationData", (entity: PlayerMp, string) => { if (string == null) { entity.clearTasksImmediately(); entity.animationData = null; return; } + let lastAnim; - playAnim(entity, string); - }); - - async function playAnim(entity, string) { while (true) { + if (lastAnim && entity.isPlayingAnim(lastAnim.dict, lastAnim.name, 3)) + continue; + mp.gui.chat.push("transition to " + string); let index = mp.game.joaat(string); let animData = animationSyncData.animations[index]; @@ -85,21 +87,18 @@ let { id, name, animDict, animName, duration, loop, flag } = animData; loadAnimDict(animDict, function () { - mp.players.exists(entity) && 0 !== entity.handle && entity.taskPlayAnim(animDict, animName, 1, 0, -1, parseInt(flag), 0, !1, !1, !1) + mp.players.exists(entity) && 0 !== entity.handle && entity.taskPlayAnim(animDict, animName, 1, 0, duration, parseInt(flag), 0, !1, !1, !1) }); - while (entity.isPlayingAnim(animDict, animName, 3)) { - await mp.game.waitAsync(0); - } - let pair = pairData.find(pair => pair.from == name); if (!pair) break; string = pair.transitionTo; - mp.gui.chat.push("transition to " + string); + + lastAnim = { dict: animDict, name: animName }; } - } + }); function loadAnimDict(animDict, callback) { if (mp.game.streaming.hasAnimDictLoaded(animDict)) return void callback();