Documentación de Socio: companero guardaespaldas
Otra Vida Socio (ov_socio)
Que hace
ov_socio da a cada jugador un companero controlado por el servidor: un guardaespaldas y sicario que lo sigue, lo protege y pelea por el. Usa el mismo modelo de personaje que los jugadores (mp_m_freemode_01 o mp_f_freemode_01), con su propio rostro, pelo, ropa y forma de caminar, que el jugador edita en un estudio con camara.
Lo mas importante:
- Cinco humores (Sicario, Protector, Tranquilo, Alerta, Discreto) que definen postura, distancia, velocidad y frases.
- Progresion en 5 niveles por tiempo, bajas, defensa y cuidados, con topes anti-abuso por hora.
- Siete habilidades que se desbloquean por nivel: Proteccion, Cuidado, Alerta de peligro, Cobertura, Vigilante, Escudo y Ejecutor.
- Ordenes por comandos y teclas: seguir o esperar, ven aqui, atacar objetivo y marcar objetivo.
- Estudio de apariencia con camara, luces, hasta 8 conjuntos de ropa guardados y 14 estilos de caminado.
- Socio y socia por jugador, cada uno con su propia apariencia guardada.
- Contrato de sicario contra otro jugador, con precio, espera y aviso a la victima.
- Navegacion propia: si el seguimiento nativo falla, usa mapas de navegacion, sigue el rastro del jugador o se reubica fuera de su vista.
- Control de acceso: cerrado por defecto; lo conceden el staff o un sistema de compras mediante un export.
Requisitos
| Requisito | Detalle |
|---|---|
| Framework | qb-core |
| Dependencias declaradas en el fxmanifest | ox_lib, oxmysql, qb-core |
ox_inventory | Lo usa el servidor para gastar la venda de las habilidades de cuidado y de revivir. Debe existir el item configurado en Config.Acceso.ItemRevivir y Config.Habilidades.cuidado.item (por defecto bandage) |
illenium-appearance | Solo para el comando /sociolook (copiar tu apariencia al socio). El resto funciona sin el |
| Lua | 5.4 (lua54 'yes') |
| Base de datos | MySQL o MariaDB, mediante oxmysql |
Instalacion
- Descarga el recurso desde el Portal de Cfx.re (seccion de assets comprados) con la cuenta Cfx.re con la que hiciste la compra. El recurso viene protegido con Asset Escrow de Cfx.re: solo funciona en servidores cuya clave de licencia pertenece a tu cuenta.
- Copia la carpeta
ov_sociodentro deresources. - Agrega en
server.cfg, despues deox_lib,oxmysql,qb-coreyox_inventory:
ensure ov_socio
- Decide quien puede usarlo. Por defecto el acceso esta cerrado (
Config.Acceso.Todos = false): pueden usar/sociolos jugadores con los permisos de qb-coregod,adminomod, y quien reciba el acceso con/darsocio. Para abrirlo a todos, ponConfig.Acceso.Todos = trueenconfig.lua. - Inicia el servidor. No hay archivo .sql: al arrancar se crean solas las tablas
ov_socio_acceso,ov_socio_slots,ov_socio_estadoyov_socio_conjuntos(CREATE TABLE IF NOT EXISTS).
El recurso no usa permisos ACE propios ni lee convars de server.cfg. Los permisos de staff se comprueban con QBCore.Functions.HasPermission.
Archivos editables: en el fxmanifest.lua, escrow_ignore deja sin cifrar config.lua y la carpeta html/ (interfaz). Los demas archivos, incluido looks.lua (los aspectos iniciales), no estan en escrow_ignore, asi que van cifrados por Asset Escrow.
Configuracion
Todo esta en config.lua. Opciones principales:
| Clave | Valor por defecto | Para que sirve |
|---|---|---|
Config.Comando | 'socio' | Comando del panel |
Config.ComandoSicario | 'sicario' | Comando del contrato |
Config.ComandoDar | 'darsocio' | Comando de staff para dar o quitar el acceso |
Config.ComandoNivel | 'socionivel' | Comando de staff para fijar el nivel |
Config.ComandoLook | 'sociolook' | Comando para copiar tu apariencia al socio |
Config.Acceso.Todos | false | Si es true, cualquier jugador puede usar el socio |
Config.Acceso.Permisos | { 'god', 'admin', 'mod' } | Permisos de qb-core que cuentan como staff |
Config.Acceso.ItemRevivir | 'bandage' | Item que gasta revivir al socio |
Config.Blip | sprite = 480, color = 2, scale = 0.85, nombre = 'Socio' | Marca del socio en el mapa |
Config.Combate | saludBase = 300, chalecoBase = 100, punteria = 70, municion = 250, radioDefensa = 40.0, arma WEAPON_COMBATPISTOL | Parametros de combate |
Config.Sicario | Habilitado = true, Precio = 250000, Cuenta = 'bank', EsperaHoras = 6, AvisarObjetivo = true, VuelveTras = 180000, DistanciaAproximacion = 70.0 | Contrato de sicario |
Config.Humores | 5 humores | Postura, distancia, velocidad, rango, caminado y frases de cada uno |
Config.HumorInicial | 'protector' | Humor al crear el socio |
Config.Progreso | Niveles = { 0, 100, 300, 700, 1500 }, XpPorMinuto = 1, XpPorBaja = 10, XpPorDefensa = 5, XpPorCuidado = 8, TopeEventosPorHora = 120 | Niveles y XP |
Config.Habilidades | 7 habilidades | Nivel requerido y parametros de cada una (umbral de cura, radio, salud del Ejecutor, etc.) |
Config.Seguimiento | PasoRastro = 1.5, LargoRastro = 40, AtascoMs = 3500, TeletransporteDist = 60.0, EsperaTeletransporteMs = 6000, ReintentosAntes = 2 | Comportamiento al seguir y al atascarse |
Config.Nav | una zona de ejemplo y MaxIteraciones = 30000 | Mapas de navegacion (archivos nav/*.json) |
Config.Estudio | camaras, luces, MaxConjuntos = 8 | Ajustes del estudio de apariencia |
Config.Caminados | 14 estilos | Formas de caminar |
Config.Emotes | 9 emotes | Saludar, bailar, sentarse, fumar, brazos cruzados, aplaudir, senalar, facepalm y guardia |
Config.AparienciaPorDefecto | f y m | Apariencia inicial cuando no se elige ninguna |
La unica zona de navegacion incluida (Config.Nav.Zonas) corresponde a un interior concreto del mapa base. En el resto del mapa se usa la navegacion nativa del juego. Se pueden agregar mas zonas con archivos .json propios; consulta el archivo de configuracion.
Comandos y permisos
| Comando | Quien | Accion |
|---|---|---|
/socio | Con acceso | Abre el panel: invocar, guardar, ordenar, vehiculo, arma, humor, habilidades, emotes y estudio |
/socioseguir | Con acceso | Alterna entre seguir y esperar |
/sociovenir | Con acceso | "Ven aqui" |
/socioatacar | Con acceso | Ataca tu objetivo |
/sociomarcar | Con acceso | Marca o quita la marca del objetivo al que apuntas (requiere la habilidad Ejecutor) |
/sicario <id> | Con acceso | Contrata un sicario contra otro jugador |
/sociolook [id] | Con acceso | Copia tu apariencia actual al socio. El staff puede indicar el ID de otro jugador |
/darsocio [id] [quitar] | Staff | Concede o retira el acceso (sin id: a ti mismo) |
/socionivel <id> <nivel> | Staff | Fija el nivel del socio (1 a 5) |
Las teclas /socioatacar, /socioseguir, /sociovenir y /sociomarcar se registran con RegisterKeyMapping sin tecla por defecto: cada jugador las asigna en Ajustes, Teclas, FiveM.
Exports del servidor
| Export | Uso |
|---|---|
ActivarCompra(src, sexo, aspecto) | Concede el acceso y deja el aspecto inicial elegido (sexo = 'm' o 'f', aspecto = numero del 1 al 4 de looks.lua). Pensado para una tienda o sistema de compras. Devuelve true si funciono |
TieneSocio(src) | true si el jugador tiene un socio activo ahora mismo |
Evento del servidor: ovsocio:conceder (con el ID del jugador y true o false) concede o retira el acceso.
Exports del cliente: GetSocio (ped del socio o nil), GetSexo, TomarSocio (lo pone en espera) y SoltarSocio (lo devuelve a seguir).
-- Servidor: conceder el socio tras una compra
exports.ov_socio:ActivarCompra(source, 'm', 2)
Como se usa
- Escribe
/socio. La primera vez eliges si tu socio es hombre o mujer. - Invocalo desde el panel. Para guardarlo, usa la misma opcion.
- Dale ordenes con los comandos o las teclas que hayas asignado.
- Elige su humor y activa o desactiva sus habilidades segun el nivel.
- Abre el estudio para cambiar rostro, pelo, ropa y forma de caminar. Puedes guardar hasta 8 conjuntos.
- Para revivirlo o curarlo necesitas el item configurado (por defecto, una venda).
- Con
/sicario <id>mandas a tu socio contra otro jugador: cuesta lo configurado, se cobra de la cuenta definida, hay un tiempo de espera entre contratos y la victima recibe un aviso. El socio se acerca desde lejos y, pasado un tiempo, vuelve contigo.
El socio gana XP con el tiempo y al ayudarte; cada nivel desbloquea habilidades segun Config.Habilidades.
Para administradores
- Decide el modelo de acceso:
Config.Acceso.Todos = truepara abrirlo a todos, o dejarlo cerrado y conceder con/darsocio <id>. Para retirar,/darsocio <id> quitar. - Con
/socionivel <id> <1-5>ajustas el nivel de un jugador (por ejemplo para pruebas). - Si vendes el socio en tu tienda, llama al export
ActivarCompradesde tu script de compras. - Puedes desactivar el contrato de sicario con
Config.Sicario.Habilitado = false, o cambiar su precio, cuenta y espera. - Ajusta combate, humores y habilidades en
config.luay reinicia el recurso. - Los datos estan en las tablas
ov_socio_acceso(permiso y ultimo contrato),ov_socio_slots(apariencia por sexo),ov_socio_estado(humor, XP, ajustes) yov_socio_conjuntos(conjuntos de ropa), asociadas alcitizenid.
Preguntas frecuentes
Escribo /socio y no pasa nada. El jugador no tiene acceso. Usa /darsocio o activa Config.Acceso.Todos.
Necesito illenium-appearance? Solo para /sociolook. El estudio del propio socio no lo necesita.
El socio se atasca en interiores. Fuera de las zonas con mapa de navegacion usa la navegacion nativa del juego, y si se atasca sigue el rastro o se reubica. Puedes agregar mapas .json propios en Config.Nav.Zonas.
Como cambio el precio del sicario? En Config.Sicario.Precio y Config.Sicario.Cuenta.
Donde cambio las frases o el comportamiento de cada humor? En Config.Humores.
Donde veo los errores? En la consola del servidor y en F8.
Actualizaciones y soporte
Las versiones nuevas aparecen en el Portal de Cfx.re (en tus recursos comprados) y en la tienda. Descargalas con la misma cuenta Cfx.re de la compra y reemplaza la carpeta, conservando tus cambios en config.lua. Para soporte, abre un ticket en el Discord de la tienda: [enlace de soporte]. Indica la version del recurso, el error de consola y los pasos para reproducirlo.
