# engineRequestModel (Cliente)

> Pede ao streaming que carregue um modelo e o mantém carregado para este recurso até ser liberado.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Cliente
- **Categoria**: Ajustes gráficos
- **URL**: https://wiki.mymp.gg/pt/engineRequestModel

## Sintaxe

```lua
bool engineRequestModel(string|element model [, bool blocking = false])
```

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `model` | `string\|element` | Nome do modelo ou um elemento `model` criado com `engineCreateModel`. |
| `blocking` | `bool` | `true` carrega o modelo na hora, parando o jogo até terminar. *(padrão: `false`)* |

## Retorno

`true` quando o pedido foi feito. Com `blocking`, se o modelo já está carregado quando a função volta.

Cada recurso guarda o próprio pedido. O modelo continua carregado até todos os recursos que o pediram chamarem `engineReleaseModel` ou pararem.

## Exemplo

```lua
engineRequestModel("infernus")

setTimer(function()
    if engineHasModelLoaded("infernus") then
        outputDebugString("o infernus está pronto")
    end
end, 1000, 1)
```

### Vindo do MTA

No MTA, `engineRequestModel` cria um modelo novo. Aqui ela carrega um modelo existente, como o opcode `REQUEST_MODEL` do SA. Para criar um modelo, use `engineCreateModel`.

### Atenção

Um nome que nenhum modelo tem, ou um modelo sem drawable (só colisão, por exemplo), gera erro.

## Veja também

- [engineHasModelLoaded (Cliente)](https://wiki.mymp.gg/pt/engineHasModelLoaded.md): Diz se um modelo está carregado na memória.
- [engineReleaseModel (Cliente)](https://wiki.mymp.gg/pt/engineReleaseModel.md): Desfaz o pedido de modelo que este recurso fez com engineRequestModel.
- [engineCreateModel (Cliente)](https://wiki.mymp.gg/pt/engineCreateModel.md): Cria um novo modelo com um nome, só neste cliente. Ele é usado pelo nome, como qualquer outro modelo.
