Skip to content

Configuración

Todas las opciones de Cuxial Servicios Comunitarios: shared/config.lua, las tareas y la zona de trabajo en data/tasks.lua, y las celdas en data/jail.lua.

Tres archivos reúnen todo lo que puedes cambiar: shared/config.lua para el comportamiento, data/tasks.lua para la zona de comunitarias y sus tareas, y data/jail.lua para las celdas. Reinicia el recurso después de editar cualquiera de ellos.

General ​

OpciónTipoPor defectoQué hace
debugbooleanfalseMuestra mensajes de depuración en la consola. La convar set cuxial_cmservices_debug 1 también los activa.
ui.accentstringconfigurableColor de acento de la interfaz, en hexadecimal.
admin.permissionstring'mod'Permiso del bridge que se comprueba para los comandos y el panel. En ESX es el grupo del jugador; 'admin' deja pasar también a superadmin.
admin.reasonMaxnumber250Longitud máxima del motivo, en caracteres.

Comandos · commands ​

Cada comando tiene un name (lo que se escribe, sin /) y un grupo ACE en restricted. Pon en restricted el grupo de tu staff.

ClaveNombre por defectoACE por defectoQué hace
panelsancionesgroup.modAbre el panel de sanciones.
comservcomservgroup.modPone servicios comunitarios.
endComservendcomservgroup.modRetira los servicios comunitarios.
jailjailagroup.modEnvía a un jugador a la cárcel administrativa.
endJailendjailgroup.modLibera a un jugador de la cárcel.
taskCoordstaskcoordsgroup.modHerramienta de mapeo de tareas.

Servicios comunitarios · comserv ​

OpciónTipoPor defectoQué hace
maxTasksnumber1000Máximo de tareas por sanción desde comandos y panel.
maxApiTasksnumber10000Máximo de tareas que puede sumar una llamada a AddCommunityService.
exitvector3ejemploDónde aparece el jugador al cumplir o al retirarle la sanción.
taskRadiusnumber4.0Distancia horizontal en metros al centro de la tarea que acepta el servidor, más un margen de 1,5 m.
taskHeightnumber4.0Diferencia de altura máxima en metros con la tarea.
interactDistancenumber1.5Distancia en metros al borde del objeto desde la que sale el aviso E, por cualquier lado.
interactMaxReachnumber2.2Radio máximo en metros que se cuenta como tamaño del objeto. Mantiene el aviso cerca en objetos muy grandes.
interactKeynumber38Control que empieza la tarea. 38 es E.
minDurationRationumber0.8Fracción de la duración de la tarea (0 a 1) que debe pasar antes de que el servidor la dé por hecha.
zoneDebugbooleanfalseDibuja las paredes de la zona. Úsalo solo mientras ajustas el polígono.
disableControlsnumber[]{ 24, 25 }Controles bloqueados dentro de la zona. 24 disparar, 25 apuntar.
restoreStaminabooleantrueRecupera la estamina dentro de la zona.
markertablever abajoMarcador sobre el objeto de la tarea: type, scale, height sobre el objeto, color (RGBA) y drawDistance en metros.
outlinetableenabled = trueResalta el objeto de la tarea. enabled (true / false) y color (RGBA).
bliptablesprite = 1, scale = 0.8, route = trueBlip de la tarea en el mapa. route = true dibuja la ruta GPS.
interactIconstring'hammer'Icono del aviso E, nombre de Font Awesome sin prefijo.

El marcador por defecto es type = 2, scale = 0.35, height = 0.5, drawDistance = 40.0.

El aviso E sale a interactDistance del borde del objeto, mientras que el servidor mide taskRadius + 1,5 m desde el centro de la tarea. Mantén el aviso dentro de la distancia que acepta el servidor: si subes interactDistance o interactMaxReach, sube también taskRadius.

Cárcel · jail ​

OpciónTipoPor defectoQué hace
maxMinutesnumber1440Máximo de minutos por sanción. Vale para comandos, panel y AddJail.
exitvector3ejemploDónde aparece el jugador al cumplir o al retirarle la cárcel.
distancenumber50.0Radio en metros alrededor de la celda. Más lejos, el jugador vuelve a ella.
ticknumber60Segundos por minuto cumplido. 60 es tiempo real; valores menores acortan la cárcel.
invinciblebooleantrueEl jugador no recibe daño mientras está en la cárcel.
unarmedbooleantrueQuita el arma de la mano del jugador.
disableControlsnumber[]{ 24, 25 }Controles bloqueados en la cárcel.

Comprobaciones del servidor y límites ​

