This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
export default function animationSync() {
|
export default function animationSync() {
|
||||||
let blockInput = false;
|
let blockInput = false;
|
||||||
|
let animationBreakTimer;
|
||||||
|
|
||||||
mp.events.add("SERVER:LoadAnimations", () => {
|
mp.events.add("SERVER:LoadAnimations", () => {
|
||||||
animationSyncData.register("Cuffed", "mp_arresting", "idle", -1, true, 50);
|
animationSyncData.register("Cuffed", "mp_arresting", "idle", -1, true, 50);
|
||||||
@@ -11,6 +12,10 @@
|
|||||||
animationSyncData.register("carryBox", "anim@heists@box_carry@", "idle", -1, true, 50);
|
animationSyncData.register("carryBox", "anim@heists@box_carry@", "idle", -1, true, 50);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const animationBreakMessage = [
|
||||||
|
{ animName: "Cuffed", msg: "Handschellen gebrochen." }
|
||||||
|
];
|
||||||
|
|
||||||
const animationSyncData =
|
const animationSyncData =
|
||||||
{
|
{
|
||||||
animations: [],
|
animations: [],
|
||||||
@@ -76,11 +81,16 @@
|
|||||||
});
|
});
|
||||||
}, 100);
|
}, 100);
|
||||||
|
|
||||||
mp.events.addDataHandler("AnimationData", (entity: PlayerMp, string) => {
|
mp.events.addDataHandler("AnimationData", (entity, string) => {
|
||||||
entity.clearTasksImmediately();
|
entity.clearTasksImmediately();
|
||||||
|
|
||||||
|
if (animationBreakTimer) {
|
||||||
|
clearInterval(animationBreakTimer);
|
||||||
|
animationBreakTimer = null;
|
||||||
|
}
|
||||||
|
|
||||||
if (string == null) {
|
if (string == null) {
|
||||||
blockInput = false;
|
blockInput = false;
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -96,12 +106,9 @@
|
|||||||
mp.players.exists(entity) && 0 !== entity.handle && entity.taskPlayAnim(animDict, animName, 1, 0, duration, 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)
|
||||||
});
|
});
|
||||||
|
|
||||||
let b = setInterval(function () {
|
if (mp.players.local == entity && loop) {
|
||||||
mp.events.callRemote("CLIENT:ClearAnimationData", entity);
|
animationBreakTimer = setInterval(() => breakAnimation(entity, id), 120000);
|
||||||
if (name == "Cuffed" || name == "cuffed")
|
}
|
||||||
mp.events.call("renderTextOnScreen", "Handschellen gebrochen.");
|
|
||||||
clearInterval(b);
|
|
||||||
}, 120000);
|
|
||||||
|
|
||||||
if (!loop) {
|
if (!loop) {
|
||||||
let a = setInterval(function () {
|
let a = setInterval(function () {
|
||||||
@@ -113,6 +120,17 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
function breakAnimation(entity, id) {
|
||||||
|
mp.events.callRemote("CLIENT:ClearAnimationData", entity);
|
||||||
|
let { animName, msg } = animationBreakMessage.find(c => mp.game.joaat(c.animName) == id)
|
||||||
|
|
||||||
|
if (msg)
|
||||||
|
mp.events.call("renderTextOnScreen", msg);
|
||||||
|
|
||||||
|
clearInterval(animationBreakTimer);
|
||||||
|
animationBreakTimer = null;
|
||||||
|
}
|
||||||
|
|
||||||
mp.events.add("render", () => {
|
mp.events.add("render", () => {
|
||||||
if (blockInput) {
|
if (blockInput) {
|
||||||
mp.game.controls.disableControlAction(32, 25, true);
|
mp.game.controls.disableControlAction(32, 25, true);
|
||||||
|
|||||||
@@ -1205,7 +1205,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
[Command("respawnvehicle", "~m~Benutzung: ~s~/respawnvehicle (Db ID)", Alias = "rveh")]
|
[Command("respawnvehicle", "~m~Benutzung: ~s~/respawnvehicle (Db ID)", Alias = "rveh")]
|
||||||
public void CmdAdminRespawnVehicle(Player player, int id = -1)
|
public void CmdAdminRespawnVehicle(Player player, int id = -1)
|
||||||
{
|
{
|
||||||
if (!player.GetUser()?.IsAdmin(AdminLevel.ADMIN) ?? true)
|
if (!player.GetUser()?.IsAdmin(AdminLevel.SUPPORTER) ?? true) //change back to Admin
|
||||||
{
|
{
|
||||||
ChatService.NotAuthorized(player);
|
ChatService.NotAuthorized(player);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -426,21 +426,7 @@ namespace ReallifeGamemode.Server.Commands
|
|||||||
if (nearestCuffPlayer is null)
|
if (nearestCuffPlayer is null)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
nearestCuffPlayer.SetInFrontOf(player);
|
player.CuffPlayer(nearestCuffPlayer);
|
||||||
nearestCuffPlayer.Heading = player.Heading;
|
|
||||||
|
|
||||||
if (!nearestCuffPlayer.HasAnimation("Cuffed"))
|
|
||||||
{
|
|
||||||
player.SyncAnimation("doArrest");
|
|
||||||
nearestCuffPlayer.SyncAnimation(new List<string>() { "getArrest", "Cuffed" });
|
|
||||||
player.AddAttachment("handcuffs", false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.AddAttachment("handcuffs", true);
|
|
||||||
player.SyncAnimation("doUncuff");
|
|
||||||
nearestCuffPlayer.SyncAnimation("getUncuff");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[Command("wanted", "~m~Benutzung: ~s~/wa(nted) [Spieler] [Anzahl] [Grund]", Alias = "wa", GreedyArg = true)]
|
[Command("wanted", "~m~Benutzung: ~s~/wa(nted) [Spieler] [Anzahl] [Grund]", Alias = "wa", GreedyArg = true)]
|
||||||
|
|||||||
@@ -510,21 +510,7 @@ namespace ReallifeGamemode.Server.Events
|
|||||||
}
|
}
|
||||||
if (nearestCuffPlayer != null)
|
if (nearestCuffPlayer != null)
|
||||||
{
|
{
|
||||||
nearestCuffPlayer.SetInFrontOf(player);
|
player.CuffPlayer(nearestCuffPlayer);
|
||||||
nearestCuffPlayer.Heading = player.Heading;
|
|
||||||
|
|
||||||
if (!nearestCuffPlayer.HasAnimation("Cuffed"))
|
|
||||||
{
|
|
||||||
player.SyncAnimation("doArrest");
|
|
||||||
nearestCuffPlayer.SyncAnimation(new List<string>() { "getArrest", "Cuffed" });
|
|
||||||
player.AddAttachment("handcuffs", false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
player.AddAttachment("handcuffs", true);
|
|
||||||
player.SyncAnimation("doUncuff");
|
|
||||||
nearestCuffPlayer.SyncAnimation("getUncuff");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (nearestElevatorPoint != null)
|
if (nearestElevatorPoint != null)
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ using ReallifeGamemode.Database.Entities;
|
|||||||
using ReallifeGamemode.Database.Models;
|
using ReallifeGamemode.Database.Models;
|
||||||
using ReallifeGamemode.Server.Services;
|
using ReallifeGamemode.Server.Services;
|
||||||
using ReallifeGamemode.Server.Types;
|
using ReallifeGamemode.Server.Types;
|
||||||
|
using ReallifeGamemode.Server.Util;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @overview Life of German Reallife - Player Extension (PlayerExtension.cs)
|
* @overview Life of German Reallife - Player Extension (PlayerExtension.cs)
|
||||||
@@ -322,9 +323,24 @@ namespace ReallifeGamemode.Server.Extensions
|
|||||||
player.TriggerEvent("SERVER:SetInFrontPosition", entity);
|
player.TriggerEvent("SERVER:SetInFrontPosition", entity);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetCuffable(this Player player, bool isCuffable)
|
public static void CuffPlayer(this Player player, Player nearestCuffPlayer)
|
||||||
{
|
{
|
||||||
player.SetSharedData("Cuffable", isCuffable);
|
nearestCuffPlayer.SetInFrontOf(player);
|
||||||
|
nearestCuffPlayer.Heading = player.Heading;
|
||||||
|
|
||||||
|
if (!nearestCuffPlayer.HasAnimation("Cuffed"))
|
||||||
|
{
|
||||||
|
player.SyncAnimation("doArrest");
|
||||||
|
nearestCuffPlayer.SyncAnimation(new List<string>() { "getArrest", "Cuffed" });
|
||||||
|
nearestCuffPlayer.AddAttachment("handcuffs", false);
|
||||||
|
nearestCuffPlayer.RemoveAllWeapons();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
nearestCuffPlayer.AddAttachment("handcuffs", true);
|
||||||
|
player.SyncAnimation("doUncuff");
|
||||||
|
nearestCuffPlayer.SyncAnimation("getUncuff");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user