Skip to content

Problemas frecuentes

Problemas habituales de Cuxial Interactions, con su causa y su solución.

Los problemas más habituales tras instalar Cuxial Interactions o registrar tus propios NPC, con la causa y la solución de cada uno. Los avisos del recurso en consola empiezan por [cuxial_interactions].

El recurso no arranca

Causa. Falta una dependencia o arranca después. Cuxial Interactions necesita OneSync, ox_lib, oxmysql, ox_inventory y cuxial_bridge.

Solución. Activa OneSync y arranca antes las dependencias:

server.cfg
cfg
ensure ox_lib
ensure oxmysql
ensure ox_inventory
ensure cuxial_bridge
ensure cuxial_interactions
Un NPC no aparece

Causa. Una de estas:

  • Su conjunto está desactivado en sets, o el punto tiene enabled = false.
  • El archivo de datos tiene un error de Lua. La consola muestra un aviso con el nombre del archivo que no se pudo cargar.
  • El jugador está más lejos que spawnDistance (60 metros por defecto).
  • No se pudo crear el ped. La consola del cliente muestra un aviso con el id del punto.

Solución. Pon el conjunto a true en shared/config.lua, corrige el error que señala la consola y reinicia el recurso. Un modelo que no existe se sustituye por npc.fallbackModel; si ese también está mal, no se crea ningún ped.

El NPC está, pero no sale la opción de hablar

Causa. Una de estas:

  • No hay ningún recurso de target arrancado, o arranca después de Cuxial Interactions.
  • El punto tiene una condición job, item o canInteract que el jugador no cumple.
  • El punto, o el config, tiene interaction = 'none'.
  • Ya hay un diálogo o una tienda abiertos.

Solución. Arranca sleepless_interact, ox_target o qb-target antes de cuxial_bridge y de cuxial_interactions. Después revisa las condiciones del punto. Los puntos con interaction = 'none' solo se abren con el export Interact.

Puse interaction = 'sprite' y se sigue usando el target

Causa. bl_sprites no está arrancado. La consola del cliente muestra un aviso una vez. Los puntos sin ped usan siempre el target.

Solución. Instala y arranca bl_sprites antes de Cuxial Interactions, o vuelve a interaction = 'target'.

El NPC flota o se hunde en el suelo

Causa. El ped se crea en la Z de coords más npc.zOffset, que vale -1.0. Eso encaja con coordenadas tomadas de la posición del jugador. Las coordenadas tomadas a ras de suelo dejan el ped un metro por debajo.

Solución. Toma las coordenadas de pie en el sitio, o corrige la Z de ese punto. Cambia npc.zOffset solo si todas tus coordenadas usan otra referencia.

Los NPC con usePlayerSkin salen todos con el ped por defecto

Causa. Una de estas:

  • El recurso de skins.resource no está arrancado, así que la apariencia no se puede aplicar.
  • No se jugó con ningún personaje en los últimos skins.activeDays días. La consola del servidor muestra un aviso y lo vuelve a intentar pasados skins.retry segundos.
  • El servidor usa ESX. usePlayerSkin requiere QBox o QBCore.

Solución. Arranca cuxial_appearance antes de Cuxial Interactions y sube skins.activeDays en un servidor nuevo. En ESX, pon un model a esos puntos.

La tienda dice que no está disponible y no se puede vender nada

Causa. La tienda no está registrada en el servidor. O no se llamó a RegisterShop, o su id es distinto del shop.id del cliente, o el registro se rechazó: un objeto sin price válido, una lista vacía, o sin coords, netId ni anywhere. Un registro rechazado deja un aviso en la consola del servidor.

Solución. Llama a RegisterShop con el mismo id que usa el cliente. En un punto registrado con Register, shop.id vale por defecto el id del punto. Las tiendas escritas en data/ se registran solas cuando tienen una lista items.

«Estás demasiado lejos del comprador» estando junto al NPC

Causa. El servidor mide la distancia hasta las coordenadas indicadas en RegisterShop, no hasta el ped. Están demasiado lejos de donde se coloca el jugador, o la distancia es corta para ese sitio.

Solución. Registra la tienda con las coordenadas del NPC, o sube distance en las opciones de esa tienda. shop.maxDistance cambia el valor por defecto de todas las tiendas.

La venta falla con «No tienes suficiente cantidad de este artículo»

Causa. El servidor cuenta menos unidades que la cantidad pedida. El nombre del objeto en la tienda no coincide con el de ox_inventory, o los objetos salieron del inventario con la tienda abierta.

Solución. Comprueba que cada name de la tienda es el nombre exacto del objeto en tu inventario.

Un botón no hace nada

Causa. Su función onSelect falló. La consola del cliente muestra un aviso con el id del botón y el error. En los conjuntos de ejemplo ocurre cuando un botón llama a un recurso que no está en tu servidor. Un nextDialog que apunta a una página que no existe, o que está desactivada, también deja un aviso.

Solución. Edita el botón en su archivo de data/, o desactiva el conjunto en sets. Comprueba que nextDialog coincide con el id de una página del mismo diálogo.

Mis NPC desaparecen al reiniciar cuxial_interactions

Causa. Reiniciar el recurso borra todos los puntos y tiendas registrados por otros recursos.

Solución. Regístralos de nuevo cuando arranque, en los dos lados:

lua
-- cliente
AddEventHandler('onClientResourceStart', function(resource)
    if resource == 'cuxial_interactions' then registerNpc() end
end)

-- servidor
AddEventHandler('onResourceStart', function(resource)
    if resource == 'cuxial_interactions' then registerShop() end
end)
Register devuelve false

Causa. Una de estas:

  • El id ya está registrado por otro recurso. La consola dice cuál.
  • La definición no tiene ninguno de coords, entity y netId.
  • La definición tiene enabled = false.
  • id no es un string o está vacío.

Solución. Pon de prefijo a tus ids el nombre de tu recurso y da una ubicación al punto.

Un icono muestra un bocadillo en lugar del que escribí

Causa. El nombre no está en la lista de iconos de la interfaz.

Solución. Usa uno de los nombres listados en Exports y eventos. La opción de target es distinta: targetIcon recibe una clase Font Awesome.

El diálogo tarda un momento en abrirse

Causa. La ventana espera camera.settle milisegundos (1500 por defecto) para que la cámara llegue antes al NPC.

Solución. Baja camera.settle y camera.transition, o pon camera.enabled = false.

El médico NPC de pago dice que no puede atender al jugador

Causa. El recurso de maria.revive no está arrancado, o su export no reanimó al jugador. En el primer caso no se cobra nada; en el segundo se devuelve el dinero. El servicio también se niega cuando el jugador está a más de maria.maxDistance de un NPC del conjunto de maria.set, o cuando hay maria.maxOnDuty médicos de servicio.

Solución. Arranca cuxial_medical, o apunta maria.revive al export de servidor de tu recurso médico; se le llama con el id de servidor del jugador y debe devolver true. Mantén activado el conjunto indicado en maria.set.

El diálogo no se muestra nunca, o la pantalla se queda con el foco y sin nada

Causa. La interfaz no está cargando. Falta la carpeta web/dist o está incompleta, normalmente por una subida parcial.

Solución. Comprueba que dentro del recurso existen web/dist/index.html y la carpeta web/dist/assets. Si no están, vuelve a copiar el recurso desde el paquete original y reinicia el servidor.

© Cuxial