Inicio › Documentación › Personalización · origen_importheist
La carpeta custom/ contiene la capa de extensión del script. Estos ficheros no tienen escrow y están pensados para modificarse y adaptarlos a los frameworks, recursos y preferencias de tu servidor.
custom/
├── client.lua ← UI, notifications, minigame, fuel, keys, animations
└── server.lua ← Reward delivery, police detection, vehicle localizerCustom.ShowHelpNotification(key, msg)Muestra una notificación de ayuda contextual (p. ej. «Pulsa E para atracar»). Se llama cuando el jugador está dentro de una zona de interacción.
| Parámetro | Tipo | Descripción |
|---|---|---|
key |
string |
Indicación de tecla que se muestra (depende del framework) |
msg |
string |
Texto del mensaje |
La implementación por defecto usa qb-core:DrawText o ESX.ShowHelpNotification. Sustituye el cuerpo por tu propio sistema cuando Config.CustomNotify = true.
Custom.ShowHelpNotification = function(key, msg)
-- your custom notification here
endCustom.HideHelpNotification()Oculta la notificación de ayuda contextual. Se llama cuando el jugador sale de la zona de interacción.
La implementación por defecto llama a qb-core:HideText en QBCore. Sustitúyela si usas otro recurso de notificaciones.
Custom.HideHelpNotification = function()
-- your custom hide logic here
endCustom.ShowNotification(msg)Muestra una notificación estándar al jugador (p. ej. mensajes de recompensa, errores).
| Parámetro | Tipo | Descripción |
|---|---|---|
msg |
string |
Texto del mensaje |
Lo controla Config.CustomNotify en config/_framework.lua:
false (por defecto) → usa la notificación nativa de QBCore/ESXtrue → ejecuta tu bloque de código personalizadoCustom.ShowNotification = function(msg)
-- Put your code here if Config.CustomNotify = true
endCustom.StartMinigame() → booleanSe llama cuando el jugador intenta saquear una taquilla de un vehículo. Debe devolver true para permitir la acción o false para denegarla.
La implementación por defecto siempre devuelve true (sin minijuego). Sustitúyela por el export de tu propio minijuego.
Custom.StartMinigame = function()
return true
-- Example with ox_lib:
-- return exports.ox_lib:skillCheck({'easy', 'easy', 'medium'}, {'w', 'a', 's', 'd'})
endCustom.SetFuel(vehicle, fuel)Establece el nivel de combustible del vehículo generado. Se llama después de entregar un vehículo.
| Parámetro | Tipo | Descripción |
|---|---|---|
vehicle |
integer |
Handle de la entidad del vehículo |
fuel |
number |
Nivel de combustible (0–100) |
Lo controla Config.FuelSystem en config/_framework.lua. Valores compatibles de serie: 'none', 'LegacyFuel', 'ps-fuel', 'cdn-fuel', 'qs-fuelstations', 'ox_fuel'.
Custom.SetFuel = function(vehicle, fuel)
-- Example for a custom resource:
-- exports['my-fuel']:SetFuel(vehicle, fuel)
endCustom.GiveVehicleKeys(vehicle, plate)Da la propiedad del vehículo al jugador tras completar el atraco. Se llama desde el servidor mediante un evento de cliente una vez generado el vehículo.
| Parámetro | Tipo | Descripción |
|---|---|---|
vehicle |
integer |
Handle de la entidad del vehículo |
plate |
string |
Texto de la matrícula del vehículo |
La implementación por defecto usa vehiclekeys:client:SetOwner (el predeterminado de QBCore). Sustitúyela si usas sistemas de llaves personalizados.
Custom.GiveVehicleKeys = function(vehicle, plate)
-- Example for ox_lib keys:
-- exports.ox_inventory:giveItem(cache.playerId, 'keys', 1, { plate = plate })
endCustom.PoliceCall(text, coords, veh, _Trigger)Envía un aviso a la policía cuando el jugador entra en un almacén (si Config.NotifyCopsOnEntry = true). Internamente dispara el evento de servidor SendAlert:police con los metadatos del vehículo.
| Parámetro | Tipo | Descripción |
|---|---|---|
text |
string |
Mensaje del aviso (puede contener marcadores de formato para el modelo/color) |
coords |
vector3 |
Ubicación del aviso |
veh |
integer|nil |
Handle de la entidad del vehículo, o nil si no hay vehículo |
_Trigger |
boolean |
Si es true, registra además el vehículo en el localizador GPS |
Esta función viene ya conectada y normalmente no hace falta modificarla. Personalízala solo si tu servidor usa otro recurso de avisos.
Custom.PlayAnim(type, dict, anim, time, move)Reproduce una animación del ped desde la tabla Config.Animations. Se usa internamente para las acciones 'search' y 'checking'.
| Parámetro | Tipo | Descripción |
|---|---|---|
type |
string |
Clave de animación de Config.Animations |
dict |
string |
Diccionario de animación |
anim |
string |
Nombre de la animación |
time |
integer|false |
Duración en ms, o false para repetir indefinidamente |
move |
boolean |
Si el ped puede moverse durante la animación |
Custom.GetPolices() → integer[]Devuelve una tabla con los IDs de servidor de todos los policías en servicio. Se usa para comprobar Config.MinCops y para enviar las actualizaciones del localizador GPS.
Implementación por defecto:
QBCore.Functions.GetPlayersOnDuty('police')exports['origen_police']:GetPlayersInDuty('police')ESX.GetExtendedPlayers('job', 'police')Custom.GetPolices = function()
-- Replace with your own duty system if needed
return {}
endEl evento de servidor origen_importheist:reward se gestiona dentro de custom/server.lua. Da dinero o un objeto al jugador según Config.Reward.
-- Automatically triggered by the script — not a public API.
-- Modify if you need custom reward logic (e.g. adding XP, logging, etc.)
RegisterServerEvent('origen_importheist:reward', function(total)
local Player = FW_GetPlayer(source)
if Config.Reward.useItem then
Player.Functions.AddItem(Config.Reward.item, total)
else
Player.Functions.AddMoney(Config.Reward.account, total)
end
end)