SCRIPT

Documentación de Wall de supervisión de staff

OV Wall

Herramienta de supervisión para el equipo de staff: etiquetas sobre los jugadores, lista de conectados, teletransporte, rastreo, acciones rápidas y detección de jugadores nuevos, más un sistema de reportes de jugadores.

Que hace

Wall de staff (/wall). Al activarlo, el administrador ve sobre cada jugador una etiqueta con la información que haya elegido mostrar: ID de ciudadano, nombre del personaje, ID de servidor, distancia, barras de vida y chaleco, trabajo y grado (indica si está de servicio o es jefe), banda y rango, insignias de VIP y de staff, si conduce o va de acompañante y si está hablando por voz. El alcance se puede ajustar hasta 474 metros. Los datos solo se envían a los administradores con permiso.

Menú de acciones sobre un jugador o vehículo. Según los permisos del grupo del administrador: consultar el identificador de Discord, dar chaleco, revivir (cura completa), congelar, teletransportarse hasta el jugador o traerlo. Sobre vehículos: consultar el dueño, reparar o eliminar.

Herramientas propias del administrador. Teletransporte a una marca del mapa o a coordenadas, eliminación de vehículo(s) y aislamiento de un grupo cercano en una dimensión aparte (/wallzone).

Lista de jugadores (/wallplayers). Todos los conectados ordenados por cercanía, con opción de ir hasta ellos o traerlos aunque estén lejos.

Rastreo (/rastrear). Marca hasta 5 jugadores en el mapa del administrador (solo lo ve quien lo activa).

Jugadores nuevos. Una etiqueta "NUEVO" sobre los jugadores recientes y, con /nuevos, círculos en el mapa del staff sobre cada uno. Un jugador deja de ser nuevo cuando pasan las horas configuradas desde que creó su personaje o cuando consigue un trabajo o una banda.

Reportes (/reportar). Cualquier jugador puede reportar a otro apuntándole con la mira: se abre un formulario, se guarda un ticket en base de datos y, si hay webhook configurado, se avisa por Discord. Si el reportante o el reportado son jugadores nuevos, se marca en el reporte.

Información de jugador ("ojito"). Manteniendo una tecla y mirando a un jugador a menos de 5 metros se muestra su nombre, ID de ciudadano e ID de servidor.

Auditoría. Activar el wall, las acciones sobre jugadores y vehículos, los rastreos y los cambios de acceso pueden registrarse en un webhook de Discord.

Requisitos

Dependencias declaradas en el fxmanifest.lua: el archivo no declara dependencies, pero carga en el servidor, antes que el propio código, el script bcast_hook.lua de un recurso de métricas (@<recurso-de-métricas>/bcast_hook.lua). Ese recurso debe existir e iniciarse antes que ov-wall.

Otros recursos y datos que el código usa:

Importante: este recurso está pensado para funcionar integrado con el panel de administración de Otra Vida. Antes de instalarlo en un servidor distinto, comprueba los puntos anteriores.

Instalacion

  1. Descarga el recurso desde el Portal de Cfx.re con la cuenta Cfx con la que lo compraste. Viene protegido con Asset Escrow de Cfx.re y funciona solo en servidores de tu cuenta.
  2. Copia la carpeta ov-wall en resources.
  3. Importa en tu base de datos el archivo reportes.sql incluido: crea las tablas de tickets de reportes, mensajes, estadísticas, notificaciones y acciones de staff. Estas tablas no se crean solas.
  4. Asegúrate de que existen las tablas de grupos de administración y de que tus administradores pertenecen a un grupo (ver "Requisitos").
  5. Añade en server.cfg, después de qb-core, oxmysql y del recurso de métricas:
   ensure ov-wall
  1. Convars opcionales para los avisos a Discord (el código las lee con GetConvar; nunca van dentro del código):
   set ov_wall_webhook "<url del webhook>"
   set ov_report_webhook "<url del webhook de reportes>"
   set ov_admin_log_webhook "<url de respaldo>"

ov_wall_webhook recibe la auditoría de staff; ov_report_webhook los reportes; si falta alguna, se usa ov_admin_log_webhook. Si ninguna está definida, no se envía nada a Discord.

  1. Permiso de emergencia: add_ace group.admin qbcore.god allow (o el principal que uses) da acceso al wall aunque falle la base de datos.
  2. Reinicia el servidor.

Protección y edición: según el fxmanifest.lua, solo la carpeta html/ (interfaz) queda sin cifrar (escrow_ignore). Este recurso no incluye un archivo de configuración editable: los ajustes se cambian desde el panel de administración o con los comandos descritos más abajo.

Configuracion

El recurso no tiene config.lua. Sus ajustes son:

Ajustes del servidor (valores por defecto; se editan desde el panel de administración cuando el módulo de "bridges" está disponible):

