# Vetores (vec3)

> Uso de vetores LuaGLM (vec3 e vec2) no MY Multiplayer (MYMP) para posições, rotações e velocidades, criação de vetores e diferenças em relação ao MTA.

- **Plataforma**: MY Multiplayer (MYMP) — Lua 5.4
- **Seções**: Documentação › Guias
- **Idioma**: Português
- **URL**: https://wiki.mymp.gg/pt/docs/vectors

O **MY Multiplayer** (**MYMP**) usa vetores nativos (`vec3` e `vec2`, baseados em LuaGLM) para representar coordenadas espaciais, rotações e velocidades em scripts Lua.

## Retorno de funções: um único vec3

Funções espaciais como `getElementPosition`, `getElementRotation` e `getElementVelocity` devolvem **um único valor `vec3`**, e não três números separados. Leia os componentes diretamente pelos campos `.x`, `.y` e `.z`.

## Parâmetros de entrada: números separados ou vetor

Onde a assinatura de uma função pede coordenadas `x, y, z`, ela aceita tanto três números separados quanto um único `vec3` no lugar deles. A mesma regra vale para funções que recebem `x, y` e `vec2`.

## Criação de vetores

Use as funções globais `vec3(x, y, z)` e `vec2(x, y)` para instanciar vetores em qualquer script (cliente ou servidor).

## Exemplo prático

```lua
local pos = getElementPosition(localPlayer)
print(pos.x, pos.y, pos.z)

setElementPosition(localPlayer, vec3(pos.x, pos.y, pos.z + 2))
setElementPosition(localPlayer, pos.x, pos.y, pos.z + 2)
```

## Diferença em relação ao MTA

No Multi Theft Auto (MTA), `local x, y, z = getElementPosition(elemento)` atribui três números. No MYMP, `x` recebe o vetor `vec3` inteiro, enquanto `y` e `z` ficam `nil`.

Algumas funções específicas devolvem números separados em vez de vetores; consulte sempre o tipo de retorno na [Referência de scripting](https://wiki.mymp.gg/pt/llms.txt).
