Ir al contenido

Solución de problemas

Lo que de verdad falla, y dónde mirar.


Un reinicio normal no vuelve a leer fxmanifest.lua. Si has añadido un archivo (un idioma nuevo, por ejemplo), escribe primero refresh en la consola del servidor y después restart mic_drugdealer. Los cambios en config.lua solo necesitan el reinicio.

Por orden:

  • ¿Está lb-phone en marcha? La app lo espera y se añade en cuanto arranca.
  • ¿Está el trabajo del jugador en Config.BlockedAppJobs? Policía, sheriff, ambulancia y mecánico no la ven por defecto. Prueba con otro trabajo.
  • ¿Está Config.defaultApp desactivado? Entonces la app no está en la pantalla de inicio hasta que se instala desde la App Store.

La consola del servidor da errores al arrancar sobre getSharedObject o GetCoreObject

Sección titulada «La consola del servidor da errores al arrancar sobre getSharedObject o GetCoreObject»

Config.Framework no coincide con tu servidor, o el framework arrancó después de este recurso. Usa "ESX" o "QB" en mayúsculas, y pon ensure mic_drugdealer debajo de tu framework en server.cfg.

En QBox, el valor es "QB" (QBox ejecuta los recursos de QBCore mediante su capa de compatibilidad), con Config.qbResourceName en "qb-core", y qbx_core debe arrancar antes que mic_drugdealer.

La app se abre pero dice “No drugs available”

Sección titulada «La app se abre pero dice “No drugs available”»

Se ha cambiado el nombre de la carpeta. Las pantallas de la app se comunican con el recurso por el nombre mic_drugdealer; vuelve a ponerle ese nombre a la carpeta.

“¡No hay suficientes policías en línea!”

Sección titulada «“¡No hay suficientes policías en línea!”»

Config.MinimumPolice viene en 1, así que si no hay nadie conectado con un trabajo de Config.PoliceJobs, nadie compra. Ponlo en 0 para desactivar la comprobación, o asegúrate de que los nombres de tus trabajos de policía están en Config.PoliceJobs.

“No tienes suficiente … en tu inventario”

Sección titulada «“No tienes suficiente … en tu inventario”»

El nombre de item en Config.drugs tiene que ser exactamente el nombre del ítem en tu inventario. La lista de serie usa nombres como maria, coca y meta; los tuyos probablemente sean distintos. Recuerda también que la cantidad se elige entre minAmount y maxAmount: a un jugador que lleva 2 le pueden pedir 8.

“¡Necesitas nivel … para vender …!”

Sección titulada «“¡Necesitas nivel … para vender …!”»

El minLevel de esa droga está por encima del nivel del jugador. PROFILE en la app muestra su nivel y cuántas ventas le faltan para el siguiente. Baja minLevel, o edita los niveles, en config.lua.

“¡El comprador rechazó la oferta y la venta falló!”

Sección titulada «“¡El comprador rechazó la oferta y la venta falló!”»

Eso es Config.Failure: la probabilidad, sobre 100, de que la puerta siga cerrada después de llamar. Viene en 55, así que más de la mitad de las puertas dicen que no. El jugador conserva las drogas; solo tiene que empezar un trato nuevo.

El jugador tardó más de Config.DealTimeout segundos (300) en llegar a la puerta. Súbelo si tus zonas están lejos de donde suelen estar los jugadores.

Revisa la tabla de Personalización, en “Framework y dinero”. Las dos sorpresas:

  • En QBCore, el dinero negro siempre se paga como un ítem llamado blackmoney, incluso con Config.MoneyAsItem desactivado. Si ese ítem no existe en tu inventario, el pago se pierde. Créalo, o pon Config.BlackMoney = false.
  • En ESX con Config.MoneyAsItem = true, el pago es un ítem. Es lo que espera ox_inventory; con un inventario que guarda el dinero en cuentas, pon MoneyAsItem = false.

La cantidad pagada es mayor que la que decía la notificación

Sección titulada «La cantidad pagada es mayor que la que decía la notificación»

La notificación del móvil muestra el precio base con la bonificación de nivel. Después el servidor añade la bonificación de policía de Config.PriceMultipliers, así que con más agentes conectados el jugador recibe más de lo que anunciaba la notificación.

Solo se denuncia una parte de las ventas con éxito: Config.PoliceAlertChance, 20 de cada 100 por defecto. Los agentes tienen que tener lb-phone y un trabajo que esté en Config.PoliceJobs. El blip dura Config.PoliceBlipDuration segundos.

El progreso vive en player_data.json, dentro de la carpeta del recurso. Si el servidor no puede escribir ahí (una carpeta de solo lectura, o un host que restaura los archivos en cada reinicio), no se guarda nada. La consola muestra un error cuando falla un guardado.