Anleitung: Bewegung in Handschellen ermöglichen (FiveM) MustHave
Möchten Sie, dass sich gefesselte Spieler in FiveM bewegen können, ohne an Realismus zu verlieren? Unser freundlicher Leitfaden führt Sie durch einfache Code-Optimierungen für QBCore, ESX und vRP und ermöglicht Bewegung, ohne dass unerwünschte Aktionen erforderlich sind.
Anleitung: Bewegungsfreiheit in Handschellen (FiveM)
Auf Rollenspielservern mit FiveM sorgen Handschellen für einen Hauch von Realismus und Spannung. Viele Spieler empfinden das standardmäßige Einfrieren als zu restriktiv und lassen das Spielerlebnis künstlich wirken. Diese Anleitung zeigt Ihnen, wie Sie Spielern in Handschellen in allen gängigen Frameworks – QBCore, ESX und vRP – Bewegungsfreiheit ermöglichen und gleichzeitig die offensichtlichsten Aktionen wie Schießen oder Fahren verhindern.
—
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 Entität wird normalerweise eingefroren, um den Spieler an Ort und Stelle zu fixieren.
Um Bewegung zu ermöglichen, müssen Sie die Entität freigeben vor Alle anderen restriktiven Kontrollen müssen aktiv bleiben. Die Herausforderung besteht darin, die genauen Zeilen in jedem Framework zu finden und anzupassen, ohne die vorhandene Logik zu zerstören.
—
QBCore Framework (und QBOX) – Schritt für Schritt
1. Finden Sie den Handschellencode
Suchen Sie in den Skripten der Polizei nach dem Hinweis, der das Anlegen von Handschellen auslöst. Normalerweise sieht es so aus:
„`lua
TaskPlayAnim(playerPed, 'mp_arresting', 'idle', 8.0, -8, -1, 49, 0, 0, 0, 0)
SetEnableHandcuffs(Spielerped, wahr)
FreezeEntityPosition(SpielerPed, true)
“`
2. Bewegung ermöglichen
Ersetzen Sie den Freeze-Anruf:
„`lua
FreezeEntityPosition(playerPed, false) — Ermöglicht freies Gehen
“`
Ihr aktualisierter Snippet wird:
„`lua
TaskPlayAnim(playerPed, 'mp_arresting', 'idle', 8.0, -8, -1, 49, 0, 0, 0, 0)
SetEnableHandcuffs(Spielerped, wahr)
FreezeEntityPosition(SpielerPed, false)
“`
3. Halten Sie die Kontrollen eingeschränkt
Erstellen Sie einen fortlaufenden Thread, der die potenziell problematischen Aktionen deaktiviert:
„`lua
Bürger.CreateThread(Funktion()
während wahr
Bürger.Warten(10)
wenn IsHandcuffed dann
DisableControlAction(0, 24, true) — Angriff
DisableControlAction(0, 25, true) — Ziel
DisableControlAction(0, 142, true) — MeleeAttackAlternate
DisableControlAction(0, 75, true) — Fahrzeug verlassen
DisableControlAction(0, 92, true) — Im Fahrzeug schießen
Ende
Ende
Ende)
“`
Ersetzen Sie „IsHandcuffed“ durch die Variable, die den Do-Handcuff-Status für Ihr spezifisches Skript angibt.
—
ESX Framework – So geht's
1. Suchen Sie den Hauptteil der Handschellen
Suchen Sie nach „esx_policejob/client/main.lua“ und suchen Sie den folgenden Code:
„`lua
TaskPlayAnim(playerPed, 'mp_arresting', 'idle', 8.0, -8, -1, 49, 0, 0, 0, 0)
SetEnableHandcuffs(Spielerped, wahr)
SetPedCanPlayGestureAnims(SpielerPed, false)
FreezeEntityPosition(SpielerPed, true)
“`
2. Entfernen Sie das Einfrieren
Ändern Sie `FreezeEntityPosition(playerPed, true)` in `false`, damit Gehen möglich ist.
3. Deaktivieren Sie die Tastensteuerung
Implementieren Sie einen ähnlichen Thread, um Waffen und Fahrzeugsteuerungen in Schach zu halten:
„`lua
Bürger.CreateThread(Funktion()
während wahr
Bürger.Warten(10)
wenn IsHandcuffed dann
DisableControlAction(0, 142, true) — MeleeAttackAlternate
DisableControlAction(0, 30, true) — MoveLeftRight
DisableControlAction(0, 31, true) — MoveUpDown
DisableControlAction(0, 24, true) — Schießen
DisableControlAction(0, 92, true) — Im Auto schießen
DisableControlAction(0, 75, true) — Fahrzeug verlassen
Ende
Ende
Ende)
“`
Stellen Sie sicher, dass Sie „IsHandcuffed“ mit Ihrem ESX-Handcuff-Flag verknüpfen.
—
vRP – Bewegung anpassen
1. Finden Sie die Handschellenerklärung
Die Kernlogik befindet sich häufig in `vrp/modules/police.lua` oder einer benutzerdefinierten Ressource. Suchen Sie nach:
„`lua
vRPclient.playAnim(Spieler, {true, {{mp_arresting, idle}}, true})
vRPclient.setHandcuffed(Spieler, wahr)
vRPclient.setFreeze(Spieler, true)
“`
2. Auftauen für Bewegung
Tauschen Sie die Freeze-Linie:
„`lua
vRPclient.setFreeze(Spieler, false)
“`
3. Sperren Sie bestimmte Aktionen
Fügen Sie ein Client-Skript ein oder ändern Sie es, um unerwünschte Steuerelemente dauerhaft zu deaktivieren:
„`lua
Bürger.CreateThread(Funktion()
während wahr
Bürger.Warten(10)
wenn IsHandcuffed dann
DisableControlAction(0, 24, true) — Angriff
DisableControlAction(0, 25, true) — Ziel
DisableControlAction(0, 142, true) — MeleeAttackAlternate
DisableControlAction(0, 75, true) — Fahrzeug verlassen
DisableControlAction(0, 92, true) — Im Fahrzeug schießen
DisableControlAction(0, 30, true) — Nach links/rechts bewegen
DisableControlAction(0, 31, true) — Nach oben/unten verschieben
Ende
Ende
Ende)
“`
4. Synchronisieren Sie die Handschellenflagge
Definieren Sie eine globale Variable und warten Sie auf ein serverseitiges Ereignis:
„`lua
lokales IsHandcuffed = false
RegisterNetEvent('vrp:handschellen')
AddEventHandler('vrp:handcuff', Funktion(Status)
Ist in Handschellen gefesselt = Status
Ende)
“`
Dieses Ereignis wird immer dann ausgelöst, wenn einem Spieler Handschellen angelegt oder er freigelassen wird.
—
Abschließende Überlegungen
Gründlich testen auf einer Kopie Ihres Servers, bevor Sie Änderungen live schalten.
Passen Sie die Liste „DisableControlAction“ an Ihre Rollenspielregeln an – einige Server möchten möglicherweise bestimmte Bewegungen oder Tauschvorgänge zulassen.
Halten Sie Ihre Variablen immer klar und konsistent. Platzhalter wie „IsHandcuffed“ müssen an tatsächliche Skriptflags gebunden sein.
—
Fazit – Ihr ultimativer Mobilitätsplan mit Handschellen
Indem Sie diesem Anleitung: Bewegungsfreiheit in Handschellen (FiveM), können Sie realistische Handschellenmechaniken einführen, die es den Spielern ermöglichen, herumzulaufen und dennoch die Einschränkungen der Fesselung zu spüren. Dieser Ansatz sorgt für ein immersives Gameplay auf QBCore-, ESX- und vRP-Servern und macht Rollenspiel-Begegnungen für alle flüssiger und spannender.






