Economize 20% hoje mesmo Use o código WELCOME ao finalizar a compra. BEM-VINDO

Guia: Permitindo o movimento enquanto algemado (FiveM) MustHave

Quer que jogadores algemados se movam no FiveM sem perder o realismo? Nosso guia prático mostra ajustes simples de código para QBCore, ESX e vRP, permitindo a movimentação enquanto mantém as ações indesejadas desabilitadas.

Guia: Permitindo movimento enquanto algemado (FiveM)

Em servidores de RPG com FiveM, algemas adicionam um toque de realismo e tensão. Muitos jogadores acham que o comportamento padrão de congelamento pode ser muito restritivo, tornando a experiência artificial. Este guia mostra como permitir que os jogadores se movam algemados em todas as plataformas populares — QBCore, ESX e vRP — e ainda impedir as ações mais óbvias, como atirar ou dirigir.

Compreendendo o fluxo de algemas

Quando um jogador é algemado, o servidor normalmente alterna algumas configurações do lado do cliente:
A animação da algema é reproduzida (por exemplo, `'mp_arresting', 'idle'`).
Os controles de algemas estão habilitados (`SetEnableHandcuffs`).
A entidade geralmente é congelada para fixar o jogador no lugar.

Para permitir o movimento, você precisa descongelar a entidade antes mantendo todos os outros controles restritivos ativos. O desafio é localizar as linhas exatas em cada estrutura e ajustá-las sem quebrar a lógica existente.

Framework QBCore (e QBOX) – Passo a passo

1. Encontre o código da algema

Procure nos scripts de emprego ou de utilidade pública o gatilho que aciona o algemamento. Normalmente, parece algo assim:
“`lua
TaskPlayAnim(playerPed, 'mp_arresting', 'inativo', 8.0, -8, -1, 49, 0, 0, 0, 0)
DefinirHabilitarAlgemas(playerPed, verdadeiro)
FreezeEntityPosition(jogadorPed, verdadeiro)
“`

2. Habilitar o movimento

Substitua a chamada de congelamento:
“`lua
FreezeEntityPosition(playerPed, false) — Permite caminhada livre
“`

Seu snippet atualizado se torna:
“`lua
TaskPlayAnim(playerPed, 'mp_arresting', 'inativo', 8.0, -8, -1, 49, 0, 0, 0, 0)
DefinirHabilitarAlgemas(playerPed, verdadeiro)
FreezeEntityPosition(jogadorPed, falso)
“`

3. Mantenha os controles restritos

Crie um thread contínuo que desabilite as ações potencialmente problemáticas:
“`lua
Cidadão.CreateThread(função()
enquanto verdadeiro faça
Cidadão.Espere(10)
se IsHandcuffed então
DisableControlAction(0, 24, true) — Ataque
DisableControlAction(0, 25, true) — Objetivo
DisableControlAction(0, 142, true) — Ataque Corpo a Corpo Alternativo
DisableControlAction(0, 75, true) — Sair do veículo
DisableControlAction(0, 92, true) — Atirar no veículo
fim
fim
fim)
“`
Substitua `IsHandcuffed` pela variável que indica o estado do‑handcuff para seu script específico.

ESX Framework – Como fazer

1. Localize a seção principal das algemas

Encontre `esx_policejob/client/main.lua` e localize o seguinte código:
“`lua
TaskPlayAnim(playerPed, 'mp_arresting', 'inativo', 8.0, -8, -1, 49, 0, 0, 0, 0)
DefinirHabilitarAlgemas(playerPed, verdadeiro)
DefinirPedCanPlayGestureAnims(jogadorPed, falso)
FreezeEntityPosition(jogadorPed, verdadeiro)
“`

2. Remova o congelamento

Altere `FreezeEntityPosition(playerPed, true)` para `false` para que seja possível caminhar.

3. Desabilite os controles de tecla

Implemente um tópico semelhante para manter os controles de armas e veículos sob controle:
“`lua
Cidadão.CreateThread(função()
enquanto verdadeiro faça
Cidadão.Espere(10)
se IsHandcuffed então
DisableControlAction(0, 142, true) — Ataque Corpo a Corpo Alternativo
DisableControlAction(0, 30, true) — MoverEsquerdaDireita
DisableControlAction(0, 31, true) — Mover para cima e para baixo
DisableControlAction(0, 24, true) — Disparar
DisableControlAction(0, 92, true) — Atirar no carro
DisableControlAction(0, 75, true) — Sair do veículo
fim
fim
fim)
“`
Não se esqueça de vincular `IsHandcuffed` ao seu sinalizador de algema ESX.

vRP – Personalização do Movimento

1. Encontre a Declaração de Algemas

A lógica central geralmente reside em `vrp/modules/police.lua` ou em um recurso personalizado. Procure por:
“`lua
vRPclient.playAnim(jogador, {verdadeiro, {{mp_arresting, inativo}}, verdadeiro})
vRPclient.setHandcuffed(jogador, verdadeiro)
vRPclient.setFreeze(jogador, verdadeiro)
“`

2. Descongele para se movimentar

Troque a linha de congelamento:
“`lua
vRPclient.setFreeze(jogador, falso)
“`

3. Bloquear ações específicas

Insira ou modifique um script de cliente para desabilitar continuamente controles indesejados:
“`lua
Cidadão.CreateThread(função()
enquanto verdadeiro faça
Cidadão.Espere(10)
se IsHandcuffed então
DisableControlAction(0, 24, true) — Ataque
DisableControlAction(0, 25, true) — Objetivo
DisableControlAction(0, 142, true) — Ataque Corpo a Corpo Alternativo
DisableControlAction(0, 75, true) — Sair do veículo
DisableControlAction(0, 92, true) — Atirar no veículo
DisableControlAction(0, 30, true) — Mover para a esquerda/direita
DisableControlAction(0, 31, true) — Mover para cima/baixo
fim
fim
fim)
“`

4. Sincronize a bandeira das algemas

Defina uma variável global e escute um evento do lado do servidor:
“`lua
local IsHandcuffed = falso
RegisterNetEvent('vrp:algema')
AddEventHandler('vrp:algema', função(status)
IsHandcuffed = status
fim)
“`
Acione este evento sempre que um jogador for algemado ou solto.

Considerações Finais

Teste completamente em uma cópia do seu servidor antes de colocar as alterações no ar.
Ajuste a lista `DisableControlAction` para corresponder às suas regras de dramatização — alguns servidores podem querer permitir certos movimentos ou trocas.
Mantenha sempre suas variáveis claras e consistentes; marcadores de posição como `IsHandcuffed` devem ser vinculados a sinalizadores de script reais.

Conclusão – Seu Projeto Definitivo de Mobilidade com Algemas

Seguindo isto Guia: Permitindo movimento enquanto algemado (FiveM), você pode introduzir mecânicas realistas de algemas que permitem aos jogadores andarem sem deixar de sentir as restrições de estarem presos. Essa abordagem mantém a jogabilidade imersiva para servidores QBCore, ESX e vRP, tornando os encontros de RPG mais fluidos e envolventes para todos.

Lucas
Lucas

Eu sou Luke, sou um gamer e adoro escrever sobre FiveM, GTA e roleplay. Eu administro uma comunidade de roleplay e tenho cerca de 10 anos de experiência em administração de servidores.

Artigos: 570

Deixe um comentário