AjusteValor por defectoPara qué sirve
newHours12Horas que dura la etiqueta NUEVO desde la creación del personaje (entre 1 y 720).
newDropOnJobtrueDeja de ser NUEVO al tener trabajo (distinto de unemployed) o banda (distinta de none).
newSweepMinutes5Cada cuánto se revisa quién ya dejó de ser nuevo.
newBlipsTickMs2000Refresco de los círculos de /nuevos.
reportsEnabledtruePermite /reportar.
allowedGroupsowner, adminGrupos de administración que pueden abrir el wall.
trackTickMs1500Refresco del rastreo en el mapa.

Ajustes visuales de cada administrador (/wallconfig, se guardan en su propio cliente): mostrar u ocultar ID de ciudadano (activo), nombre (activo), ID de servidor (inactivo), distancia (activo), vida y chaleco (activo), trabajo (activo), banda (activo), VIP (activo), staff (activo), vehículo (activo), voz (activo), silueta (activo) y alcance en metros (range, 300 por defecto, entre 50 y 474).

Convars: ov_wall_webhook, ov_report_webhook y ov_admin_log_webhook (ver "Instalación").

Comandos y permisos

ComandoQuiénQué hace
/wallGrupos con acceso al wallActiva o desactiva el wall.
/wallplayersStaff con accesoLista de todos los conectados.
/wallconfigStaff con accesoPanel de qué información muestran las etiquetas.
/tpto [id]Permiso player.teleportTe lleva hasta ese jugador.
/traer [id]Permiso player.teleportTrae al jugador hasta ti.
`/wallzone [metros\off]`Permiso player.routing_bucketMueve a los jugadores cercanos a una dimensión propia; off revierte.
/dv [metros]Permiso self.delete_vehicleElimina el vehículo que ocupas o el más cercano; con metros, todos en ese radio.
`/rastrear [id\off]`Permiso player.monitoringMarca a un jugador en tu mapa (máximo 5); off los quita.
/nuevosStaff con accesoActiva los círculos de jugadores nuevos en el mapa.
/wallaccesosSolo el grupo propietarioElige qué grupos pueden usar el wall.
/walldebugJugador (en juego)Muestra en la consola qué rango detecta el servidor y qué acciones tiene concedidas.
/reportarCualquier jugadorReporta al jugador al que apuntas (a menos de 15 m).
Tecla Teclado numérico \* (reasignable) "Mostrar info de jugador (ojito)"Cualquier jugadorMantenla mirando a un jugador a menos de 5 m para ver su nombre, ID de ciudadano e ID de servidor.

Claves de permiso de los grupos de administración:

ClaveHabilita
wall.useAbrir el wall.
player.view_identifiersConsultar el identificador de Discord.
player.give_armorDar chaleco.
player.reviveRevivir.
player.freezeCongelar.
player.teleportIr hasta un jugador y traerlo.
player.monitoringRastrear en el mapa.
player.routing_bucket/wallzone.
vehicles_database.view_ownersConsultar el dueño de un vehículo.
vehicles.repairReparar vehículos.
vehicles.removeEliminar vehículos.
self.teleportTeletransporte propio a una marca o coordenadas.
self.delete_vehicleEliminar vehículos con /dv.

Los permisos ACE de emergencia qbcore.god y group.god conceden todo.

El recurso no ofrece exports. Los eventos son internos (ovwall:*).

Como se usa

  1. Un administrador con acceso escribe /wall. Ve las etiquetas sobre los jugadores; con la mira en un jugador se abre un menú de acciones (según sus permisos) y los botones que no puede usar no aparecen.
  2. Con /wallplayers abre la lista completa para ir hasta alguien o traerlo.
  3. Con /wallconfig elige qué datos muestran las etiquetas y el alcance.
  4. Con /nuevos ve en el mapa dónde están los jugadores nuevos para ayudarles.
  5. Un jugador que ve una infracción apunta al otro con la mira, escribe /reportar, rellena el formulario (motivo y, opcionalmente, un enlace a un clip) y lo envía.

Para administradores

Preguntas frecuentes

¿Funciona en un servidor QBCore normal? Está pensado para integrarse con el panel de administración de Otra Vida. Necesita el recurso de métricas que carga el fxmanifest.lua y las tablas de grupos de administración (ver "Requisitos").

¿Dónde veo por qué un administrador no puede usar el wall? Con /walldebug y la consola del servidor: aparece "DENEGADO" con su rango.

¿Puedo cambiar el tiempo que un jugador es "NUEVO"? Sí: newHours (12 horas por defecto).

¿Se envían datos a Discord sin configurar nada? No. Sin las convars de webhook no se envía nada.

¿Cada administrador ve lo mismo? Los ajustes visuales de /wallconfig se guardan en el cliente de cada administrador.

¿Los reportes se crean solos en la base de datos? No: debes importar reportes.sql.

Actualizaciones y soporte

Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Para soporte, usa el Discord de la tienda: [enlace de soporte].