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.