From c6e3c6fecb3a15a006377d287197dbe869e9675b Mon Sep 17 00:00:00 2001 From: kookroach Date: Tue, 6 Apr 2021 05:12:55 +0200 Subject: [PATCH] animation Sync Ready --- ReallifeGamemode.Client/util/animationSync.ts | 51 +++++++------------ ReallifeGamemode.Server/Util/AnimationSync.cs | 9 ++++ 2 files changed, 28 insertions(+), 32 deletions(-) diff --git a/ReallifeGamemode.Client/util/animationSync.ts b/ReallifeGamemode.Client/util/animationSync.ts index b275fa88..c99fb048 100644 --- a/ReallifeGamemode.Client/util/animationSync.ts +++ b/ReallifeGamemode.Client/util/animationSync.ts @@ -72,39 +72,26 @@ export default function animationSync() { return; } - let playAnim = true; + let index = mp.game.joaat(string); + let animData = animationSyncData.animations[index]; + + if (!animData) return; + + 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, duration, parseInt(flag), 0, !1, !1, !1) + }); + + let pair = pairData.find(pair => pair.from == string); + if (!pair) + return; + let a = setInterval(function () { - let index = mp.game.joaat(string); - let animData = animationSyncData.animations[index]; - - if (!animData) { - clearInterval(a); - return; - } - - let { id, name, animDict, animName, duration, loop, flag } = animData; - - if (playAnim) { - loadAnimDict(animDict, function () { - mp.players.exists(entity) && 0 !== entity.handle && entity.taskPlayAnim(animDict, animName, 1, 0, duration, parseInt(flag), 0, !1, !1, !1) - }); - playAnim = false; - - let pair = pairData.find(pair => pair.from == string); - if (!pair) { - clearInterval(a); - return; - } - - let b = setInterval(function () { - string = pair.transitionTo; - mp.gui.chat.push("transition to " + string); - playAnim = true; - entity.clearTasksImmediately(); - clearInterval(b); - }, duration); - } - }, 200); + entity.clearTasksImmediately(); + mp.events.callRemote("CLIENT:AnimPairTransition", entity, pair.transitionTo); + clearInterval(a); + }, duration); }); function loadAnimDict(animDict, callback) { diff --git a/ReallifeGamemode.Server/Util/AnimationSync.cs b/ReallifeGamemode.Server/Util/AnimationSync.cs index 32e04773..748591c7 100644 --- a/ReallifeGamemode.Server/Util/AnimationSync.cs +++ b/ReallifeGamemode.Server/Util/AnimationSync.cs @@ -31,4 +31,13 @@ namespace ReallifeGamemode.Server.Util player.ResetSharedData("AnimationData"); } } + + public class AnimationSyncEvents + { + [RemoteEvent("CLIENT:AnimPairTransition")] + public void AnimPairTransition(Player player, Player target, string transitionTo) + { + target.SyncAnimation(transitionTo); + } + } }