Este documento proporciona una descripción detallada de las funciones exports utilizadas en el script de FiveM. Estas funciones permiten agregar blips en el mapa, dibujar marcadores y texto en el juego, y medir distancias entre el jugador y un punto específico.
Añade un blip en el mapa.
sprite(número): El ícono del blip.text(cadena): El texto que aparecerá al lado del blip.coords(vector4): Las coordenadas del blip, incluyendo la dirección.router(booleano): Indica si el blip debe mostrarse en el minimapa como una ruta.
exports['nb-utils']:addBlip({
sprite = 1,
text = "Hola",
coords = vector4(752.18, 6461.51, 31.1, 96.96),
router = false
})Dibuja un marcador en el juego.
type(número): El tipo de marcador.coords(vector3): Las coordenadas del marcador.size(tabla): El tamaño del marcador en los ejes x, y, z.color(tabla): El color del marcador en formato RGBA.rotate(booleano): Indica si el marcador debe rotar.
exports['nb-utils']:drawMarker({
type = 1,
coords = vector3(1189.81, -3248.83, 5.03),
size = {x = 1.0, y = 1.0, z = 1.0},
color = { r = 255, g = 0, b = 0, a = 222 },
rotate = true
})Calcula la distancia entre el jugador y un punto específico.
coords(vector3): Las coordenadas del punto al que se quiere medir la distancia.
- (número): La distancia entre el jugador y el punto.
local distance = exports['nb-utils']:getDistancePlayer(vector3(1189.81, -3248.83, 5.03))Dibuja texto en la pantalla del juego.
text(cadena): El texto que se mostrará.font(número): El tipo de fuente del texto.center(número): El alineamiento del texto.coords(tabla): Las coordenadas en la pantalla (x, y).scale(número): El tamaño del texto.color(tabla): El color del texto en formato RGBA.
exports['nb-utils']:drawTxt({
text = "Hola esto es una prueba",
font = 2,
center = 3,
coords = {x = 0.38, y = 0.40},
scale = 0.5,
color = { r = 255, g =255, b =255, a = 255 },
})Adjuntar un objeto a la mano derecha del personaje del jugador.
exports['nb-utils']:bodyObject({
model = "hw1_06_ldr_",
boneName = "hand_right",
offset = {x = -2.5, y = -0.50, z = 0.0},
rotation = {x = 0.0, y = 90.0, z = 0.0}
})Adjuntar un objeto a un índice de hueso personalizado.
exports['nb-utils']:bodyObject({
model = "hw1_06_ldr_",
boneCustom = 28422,
offset = {x = -2.5, y = -0.50, z = 0.0},
rotation = {x = 0.0, y = 90.0, z = 0.0}
})model(string): El nombre del modelo del objeto a adjuntar. Debe ser el hash key del modelo.boneName(string, opcional): El nombre del hueso al que se adjuntará el objeto. Este nombre se mapea a un índice de hueso predefinido.boneCustom(number, opcional): El índice personalizado del hueso. Si se proporciona, se usará en lugar deboneName.offset(table): Desplazamiento del objeto desde el punto de anclaje. Debe contener las clavesx,yyz.rotation(table): Rotación del objeto. Debe contener las clavesx,yyz.
exports['nb-utils']:createObject({
model = "hw1_06_ldr_",
coords = vector4(623.18, -244, 42, 240.88)
})
Envía un mensaje o un embed a un webhook de Discord. Es de tipo server
config(tabla): Tabla de configuración que contiene los detalles del webhook y el mensaje.
url(cadena, requerido): La URL del webhook de Discord.msg(cadena, opcional): El contenido del mensaje a enviar.name(cadena, opcional): El nombre del bot que enviará el mensaje. Por defecto es "Webhook Bot".avatar(cadena, opcional): La URL del avatar del bot.embeds(tabla, opcional): Una tabla que contiene los embeds a enviar. Los campos típicos de un embed incluyen:title(cadena, opcional): El título del embed.description(cadena, opcional): La descripción del embed.color(número, opcional): El color del embed en formato decimal.fields(tabla, opcional): Una tabla de campos, donde cada campo es una tabla con los siguientes elementos:name(cadena, requerido): El nombre del campo.value(cadena, requerido): El valor del campo.inline(booleano, opcional): Indica si el campo debe mostrarse en línea. Por defecto esfalse.
footer(tabla, opcional): Una tabla con los siguientes elementos:text(cadena, requerido): El texto del pie de página.icon_url(cadena, opcional): La URL del ícono del pie de página.
timestamp(cadena, opcional): La fecha y hora en formato ISO 8601.
Enviar un mensaje simple:
sendDiscordWebhook({
url = "https://discord.com/api/webhooks/your_webhook_id/your_webhook_token",
msg = "Este es un mensaje de prueba desde Lua en FiveM!",
name = "Test Bot",
avatar = "https://your-avatar-url.com/avatar.png"
})Enviar un mensaje con un embed:
sendDiscordWebhook({
url = "https://discord.com/api/webhooks/your_webhook_id/your_webhook_token",
name = "Test Bot",
avatar = "https://your-avatar-url.com/avatar.png",
embeds = {{
title = "Título del Embed",
description = "Descripción del embed",
color = 16711680, -- Color en formato decimal (hex: 0xFF0000)
fields = {{
name = "Campo 1",
value = "Valor del campo 1",
inline = true
}, {
name = "Campo 2",
value = "Valor del campo 2",
inline = true
}},
footer = {
text = "Texto del pie de página",
icon_url = "https://your-footer-icon-url.com/icon.png"
},
timestamp = os.date("!%Y-%m-%dT%H:%M:%SZ") -- Fecha y hora en formato ISO 8601
}}
})CreateThread(function ()
while true do
Wait(0)
-- Dibuja un marcador en el juego
exports['nb-utils']:drawMarker({
type = 1,
coords = vector3(1189.81, -3248.83, 5.03),
size = {x = 1.0, y = 1.0, z = 1.0},
color = { r = 255, g = 0, b = 0, a = 222 },
rotate = true
})
local ped = PlayerPedId()
local distance = exports['nb-utils']:getDistancePlayer(vector3(1189.81, -3248.83, 5.03))
if distance <= 1.5 then
-- Dibuja texto en la pantalla
exports['nb-utils']:drawTxt({
text = "Hola esto es una prueba",
font = 2,
center = 3,
coords = {x = 0.38, y = 0.40},
scale = 0.5,
color = { r = 255, g =255, b =255, a = 255 },
})
if IsControlJustReleased(ped, 38) then
print('press')
-- Notificación utilizando el framework (opcional)
if QBCore and QBCore.Functions then
QBCore.Functions.Notify("presionastes", "primary", 500)
end
end
end
end
end)Nota: El uso de QBCore.Functions.Notify es opcional y depende del framework que se esté utilizando. Si no se usa QBCore, esta línea puede ser removida o reemplazada por la función de notificación correspondiente a su framework.