Los fallos más habituales tras instalar Cuxial Diseases, con la causa y la solución de cada uno.
El recurso no arranca
Causa. Falta una dependencia o arranca después. Cuxial Diseases necesita OneSync, ox_lib, oxmysql y cuxial_bridge.
Solución. Activa OneSync y arranca primero las dependencias:
ensure ox_lib
ensure oxmysql
ensure cuxial_bridge
ensure cuxial_diseasesTodos los jugadores enfermaron a los pocos días de instalarlo
Causa. El plazo de vacunación está activado (onboarding.enabled = true). Los personajes que ya existían tienen onboarding.hoursExisting horas desde su primera entrada y los nuevos, onboarding.hours. Quien no se vacuna a tiempo contrae la enfermedad de onboarding.disease.
Solución. Asegúrate de que el ítem de la vacuna existe y de que los jugadores pueden conseguirlo, o pon onboarding.enabled = false. Para librar solo a los personajes que ya existían, pon onboarding.applyToExisting = false. El staff puede curar a un jugador con /disease cure y reiniciar su plazo con /disease onboarding <id>.
La consola muestra un error de «onboarding» cuando entra un jugador
Causa. El plazo de vacunación lee la tabla de personajes del framework y necesita las columnas id y citizenid. Existen en QBox y QBCore, no en ESX.
Solución. En ESX, deja onboarding.enabled = false. Si usas una tabla de personajes propia, revisa el nombre de tabla indicado a cuxial_bridge.
Usar un ítem no hace nada, o el inventario avisa de que falta un export
Causa. Una de estas:
- El ítem no aparece en
data/diseases.luacomotest.item,treatment.item,treatment.box.itemovaccine.item, así que el script no registra ningún export para él. server.exporten la definición del ítem no coincide concuxial_diseases.<nombre del ítem>.- Se cambió el nombre de la carpeta del recurso.
- La prueba está marcada con
external = trueen el catálogo, así que debe gestionarla otro recurso.
Solución. Usa el nombre exacto del ítem del catálogo en los dos sitios y conserva el nombre de carpeta cuxial_diseases. Reinicia el servidor después de cambiar el catálogo.
Un medicamento responde «No necesitas esto»
Causa. El jugador no tiene ninguna enfermedad activa que ese ítem trate. El ítem no se gasta.
Solución. No hace falta ninguna. Comprueba lo que tiene el jugador con /disease status <id>.
Una pastilla se rechaza porque la anterior sigue activa
Causa. La siguiente dosis solo se admite cuando la anterior se ha agotado, o pasadas treatment.minIntervalHours si la enfermedad lo indica.
Solución. Espera las horas que dice el mensaje, o baja minIntervalHours en esa enfermedad.
Las dosis tomadas han vuelto a cero
Causa. El jugador pasó demasiado tiempo sin tomar una dosis. Pasadas treatment.resetAfterHours desde la última, el doble de effectHours por defecto, la rutina se da por rota y el contador empieza de nuevo.
Solución. Sube resetAfterHours en esa enfermedad, o ponlo en 0 para que el contador nunca se pierda.
Un jugador enfermo no tiene síntomas
Causa. Una de estas:
symptoms.enabledestá enfalse.- La etapa actual no tiene síntomas, como en una etapa de incubación.
- Hay una dosis activa y el tratamiento tiene
suppressSymptoms = true, o los reduce. - El jugador está muerto o inconsciente y
symptoms.skipWhenDeadestá entrue. - El jugador va en un vehículo: tos, mareo, vómito y fatiga esperan a que se baje.
- No ha pasado tiempo suficiente. Los intervalos son minutos de juego y cada uno es aleatorio entre
minymax.
Solución. Revisa el caso con /disease status <id>, cámbialo de etapa con /disease stage y prueba las animaciones con /disease symptom <id>.
Nadie se contagia de los jugadores enfermos
Causa. El contagio por cercanía viene desactivado. Con él activado, una enfermedad solo se transmite si tiene contagion.proximity, el enfermo está en una de las etapas que ahí se listan y el otro jugador está dentro del radio. Una mascarilla en el inventario, una inmunidad o una vacuna reducen o eliminan el riesgo.
Solución. Pon proximity.enabled = true en shared/config.lua y reinicia el recurso. Sube chance en el catálogo para un contagio más rápido.
El paciente no sabe qué enfermedad tiene
Causa. diagnosis.revealToPatient está en false. El nombre queda oculto hasta que el caso se diagnostica.
Solución. Diagnostica el caso con una prueba positiva, desde la MDT de Cuxial Police o con /disease diagnose. Para mostrar el nombre desde el principio, pon diagnosis.revealToPatient = true.
Una prueba sale negativa o no concluyente en un jugador enfermo
Causa. Una prueba solo comprueba las enfermedades que nombran ese ítem en test.item. Durante incubationHours el resultado puede ser no concluyente, con el porcentaje de test.inconclusiveChance.
Solución. Usa el ítem de prueba de esa enfermedad, o repite la prueba pasado el tiempo de incubación.
/disease responde que no tienes permiso, o el comando no existe para ti
Causa. Los comandos necesitan dos cosas: pertenecer al grupo ACE de admin.restricted y tener el permiso del framework de admin.permission.
Solución. Añade al miembro del staff al grupo en server.cfg y dale el permiso de administrador de tu framework:
add_principal identifier.license:xxxxxxxxxxxxxxxx group.adminUna vacuna se rechaza con «la vacuna no sirve ahora»
Causa. El jugador ya tiene la enfermedad contra la que protege la vacuna. Una vacuna no cura.
Solución. Trata primero la enfermedad y vacuna después.
Una etapa letal nunca derriba al paciente
Causa. El colapso lo ejecuta cuxial_medical. Sin él, el script solo envía el evento collapse. Un colapso necesita además que el paciente esté conectado, sin una dosis activa, y symptoms.enabled = true para el que provoca la pérdida de vida.
Solución. Arranca cuxial_medical, o gestiona el evento desde tu propio script de ambulancia. Consulta Exports y eventos.
Un médico no puede completar el plan de cura
Causa. Los pasos de cure.steps se aplican desde la MDT de Cuxial Police. Un paso con hours no se puede hacer antes de que pase ese tiempo, y un paso con item necesita que el médico lo lleve encima.
Solución. Arranca cuxial_police. Sin él, completa los pasos desde tu propio recurso con el export AdvanceCureStep, o cura con /disease cure.
La app de salud no está en el teléfono
Causa. Una de estas:
lb-phoneno está en marcha.app.enabledestá enfalse.app.defaultAppestá enfalse, así que la app hay que descargarla de la tienda de apps del teléfono.
Solución. Arranca lb-phone, revisa el bloque app y, para instalarla en todos los teléfonos, pon app.defaultApp = true.
La app de salud se abre en blanco
Causa. La interfaz no carga. Falta la carpeta ui/dist o está incompleta, normalmente por una subida a medias.
Solución. Comprueba que existen ui/dist/index.html y la carpeta ui/dist/assets dentro del recurso. Si faltan, vuelve a copiar el recurso desde el paquete original y reinicia el servidor.
La pestaña de citas de la app está siempre vacía
Causa. Las citas vienen de Cuxial Police. Sin ese recurso no hay ninguna.
Solución. No hace falta ninguna si no usas Cuxial Police.
A un personaje embarazado le cambia la parte de arriba por una prenda equivocada
Causa. belly.enabled está en true y los valores drawable de belly.stages están en su valor por defecto, 0.
Solución. En data/pregnancy.lua, pon en belly.stages la ropa de barriga de tu servidor, o pon belly.enabled = false.
No hay citas de revisión ni aviso a EMS durante un embarazo
Causa. Las dos cosas se crean mediante Cuxial Police. Las revisiones y la cita de parto necesitan además que el embarazo sea conocido: una prueba positiva, la MDT o /pregnancy reveal.
Solución. Arranca cuxial_police. Sin él, el embarazo sigue avanzando, el parto empieza y el nacimiento ocurre cuando se agota labor.durationMin.
Los nombres de las enfermedades salen en otro idioma
Causa. Los avisos y los comandos siguen la convar ox:locale, con es y en incluidos. Los nombres de enfermedades, etapas, pasos de cura y meses de embarazo son texto escrito en data/diseases.lua y data/pregnancy.lua.
Solución. Define la convar y traduce los textos de los dos archivos de datos:
setr ox:locale "es"Una enfermedad ha desaparecido de los jugadores tras editar el catálogo
Causa. Su id se cambió o se borró en data/diseases.lua. Los casos existentes conservan el id antiguo y dejan de procesarse.
Solución. Recupera el id antiguo. Para retirar una enfermedad, cura antes los casos activos.
