M MY Multiplayer: Wiki

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.