Vectores (vec3)
Uso de vectores LuaGLM (vec3 y vec2) en MY Multiplayer (MYMP) para posiciones, rotaciones y velocidades, creación de vectores y diferencias frente a MTA.
MY Multiplayer (MYMP) utiliza vectores nativos (vec3 y vec2, basados en LuaGLM) para representar coordenadas espaciales, rotaciones y velocidades en scripts Lua.
Retorno de funciones: un solo vec3
Funciones espaciales como getElementPosition, getElementRotation y getElementVelocity devuelven un solo valor vec3, no tres números separados. Lee sus componentes mediante .x, .y y .z.
Parámetros de entrada: números separados o vector
Donde la firma de una función pide x, y, z, acepta tanto tres números separados como un único vec3 en su lugar. La misma regla se aplica a x, y y vec2.
Creación de vectores
Usa los constructores globales vec3(x, y, z) y vec2(x, y) para crear vectores en cualquier script de cliente o servidor.
Ejemplo práctico
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)Si vienes de MTA
En Multi Theft Auto (MTA), local x, y, z = getElementPosition(elemento) devuelve tres números. En MYMP, x recibe el vector vec3 entero, mientras que y y z quedan en nil.
Algunas funciones sí devuelven números sueltos; consulta el tipo de retorno en la Referencia de scripting.