OpciónTipoPor defectoQué hace
guard.enabledbooleantrueEl servidor comprueba la posición de los sancionados y devuelve a quien esté fuera de la zona o demasiado lejos de la celda.
guard.intervalnumber5000Milisegundos entre comprobaciones. Mínimo 1000.
distance.hznumber4Actualizaciones por segundo de la distancia en pantalla. Máximo 4.
distance.stepnumber1.0Cambio mínimo en metros antes de actualizar la distancia en pantalla.
limits.tasktable{ 4, 10000 }Peticiones de tarea permitidas por jugador: { llamadas, ventana en ms }.
limits.statetable{ 6, 10000 }Peticiones de estado permitidas por jugador.
limits.admintable{ 30, 10000 }Peticiones del panel permitidas por miembro del staff.

Chat y registros ​

OpciónTipoPor defectoQué hace
chat.enabledbooleantrueAnuncia en Cuxial Chat las sanciones puestas y cumplidas.
chat.resourcestring'cuxial_chat'Nombre del recurso de chat.
chat.channelstring'sancion'id del canal de Cuxial Chat para los avisos.
chat.colorstring'#f59e0b'Color de la etiqueta del mensaje.
logs.enabledbooleantrueEnvía registros a Discord cuando la convar del webhook está puesta.
logs.convarstring'cuxial_cmservices_webhook'Nombre de la convar con la URL del webhook.

Zona de trabajo y tareas · data/tasks.lua ​

Zona · zone ​

CampoTipoQué hace
entryvector3Dónde aparece el jugador al empezar la sanción, y adonde vuelve si sale.
pointsvector3[]Esquinas del polígono que rodea la zona de trabajo, en orden. Al menos tres.
thicknessnumberAltura del polígono en metros.

Deja entry y todas las tareas dentro del polígono.

Categorías · types ​

Las cinco categorías son fijas: construction, gardening, cleaning, maintenance y repairs. Cada una tiene un color de blip y ruta (id de color de GTA) y un icon para el panel en pantalla.

Tareas · zones ​

zones guarda una lista de tareas por categoría. Se elige una tarea al azar entre las categorías que tienen al menos una. Una categoría con la lista vacía se salta.

data/tasks.lua
lua
repairs = {
    {
        coords = vec3(1655.45, 2531.67, 44.38),
        name = 'zone_repairs_light_pole_a',
        object = { model = 2135655372, coords = vec3(1655.45, 2531.67, 44.38) },
        progress = {
            label = 'progress_repairing_light_pole',
            duration = 9000,
            anim = { dict = 'mini@repair', clip = 'fixing_a_ped' },
        },
    },
},
CampoTipoQué hace
coordsvector3Centro de la tarea. Lo usan el blip y la comprobación de distancia del servidor.
namestringClave de traducción del nombre de la tarea, que se ve en pantalla y en el aviso.
objecttableOpcional. model (hash) y coords del objeto del mundo que se resalta. El aviso se mide desde su borde.
progress.labelstringClave de traducción del texto de la barra de progreso.
progress.durationnumberDuración en milisegundos.
progress.animtableOpcional. dict, clip y flag (49 por defecto).
progress.proptableOpcional. Objeto en la mano: model, bone (60309 por defecto), pos y rot.
scenariostringOpcional. Escenario de GTA que se reproduce en lugar de anim.

Usa la misma posición en coords y en object.coords. La forma más rápida de obtener las dos es /taskcoords, que copia una tarea completa lista para pegar (consulta Comandos y permisos).

Añade las claves de name y progress.label a locales/en.json y locales/es.json:

locales/es.json
json
"zone_repairs_light_pole_a": "Reparaciones - Farola A",
"progress_repairing_light_pole": "Reparando farola..."

Celdas · data/jail.lua ​

cells es una lista de posiciones. A cada sancionado le toca una al azar.

data/jail.lua
lua
return {
    cells = {
        vec3(1685.75, 2443.50, 45.84),
        vec3(1678.60, 2443.34, 45.84),
    },
}

Cambios habituales ​

Mover la zona de comunitarias ​

  1. Usa /taskcoords y copia la posición del suelo de cada esquina de la zona nueva.
  2. Sustituye zone.points y zone.entry en data/tasks.lua.
  3. Pon comserv.zoneDebug = true, reinicia y recorre las paredes. Vuelve a ponerlo en false cuando el polígono esté bien.

Acortar la cárcel ​

Baja jail.tick. Con 30, cada minuto de la sanción se cumple en 30 segundos.

Usar el grupo de tu staff ​

Pon en admin.permission el permiso del bridge de tu staff y en restricted de cada comando su grupo ACE.

© Cuxial