Den Ablauf des Handschellenanlegens verstehen
Wenn ein Spieler Handschellen angelegt bekommt, ändert der Server normalerweise einige clientseitige Einstellungen: Die Handschellenanimation wird abgespielt (z. B. „mp_arresting“, „idle“). Handschellensteuerungen sind aktiviert („SetEnableHandcuffs“). Die Einheit wird normalerweise eingefroren, um den Spieler an Ort und Stelle zu halten. Um Bewegung zu ermöglichen, musst du die Einheit entfrieren vor und alle anderen einschränkenden Kontrollen aktiv halten. Die Herausforderung besteht darin, die genauen Zeilen in jedem Framework zu finden und sie anzupassen, ohne deine bestehende Logik zu brechen. —QBCore Framework (und QBOX) – Schritt für Schritt
1. Finde den Handschellen-Code
Suche in den Polizeiberufs- oder Utility-Skripten nach dem Hinweis, der das Handschellen auslöst. Es sieht normalerweise so aus: “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) FreezeEntityPosition(playerPed, true) “`2. Bewegung ermöglichen
Ersetze den Einfrieraufruf: “`lua FreezeEntityPosition(playerPed, false) — Erlaubt freies Gehen “` Dein aktualisiertes Snippet wird: “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) FreezeEntityPosition(playerPed, false) “`3. Halte die Kontrollen eingeschränkt
Erstelle einen kontinuierlichen Thread, der potenziell problematische Aktionen deaktiviert: “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 24, true) — Angriff DisableControlAction(0, 25, true) — Zielen DisableControlAction(0, 142, true) — NahkampfAlternate DisableControlAction(0, 75, true) — Fahrzeug verlassen DisableControlAction(0, 92, true) — Schießen im Fahrzeug end end end) “` Ersetze `IsHandcuffed` durch die Variable, die den Handschellen-Zustand für dein spezifisches Skript anzeigt. —ESX Framework – So geht's
1. Lokaliere den Haupt-Handschellen-Abschnitt
Finde `esx_policejob/client/main.lua` und locke den folgenden Code: “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) SetPedCanPlayGestureAnims(playerPed, false) FreezeEntityPosition(playerPed, true) “`2. Entferne das Einfrieren
Ändere `FreezeEntityPosition(playerPed, true)` in `false`, damit Gehen möglich ist.3. Deaktiviere Tastenkombinationen
Implementiere einen ähnlichen Thread, um Waffen- und Fahrzeugsteuerungen zu blockieren: “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 142, true) — MeleeAttackAlternate DisableControlAction(0, 30, true) — Bewegung Links/Rechts DisableControlAction(0, 31, true) — Bewegung Hoch/Runter DisableControlAction(0, 24, true) — Schießen DisableControlAction(0, 92, true) — Schießen im Auto DisableControlAction(0, 75, true) — Fahrzeug verlassen end end end) “` Achte darauf, `IsHandcuffed` mit deiner ESX-Handschellen-Flag zu verknüpfen. —vRP – Bewegung anpassen
1. Finde die Handschellen-Deklaration
Die Kernlogik befindet sich oft in `vrp/modules/police.lua` oder einer benutzerdefinierten Ressource. Suche nach: “`lua vRPclient.playAnim(player, {true, {{mp_arresting, idle}}, true}) vRPclient.setHandcuffed(player, true) vRPclient.setFreeze(player, true) “`2. Auftauen für Bewegung
Tausche die Einfrierzeile: “`lua vRPclient.setFreeze(player, false) “`3. Sperre spezifische Aktionen
Füge oder ändere ein Client-Skript hinzu, um unerwünschte Steuerungen kontinuierlich zu deaktivieren: “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 24, true) — Angriff DisableControlAction(0, 25, true) — Zielen DisableControlAction(0, 142, true) — MeleeAttackAlternate DisableControlAction(0, 75, true) — Fahrzeug verlassen DisableControlAction(0, 92, true) — Schießen im Fahrzeug DisableControlAction(0, 30, true) — Bewegung Links/Rechts DisableControlAction(0, 31, true) — Bewegung Hoch/Runter end end end) “`4. Synchronisiere die Handschellen-Flag
Definiere eine globale Variable und höre auf ein serverseitiges Ereignis: “`lua local IsHandcuffed = false RegisterNetEvent(‘vrp:handcuff’) AddEventHandler(‘vrp:handcuff’, function(status) IsHandcuffed = status end) “` Löse dieses Ereignis aus, wann immer ein Spieler Handschellen angelegt oder entfernt bekommt. —Abschließende Überlegungen
Gründlich testen auf einer Kopie deines Servers, bevor du Änderungen live schiebst. Passe die `DisableControlAction`-Liste an, um deinen Rollenspielregeln zu entsprechen—manche Server möchten möglicherweise bestimmte Bewegungen oder Tauschaktionen erlauben. Halte deine Variablen immer klar und konsistent; Platzhalter wie `IsHandcuffed` müssen mit tatsächlichen Skript-Flags verknüpft sein. — Fazit – Ihr ultimativer Mobilitätsplan mit Handschellen Wenn du diesem Anleitung: Bewegungsfreiheit in Handschellen (FiveM), du kannst realistische Handschellenmechaniken einführen, die es Spielern ermöglichen, sich zu bewegen, während sie sich immer noch eingeschränkt fühlen. Dieser Ansatz erhält detailliertes Gameplay für QBCore-, ESX- und vRP-Server und macht Rollenspielbegegnungen für alle reibungsloser und ansprechender.Verwandte FiveMX-Pfade
Verwende diese internen Seiten als nächsten Überprüfungsschritt, bevor du eine Ressource für einen Live-Server auswählst: