M MY Multiplayer: Wiki

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.

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

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.