Antes de empezar#
Antes de instalar Dog Walker Job, asegúrate de que tu servidor cumple los requisitos mínimos. Solo dos recursos son obligatorios; todo lo demás es opcional y solo se usa cuando está en marcha.
Requisito | Estado | Notas |
|---|---|---|
| Obligatorio | Acceso a la base de datos. Las tablas se crean en el primer inicio. |
| Obligatorio | Callbacks y el planificador que actualiza y reinicia la clasificación. |
Framework | Opcional |
|
Target | Opcional |
|
| Opcional | Dibuja los avisos flotantes cuando |
| Opcional | Solo para su sistema de misiones ( |
| Opcional | Cuando está en marcha, los pagos de los paseos pasan por él en lugar de por el efectivo del jugador. |
Descargar Dog Walker Job#
Tras comprar Dog Walker Job, el recurso se vincula automáticamente a tu cuenta de CFX Portal.
Inicia sesión en CFX Portal con la misma cuenta que usaste al finalizar la compra, abre Granted Assets y descarga Dog Walker Job. Con cualquier otra cuenta, el recurso no aparece.
Tras descomprimir la descarga, deberías tener la siguiente carpeta:
qs-dogwalker/
├── config/ -- config.lua and translations.lua: what you edit
├── client/framework/ -- ESX and QBCore bridges (editable)
├── server/framework/ -- ESX, QBCore and standalone bridges (editable)
├── client/target.lua -- ox_target / qb-target options (editable)
├── server/missions.lua -- qs-inventory quests (editable)
├── assets/dogs/ -- the pictures on the dog cards
├── web/build/ -- the interface, ready to use
└── qs-dog-walker.sql -- optional: the same schema the script creates itselfLa carpeta debe llamarse
qs-dogwalker. Todos los eventos de los que dependen la interfaz y el cliente llevan ese nombre, así que el script se niega a funcionar con cualquier otro: una copia renombrada imprime You have renamed the script! y luego congela el servidor a propósito.
Instalar el recurso#
Mueve la carpeta qs-dogwalker al directorio resources de tu servidor. Puede estar en cualquier lugar dentro de él, incluida una carpeta de categoría:
resources/
└── [qs]/
└── qs-dogwalker/Una vez copiada, abre tu server.cfg y asegúrate de que cada dependencia —y todo lo que debe detectar— se inicie antes que Dog Walker Job:
ensure oxmysql
ensure ox_lib
# Framework
ensure es_extended
# ensure qb-core
# ensure qbx_core
# Optional
ensure ox_target
# ensure qs-textui
# ensure qs-inventory
# ensure qs-job-management
ensure qs-dogwalkerEl orden de carga importa. El framework se detecta buscando un recurso que ya se ha iniciado, así que un framework que se inicia después de Dog Walker Job no se encuentra y el trabajo pasa a modo standalone: sin comprobación de trabajo y sin dinero.
La base de datos#
No hay ningún archivo SQL que importar. Dog Walker Job crea sus propias tablas en el primer inicio, y en cada inicio posterior las comprueba y añade lo que le falte a una instalación antigua.
Tabla | Contiene |
|---|---|
| Una fila por personaje: nivel, experiencia hacia el siguiente nivel, y la experiencia y las ganancias totales, de temporada y diarias según las que ordena la clasificación. |
| Una única fila de control que registra cuándo se reiniciaron por última vez las clasificaciones diaria y de temporada, para que un reinicio nunca pague una clasificación dos veces. |
| Recompensas de la clasificación guardadas para los ganadores que estaban desconectados en el reinicio. Se pagan y luego se borran la próxima vez que entran. |
| Los últimos tres primeros de cada clasificación, mostrados como Last winner en la vista Statistics. |
También ajusta la intercalación (collation) de sus columnas identifier a la de la tabla users o players de tu framework. En MariaDB 11.4 y posteriores ambas difieren de serie, y sin esto la clasificación falla con Illegal mix of collations.
Registrar el trabajo#
Con Config.RequireJob activado (por defecto), solo los jugadores con un trabajo indicado en Config.DogWalkerJob pueden pasear perros. El trabajo por defecto es dog_walker.
No hay nada que hacer. En el primer inicio, el trabajo se escribe en jobs con un rango 0 Novice en job_grades — para cada trabajo de Config.DogWalkerJob, y solo cuando todavía no existe.
Para preparar la base de datos a mano, importa qs-dog-walker.sql desde la carpeta del recurso. Cada sentencia es IF NOT EXISTS o INSERT IGNORE, así que es seguro ejecutarlo dos veces.
INSERT IGNORE INTO `jobs` (name, label) VALUES
('dog_walker','Dog Walker');
INSERT IGNORE INTO `job_grades` (job_name, grade, name, label, salary, skin_male, skin_female) VALUES
('dog_walker',0,'novice','Novice',10,'{}','{}');QBCore guarda sus trabajos en un archivo, no en la base de datos, así que añade el trabajo a qb-core/shared/jobs.lua:
['dog_walker'] = {
label = 'Dog Walker',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Novice', payment = 10 },
},
},Qbox también guarda sus trabajos en un archivo. Añade el trabajo a qbx_core/shared/jobs.lua:
['dog_walker'] = {
label = 'Dog Walker',
defaultDuty = true,
offDutyPay = false,
grades = {
[0] = { name = 'Novice', payment = 10 },
},
},¿Prefieres que cualquiera pueda pasear perros? Pon Config.RequireJob = false y sáltate este paso.
¿Actualizas desde una versión anterior? Sustituye toda la carpeta —la antigua carpeta
html/ya no existe— e inicia el servidor. Los niveles y la experiencia se conservan, y las columnas de clasificación que una tablaqs_dog_walkerantigua no tenía se añaden automáticamente.
Configurar el recurso#
Todo se configura en archivos que se dejan abiertos para que los edites:
Archivo | Contenido |
|---|---|
| Quién puede trabajar, cómo interactúan los jugadores, notificaciones, blips, los dueños y sus perros, las reglas del paseo, el cuidado del perro, pasear sin correa, la clasificación, los niveles, el marcador, la depuración y los webhooks de Discord. |
| El selector de idioma y cada línea de texto, en once idiomas. |
| Los puentes con ESX, QBCore y standalone: identificadores, trabajos, nombres y dinero. |
| Las opciones de ox_target y qb-target en dueños, perros y excrementos. |
| Las misiones de qs-inventory. |
Los valores que conviene revisar primero:
-- config/translations.lua
Config.Language = "en" -- en, es, it, fr, pt, de, ru, tr, nl, cn, zh-tw
-- config/config.lua
Config.RequireJob = true -- false lets anyone walk dogs
Config.DogWalkerJob = { -- jobs allowed to walk dogs
['dog_walker'] = true,
}
Config.Target = false -- true = third-eye targeting, false = press a key nearby
Config.TargetScript = "ox" -- "ox" or "qb"
Config.CurrencyPosition = "suffix" -- "prefix" → $500, "suffix" → 500 $
Config.Debug = false -- explains every step in both consoles
config/config.luaes la única fuente de verdad. El pago, la experiencia y el nivel requerido de un perro se leen de ahí en el servidor cuando se paga el paseo, así que editarlos ahí —y reiniciar el recurso— es todo lo que necesita un cambio.
Verificar la instalación#
Reinicia tu servidor y lee la consola. Una instalación limpia es silenciosa; estas son las líneas que puedes ver, y todas son buenas noticias:
[qs-dogwalker] Registered the ESX job "dog_walker" -- ESX, first start
[qs-dogwalker] Added missing column qs_dog_walker.total_experience -- updating an older install
[qs-dogwalker] aligned 4 identifier column(s) to utf8mb4_uca1400_ai_ci, matching users.identifierDespués entra en tu servidor y pasea a tu primer perro:
Consigue el trabajo
Dale a tu personaje el trabajo
dog_walker—/setjob <id> dog_walker 0en ESX y QBCore— o desactivaConfig.RequireJob. Los blips de los perros aparecen en cuanto tienes el trabajo.Encuentra a un dueño
Los dueños esperan en sus puertas por Mirror Park, cada uno con un blip y un marcador azul flotando sobre la cabeza. Acércate y pulsa
E— o usa el ojo de tu target si tienes uno.Pasea a Rocky
Rocky es un paseo de dos minutos en el nivel 1. Pulsa Start walk, sigue moviéndote hasta que el temporizador llegue a cero, vuelve con su dueño y pulsa Return dog. A partir de ahí, Uso explica todo lo que se puede hacer en un paseo.
¿Algo no funciona? Pon
Config.Debug = true: la consola del servidor y la consola F8 explican entonces lo que hace el script, incluido exactamente por qué terminó un paseo. Desactívalo de nuevo en un servidor en producción: imprime mucho.



