Antes de empezar#
Antes de instalar Water War, asegúrate de que tu servidor cumple los requisitos mínimos. Todo lo de esta lista es obligatorio salvo el HUD.
Requisito | Estado | Notas |
|---|---|---|
OneSync | Obligatorio | Los impactos se leen de los eventos de daño de armas del servidor, que solo existen con OneSync. |
oxmysql | Obligatorio | Guarda las arenas. |
ox_lib | Obligatorio | Zonas de arena, callbacks y funciones auxiliares compartidas. |
Framework | Obligatorio | ESX, QBCore o Qbox — se detecta al arrancar. |
watergun | Obligatorio | El arma add-on, |
qs-interface | Opcional | El HUD se oculta mientras el creador está abierto. |
El framework se elige mirando lo que ya está en marcha, y cada uno tiene su propio pequeño puente:
Recurso en marcha | Puente usado |
|---|---|
|
|
|
|
|
|
Descargar Water War#
Después de comprar Water War, el recurso se vincula automáticamente a tu cuenta de CFX Portal.
Inicia sesión en el CFX Portal con la misma cuenta que usaste al pagar, abre Granted Assets y descarga Water War.
Después de extraer la descarga, deberías tener dos carpetas:
[waterwar]/
├── qs-waterwar/ -- the script
│ ├── config/ -- what you may edit
│ ├── custom/ -- framework bridges, notifications, the HUD
│ ├── database/ -- the SQL to import
│ ├── locales/ -- the translations
│ └── web/ -- the interface, ready to use
└── watergun/ -- the add-on water gunMantén los nombres de ambas carpetas tal como están:
qs-waterwarywatergun. La interfaz carga sus imágenes desdenui://qs-waterwar/, y solo se cuentan los impactos deWEAPON_WATERGUN— el arma que añade el recurso watergun.
Instalar el recurso#
Mueve ambas carpetas al directorio de recursos de tu servidor. Pueden estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [waterwar]/
├── watergun/
└── qs-waterwar/Una vez copiadas, abre tu server.cfg y asegúrate de que todas las dependencias arrancan antes que Water War:
ensure oxmysql
ensure ox_lib
# Framework — one of these
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Optional
# ensure qs-interface
ensure watergun
ensure qs-waterwarEl orden de carga importa. El framework solo se detecta si ya ha arrancado, así que un framework que arranca después de Water War no se encuentra y el recurso se niega a arrancar.
OneSync debe estar activado. La mayoría de los servidores ya lo usan; si el tuyo no, actívalo en los ajustes de FXServer de txAdmin o arranca el servidor con +set onesync on.
La base de datos#
Water War guarda todas las arenas en una sola tabla, y esa tabla no se crea sola. Importa qs-waterwar/database/database.sql una vez en la base de datos a la que se conecta oxmysql, con HeidiSQL, phpMyAdmin, DBeaver o la herramienta que ya uses:
CREATE TABLE IF NOT EXISTS `waterwar_arenas` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(100) NOT NULL,
`duration` INT NOT NULL DEFAULT 180,
`min_players` INT NOT NULL DEFAULT 2,
`max_players` INT NOT NULL DEFAULT 16,
`points` JSON NOT NULL,
`spawn_points` JSON DEFAULT NULL,
`rewards` JSON DEFAULT NULL,
`blip` JSON DEFAULT NULL,
`creator` VARCHAR(50) DEFAULT NULL,
`created_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
`updated_at` TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
INDEX `creator` (`creator`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;Columnas | Contienen |
|---|---|
name · duration · max_players | El nombre de la arena, la duración de la ronda en segundos y su límite de jugadores. |
points | El contorno y la altura de la arena, exactamente como se dibujaron en el creador. |
rewards | Dinero e ítems para el primer, segundo y tercer puesto. |
blip | El blip del mapa: etiqueta, sprite, color, escala y posición. |
creator · created_at · updated_at | Quién la dibujó, y cuándo se creó y se modificó por última vez. |
Sin la tabla no se puede guardar nada: el creador se abre, pero cada arena nueva falla con An error occurred y la consola del servidor nombra la tabla que falta.
Obtener acceso de admin#
El creador es donde se dibujan, cambian y borran las arenas, así que está protegido por una comprobación de permisos en el servidor. Basta con cualquiera de estas tres vías:
La vía habitual. Con Config.UseAcePermissions = true — el valor por defecto — entra cualquier jugador o grupo que tenga el ace waterwar.creator. Añádelo a server.cfg:
# the whole admin group
add_ace group.admin waterwar.creator allow
# or one player
add_ace identifier.license:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx waterwar.creator allowEl nombre del ace es Config.AcePermission si prefieres usar uno que tu staff ya tenga.
Entran los jugadores cuyo trabajo y rango aparecen en Config.CreatorJobs. La clave es el nombre del trabajo y el valor, el rango mínimo permitido:
Config.CreatorJobs = {
['events'] = 0, -- everybody in the events job
['police'] = 4, -- police from grade 4 up
}Las entradas incluidas, admin y superadmin, son nombres de trabajo — sustitúyelas por el trabajo de tu staff, o déjalas si no existe ese trabajo.
Automático, no hay nada que configurar. En ESX, los grupos admin y superadmin. En QBCore y Qbox, los permisos admin y god, y cualquiera que tenga permitido el ace command.
Los jugadores sin acceso que escriben el comando ven You don't have permission for this action, y el servidor rechaza cualquier guardado, edición o borrado que envíen — la comprobación no está solo en la ventana.
Configurar el recurso#
Las arenas — su forma, duración, límite, recompensas y blip — se editan en el juego. El comportamiento que afecta a todo el servidor está en config/main.lua, con una sección por tema:
Sección | Contenido |
|---|---|
Language Selection | El idioma y la salida de debug. |
Creator Settings | El comando del creador, el tamaño mínimo de una arena y quién puede usar el creador. |
Arena Settings | Valores por defecto para las arenas nuevas, la pistola de agua y su munición. |
Water Jet Effect | Las partículas del chorro, su tamaño, su posición y el comando de ajuste. |
Battle Settings | Puntos por impacto, guardar y devolver las armas, y los muros de la arena. |
Rewards Configuration | Recompensas por defecto para las arenas nuevas y la cuenta de dinero en la que se pagan. |
Blip Settings | El blip por defecto para las arenas nuevas. |
UI Settings | Cómo se escribe el dinero en pantalla. |
Editor Controls · Camera Options | Las teclas y la velocidad de la cámara libre que se usa para dibujar arenas. |
Los valores que conviene revisar primero:
Config.Locale = 'en' -- en · tr
Config.Debug = false -- ships as true: turn it off on a live server
Config.CreatorCommand = 'waterwarcreator' -- opens the creator
Config.MoneyType = 'money' -- 'money' · 'bank' · 'black_money' (ESX only)
Config.Intl = { -- ships as Turkish lira
locales = 'en-US',
options = { style = 'currency', currency = 'USD', minimumFractionDigits = 0 }
}
Config.Debugviene activado. Muestra cada paso en la consola y dibuja la zona de cada arena en el mundo para todos los jugadores — desactívalo antes de que entren tus jugadores. Los cambios enconfig/main.luase aplican después de reiniciarqs-waterwar.
Verificar la instalación#
Después de completar la instalación, reinicia tu servidor y lee la consola. Un arranque correcto se ve así:
[WATERWAR] Successfully loaded the framework: esx
WATERWAR INFO: ArenaManager server module initialized
WATERWAR INFO: Battle module initialized
WATERWAR INFO: Creator module initialized
[WATERWAR] Server initialized
WATERWAR INFO: RecordManager initialized with arena typeLa primera línea nombra el puente en uso — esx o qb. Después entra en tu servidor y sigue este primer recorrido:
Abre el creador
/waterwarcreatorabre el Water War Creator. Una lista vacía en un servidor nuevo es lo correcto.Dibuja una arena
Pulsa Create Arena, ponle nombre, pulsa Select en Area Points y haz clic en al menos cuatro esquinas alrededor de un espacio abierto; después pulsa Enter. Elige la posición del blip dentro del contorno y guarda. Uso explica cada campo.
Entra
Cruza el contorno. Tus armas se guardan, tienes la pistola de agua en las manos, unos muros cian marcan el borde y aparece la tarjeta de batalla con el reloj en marcha. Trae a un segundo jugador para puntuar.
A partir de aquí nada necesita reiniciar. Cada arena se crea, se cambia y se elimina en el juego, y todos los jugadores conectados ven el cambio al instante.



