EXOTICA NETWORKDocs

Inventario y sistemas de daño

Arma temporal, bloqueo de inventario e integración de bajas

Durante la partida se activa invBusy. ox_inventory puede impedir el uso de inventario y a la vez detectar un arma temporal como ajena a su registro.

Arma que parpadea o desaparece

La comprobación inventory:weaponmismatch puede retirar el arma temporal de la arena. El README propone:

server.cfg
setr inventory:weaponmismatch false

Este ajuste afecta la comprobación de armas del inventario en todo el servidor. Revísalo con tu configuración de ox_inventory y anticheat, aplícalo antes de iniciar el inventario y reinicia el servidor completo para probar. Si necesitas conservar esa comprobación fuera de arenas, desarrolla una integración específica que permita el arma temporal solo durante la partida. keepWeaponInHand puede reentregar el arma, pero no corrige por sí solo una incompatibilidad.

Daño aplicado por otro recurso

Si tu sistema cancela el evento de daño y aplica salud directamente, el feed puede perder el atacante. Tras validar y aplicar un golpe en tu servidor, informa a arenas:

if GetResourceState('en-arenas') == 'started'
    and exports['en-arenas']:IsPlayerInActiveMatch(victim) then
    exports['en-arenas']:ReportDamage(victim, attacker, amount, headshot)
    if lethal then
        exports['en-arenas']:ReportKill(victim, attacker)
    end
end

victim y attacker son IDs de servidor; amount es numérico, headshot y lethal booleanos obtenidos por tu sistema. No crees un evento público que permita al cliente informar bajas arbitrarias a ese fragmento. Prueba una baja normal, un headshot y una asistencia para comprobar que no cuentas un mismo daño dos veces.

Otros scripts

Usa IsPlayerBusy para impedir actividades incompatibles mientras alguien está en sala, cola o partida. Usa IsPlayerInActiveMatch para acciones que solo corresponden a una ronda activa. El estado en-arenas:inMatch incluye transiciones; no lo confundas con que la ronda esté contando tiempo.

En esta página