Загрузка данных


let currentAnim = null;

function playAnimation(dict, anim, flags = 1) {
    mp.game.streaming.requestAnimDict(dict);
    while (!mp.game.streaming.hasAnimDictLoaded(dict)) mp.game.wait(0);
    mp.players.local.taskPlayAnim(dict, anim, 8.0, -8.0, -1, flags, 0, false, false, false);
    currentAnim = { dict, anim, flags };
}

mp.keys.bind(0x5A, false, function() {
    if (!currentAnim) {
        playAnimation("mp_arresting", "arrest_on_floor_front_left_cam", 1);
    } else {
        mp.players.local.stopAnimTask(currentAnim.dict, currentAnim.anim, 3.0);
        currentAnim = null;
    }
});

mp.events.add("entityStreamIn", (entity) => {
    if (entity.type === "player" && entity.handle === mp.players.local.handle && currentAnim) {
        playAnimation(currentAnim.dict, currentAnim.anim, currentAnim.flags);
    }
});

mp.events.add("playerWeaponShot", () => {
    if (currentAnim) {
        playAnimation(currentAnim.dict, currentAnim.anim, currentAnim.flags);
    }
});

mp.events.add("render", () => {
    if (currentAnim && !mp.players.local.isPlayingAnim(currentAnim.dict, currentAnim.anim, 3)) {
        playAnimation(currentAnim.dict, currentAnim.anim, currentAnim.flags);
    }
});