# setControlState (Cliente)

> Pressiona ou solta um controle de um ped como se fosse uma tecla, por exemplo para fazê-lo andar, pular ou atirar.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Cliente
- **Categoria**: Controles
- **URL**: https://wiki.mymp.gg/pt/setControlState-client
- **Contraparte**: Também existe no servidor, com outra implementação: [setControlState (Servidor)](https://wiki.mymp.gg/pt/setControlState-server.md)

## Sintaxe

```lua
bool setControlState(string control, bool state [, ped thePed = localPlayer])
```

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `thePed` | `ped` | O ped ou o jogador local. Pode ser omitido; aí vale o jogador local. *(padrão: `localPlayer`)* |
| `control` | `string` | O nome do controle, sem diferenciar maiúsculas. |
| `state` | `bool` | `true` para manter pressionado, `false` para soltar. |

## Retorno

`true` se o estado foi aplicado. `false` se o nome do controle não existe ou se o ped não pode receber controles.

Num controle analógico (andar, virar, acelerar, frear), `true` pressiona até o fim e solta o controle oposto. Um controle desligado com `toggleControl` não chega ao jogo, mesmo pressionado por script.

## Exemplo

```lua
addCommandHandler("autorun", function()
    local running = not getControlState("forwards")
    setControlState("forwards", running)
    setControlState("sprint", running)
end)
```

### Vindo do MTA

Além dos controles do MTA, o MYMP tem `block` (bloquear no corpo a corpo) e `reload` (recarregar).

### Atenção

Num jogador remoto a função devolve `true` mas não tem efeito. No jogador local, a própria entrada do jogador naquele controle substitui o estado do script.

## Veja também

- [getControlState (Cliente)](https://wiki.mymp.gg/pt/getControlState-client.md): Diz se um controle de um ped está pressionado, como forwards, fire ou accelerate.
- [setPedAnalogControlState (Cliente)](https://wiki.mymp.gg/pt/setPedAnalogControlState.md): Pressiona um controle analógico de um ped só em parte, por exemplo para ele andar devagar ou virar de leve.
- [toggleControl (Cliente)](https://wiki.mymp.gg/pt/toggleControl-client.md): Liga ou desliga um controle do jogador local. Um controle desligado não chega ao jogo, mesmo com a tecla pressionada.
- [setControlState (Servidor)](https://wiki.mymp.gg/pt/setControlState-server.md): Pressiona ou solta um controle de um jogador como se fosse uma tecla. A ordem vai para o cliente dele, que a aplica como setControlState no jogador local.
