Postać zakuta w kajdanki przez policję, w FIveM

Zezwalaj na ruch podczas zakucia w kajdanki w FiveM

Przewodnik: Pozwalanie na ruch w kajdankach (FiveM) Na serwerach role-play z FiveM kajdanki dodają realizmu i napięcia. Wielu graczy odkrywa, że domyślne zamrażanie może być zbyt restrykcyjne, przez co doświadczenie wydaje się sztuczne. Ten przewodnik pokazuje, jak pozwolić graczom poruszać się w kajdankach we wszystkich popularnych frameworkach – QBCore, ESX i vRP – jednocześnie blokując najbardziej oczywiste akcje, takie jak strzelanie czy prowadzenie pojazdu. —

Zrozumienie procesu zakuwania w kajdanki

Gdy gracz jest zakuty w kajdanki, serwer zazwyczaj przełącza kilka ustawień po stronie klienta: Odtwarzana jest animacja zakuwania (np. `’mp_arresting’, ‘idle’`). Włączane są sterowanie kajdankami (`SetEnableHandcuffs`). Encja jest zazwyczaj zamrażana, aby unieruchomić gracza. Aby umożliwić ruch, musisz odmrozić encję przed utrzymaniem wszystkich innych restrykcyjnych kontroli. Wyzwaniem jest zlokalizowanie dokładnych linii w każdym frameworku i dostosowanie ich bez psucia istniejącej logiki. —

1. Znajdź kod zakuwania

Przeszukaj skrypt pracy policji lub narzędziowy w poszukiwaniu sygnału wyzwalającego zakuwanie. Zazwyczaj wygląda to tak: “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) FreezeEntityPosition(playerPed, true) “`

2. Włącz ruch

Zastąp wywołanie zamrażania: “`lua FreezeEntityPosition(playerPed, false) — Pozwala na swobodne chodzenie “` Twój zaktualizowany fragment będzie wyglądał tak: “`lua TaskPlayAnim(playerPed, ‘mp_arresting’, ‘idle’, 8.0, -8, -1, 49, 0, 0, 0, 0) SetEnableHandcuffs(playerPed, true) FreezeEntityPosition(playerPed, false) “`

3. Utrzymaj ograniczone sterowanie

Utwórz ciągły wątek, który wyłącza potencjalnie problematyczne akcje: “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 24, true) — Atak DisableControlAction(0, 25, true) — Celowanie DisableControlAction(0, 142, true) — Alternatywny atak wręcz DisableControlAction(0, 75, true) — Opuszczenie pojazdu DisableControlAction(0, 92, true) — Strzelanie w pojeździe end end end) “` Zastąp `IsHandcuffed` zmienną wskazującą stan zakucia w twoim konkretnym skrypcie. —

1. Zlokalizuj główną sekcję zakuwania

Znajdź `esx_policejob/client/main.lua` i zlokalizuj następujący kod: “`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. Usuń zamrożenie

Zmień `FreezeEntityPosition(playerPed, true)` na `false`, aby umożliwić chodzenie.

3. Wyłącz sterowanie klawiszami

Zaimplementuj podobny wątek, aby zablokować broń i sterowanie pojazdem: “`lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 142, true) — Alternatywny atak wręcz DisableControlAction(0, 30, true) — Ruch w lewo/prawo DisableControlAction(0, 31, true) — Ruch w górę/dół DisableControlAction(0, 24, true) — Strzelanie DisableControlAction(0, 92, true) — Strzelanie w samochodzie DisableControlAction(0, 75, true) — Opuszczenie pojazdu end end end) “` Upewnij się, że `IsHandcuffed` jest powiązane z twoją flagą zakucia w ESX. —

1. Znajdź deklarację zakuwania

Główna logika często znajduje się w `vrp\/modules\/police.lua` lub niestandardowym zasobie. Szukaj: lua vRPclient.playAnim(player, {true, {{mp_arresting, idle}}, true}) vRPclient.setHandcuffed(player, true) vRPclient.setFreeze(player, true)

2. Odblokowanie ruchu

Zamień linię zamrożenia: lua vRPclient.setFreeze(player, false)

3. Zablokowanie konkretnych akcji

Wstaw lub zmodyfikuj skrypt klienta, aby stale wyłączać niepożądane sterowanie: lua Citizen.CreateThread(function() while true do Citizen.Wait(10) if IsHandcuffed then DisableControlAction(0, 24, true) — Atak DisableControlAction(0, 25, true) — Celowanie DisableControlAction(0, 142, true) — Alternatywny atak wręcz DisableControlAction(0, 75, true) — Opuszczenie pojazdu DisableControlAction(0, 92, true) — Strzelanie w pojeździe DisableControlAction(0, 30, true) — Ruch w lewo\/prawo DisableControlAction(0, 31, true) — Ruch w górę\/w dół end end end)

4. Synchronizacja flagi kajdanek

Zdefiniuj zmienną globalną i nasłuchuj zdarzenia po stronie serwera: lua local IsHandcuffed = false RegisterNetEvent(“vrp:handcuff‘) AddEventHandler(’vrp:handcuff‘, function(status) IsHandcuffed = status end) Wywołaj to zdarzenie za każdym razem, gdy gracz zostanie skutej lub zwolniony. —

Ostateczne uwagi

Przetestuj dokładnie na kopii swojego serwera przed wdrożeniem zmian na żywo. Dostosuj listę `DisableControlAction` do swoich zasad odgrywania ról – niektóre serwery mogą chcieć zezwolić na określone ruchy lub zmiany. Zawsze utrzymuj zmienne jasne i spójne; symbole zastępcze, takie jak `IsHandcuffed`, muszą być powiązane z rzeczywistymi flagami skryptów. — Podsumowanie – Twój ostateczny plan mobilności w kajdankach Postępując zgodnie z tym Przewodnik: Pozwalanie na ruch w kajdankach (FiveM), możesz wprowadzić realistyczne mechaniki kajdanek, które pozwolą graczom chodzić, jednocześnie odczuwając ograniczenia związane z byciem skrępowanym. To podejście zachowuje szczegółową rozgrywkę dla serwerów QBCore, ESX i vRP, czyniąc interakcje w odgrywaniu ról płynniejszymi i bardziej angażującymi dla wszystkich.

Powiązane ścieżki FiveMX

Dodaj komentarz