Cómo funcionan las integraciones#
Crime Creator llega a cada recurso de terceros a través de un puente: un pequeño archivo sin cifrar por recurso en client/custom/, server/custom/ o custom/. Cuando el recurso arranca, mira lo que ya está en marcha y activa el puente correspondiente; todos los demás puentes quedan inactivos.
Capa | Compatibles | Sin ella |
|---|---|---|
Framework |
| Obligatorio. El recurso se detiene con un error. |
Inventario |
| Un fallback standalone que avisa en la consola. No está pensado para un servidor en producción. |
Llaves de vehículos | 14 sistemas de llaves — ver más abajo. | Los vehículos del garaje, del lavado y de los robos se entregan sin llaves. |
Ropa | 15 sistemas de ropa — ver más abajo. | Un menú de outfits integrado (datastore de ESX / outfits de qb-clothing). |
Ambulancia | 10 sistemas médicos — ver más abajo. | No se detectan las muertes para las penalizaciones PvP ni las reanimaciones de médicos ilegales. |
Dispatch |
| Sin alertas policiales por venta de drogas ni robo de vehículos. |
Target |
| Avisos [E] en pantalla (por defecto). |
Sincronización del clima |
| El clima dentro de las sedes shell puede cambiar con el del exterior. |
Ayudas de UI |
| Text UI y círculos de progreso de ox_lib. |
Base de datos |
| Obligatoria. |
La detección solo ve recursos que ya están iniciados. Todo lo que quieras que se detecte debe estar por encima de
ensure qs-crime-creatorenserver.cfg.
Forzar la detección#
Cada capa es una tabla en config/main.lua que asocia un nombre de recurso con un puente. Si dos candidatos se ejecutan a la vez, o un recurso se ha renombrado en tu servidor, sustituye la línea de detección por el nombre del puente:
-- Auto, the default: the first started resource in the table is used.
Config.Inventory = DependencyCheck(inventories) or 'standalone'
-- Manual: always use this bridge.
Config.Inventory = 'ox'
Config.Vehiclekeys = 'qs-vehiclekeys'
Config.Wardrobe = 'illenium-appearance'
Config.Ambulance = 'qs'
Config.Dispatch = 'qs-dispatch'Un recurso renombrado en tu servidor se arregla igual, añadiendo el nombre de su carpeta a la tabla: ['my-inventory'] = 'ox'.
Recursos compatibles#
Inventarios — Config.Inventory
Recurso | Puente |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
El inventario abre los stashes de las organizaciones, el inventario del jugador al robar, y alimenta el mercado negro.
Llaves de vehículos — Config.Vehiclekeys
qs-vehiclekeys · qb-vehiclekeys · qbx_vehiclekeys · wasabi_carlock · MrNewbVehicleKeys · mVehicle · F_RealCarKeysSystem · fivecode_carkeys · glfp10_carkeys · jc_vehiclekeys · mono_carkeys · ti_vehicleKeys · vehicles_keys · xd_locksystem
El nombre del puente es el nombre del recurso. Sin ninguno, el valor es none.
Ropa — Config.Wardrobe
qs-appearance · illenium-appearance · fivem-appearance · qb-clothing · codem-appearance · ak47_clothing · raid_clothes · rcore_clothes · rcore_clothing · origen_clothing · sleek-clothestore · tgiann-clothing · p_appearance · 0r-clothingv2
También se incluye un puente para mAppearance, pero no se detecta automáticamente — define Config.Wardrobe = 'mAppearance' a mano. Sin ninguno, se usa el menú default (en ESX necesita el datastore crime_house de esx.sql).
Ambulancia — Config.Ambulance
Recurso | Puente |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Dispatch — Config.Dispatch
qs-dispatch alerta a los trabajos police, sheriff, traffic y patrol con un blip; qb-policejob usa su propia alerta policial. Para cualquier otro dispatch, completa PoliceDispatch(alert) en client/custom/dispatch/standalone.lua.
Los trabajos de policía que cuentan para Config.RequiredCops se enumeran en Config.PoliceJobs.
Bajas en las guerras de territorio#
Cada servidor informa de las muertes de forma distinta, así que Crime Creator no lo adivina. Para que las bajas cuenten en las guerras de territorio — en la puntuación clásica y en las solicitudes de guerra de Kills — llama a un export desde tu evento de muerte, en el servidor:
-- custom/esx/server.lua (an example is already there, commented out)
AddEventHandler('esx:onPlayerDeath', function(data)
local victim = source
local killer = data and data.killerServerId
if killer and type(killer) == 'number' and killer ~= victim then
exports['qs-crime-creator']:TerritoryWarOnPlayerKilled(killer, victim)
end
end)-- From your hospital / death handler, on the server:
exports['qs-crime-creator']:TerritoryWarOnPlayerKilled(attackerSource, victimSource)La baja solo cuenta cuando el asesino y la víctima pertenecen a las dos organizaciones en guerra y la víctima está dentro del territorio disputado. El export devuelve true cuando se ha acreditado.
Notificaciones, textos y barras de progreso#
Las tres están en custom/client.lua:
Las notificaciones usan los toasts propios del script. Hay versiones listas de
qs-interfaceyox_liben la funciónNotification, comentadas — descomenta la que quieras. Otros scripts pueden lanzarlas con el eventocrime:notification.Los avisos de texto usan
qs-textuicuando está en marcha y, si no, ox_lib.Las barras de progreso usan
qs-interfacecuando está en marcha y, si no, el círculo de progreso de ox_lib.El menú de interacción F4 — sus opciones, orden e iconos — está en el mismo archivo.
Extras opcionales#
Recurso | Qué añade |
|---|---|
| Las sedes IPL y sus temas. |
| El punto de carga del teléfono en las sedes, y los datos de banda que lee la app de crimen del teléfono. |
| Sonidos de puerta y timbre. Desactívalos con |
| Define |
Logs de Discord#
Pega una URL de webhook por categoría en server/webhooks.lua. Una categoría vacía simplemente no se envía.
Categoría | Qué se envía |
|---|---|
| Administradores creando, editando y borrando organizaciones, territorios, puntos de cobro, vehículos de la tienda, el pase de temporada y batallas PvP. |
| Cada grafiti pintado y borrado. |
| Vehículos comprados en la tienda de vehículos de la organización. |
| Muertes dentro de una zona de batalla PvP. |
| Clasificación final de cada batalla PvP. |
-- server/webhooks.lua
Config.ShowWebhookIP = false
_G['webhook'] = {
graffiti = '',
creator = 'https://discord.com/api/webhooks/...',
vehicle_purchase = 'https://discord.com/api/webhooks/...',
pvp_death = '',
pvp_battle_end = 'https://discord.com/api/webhooks/...'
}Los logs se ponen en cola y se envían por lotes para que Discord nunca los limite. Las direcciones IP de los jugadores se ocultan salvo que actives Config.ShowWebhookIP.
Idiomas#
Se incluyen 41 traducciones en locales/: ar, bg, bn, ca, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, id, it, ja, ko, lt, lv, ms, nl, no, pl, pt, ro, ru, sk, sl, sv, sw, th, tr, uk, ur, vi y zh. Define Config.Locale en config/main.lua. Cualquier línea que falte en tu idioma usa el inglés, con un aviso en la consola que la nombra.
El dinero en la interfaz se formatea con Config.Intl — define locales (por ejemplo es-ES) y currency (por ejemplo EUR) para adaptarlo a tu servidor.



