Desbordamiento de eventos de red fiables
Un script le mandó tanto a un jugador que su conexión no pudo seguir el ritmo, así que lo echaron.
Haz esto primero
Anota a qué jugadores les pasa y cuándo. Este necesita que alguien encuentre el script ruidoso.
Qué significa
Se encolaron para un cliente más eventos de los que el canal fiable puede aguantar. FiveM corta la conexión en vez de quedarse todavía más atrás, así que a los jugadores los echan sin un motivo visible.
El canal es por cliente, así que el jugador al que echan no es necesariamente el que está haciendo algo raro.
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
Un evento disparado en un bucle de tick
TriggerClientEventdentro de un hilo con un Wait corto, por jugador, es la causa de manual. - 2
Una difusión dentro de un bucle
TriggerClientEvent('x', -1, ...)dentro de cualquier cosa que se repita se multiplica por la cantidad de jugadores. - 3
Cargas muy grandes
Un inventario entero o un mapa de todos los jugadores, mandado a menudo. El tamaño llena el canal igual de bien que la cantidad.
- 4
Un bucle de realimentación entre cliente y servidor
El cliente dispara un evento del servidor, el servidor contesta con un evento de cliente, el cliente vuelve a contestar.
- 5
Un tramposo saturando un evento
Que además es un problema de seguridad: mirá el escáner de vulnerabilidades.
Cómo saber cuál es el tuyo
Contalos. Un contador por evento en el servidor durante un minuto deja al culpable a la vista enseguida:
local counts = {}
local realTrigger = TriggerClientEvent
-- envolver, contar, imprimir cada 60 sDónde mirar
Cada TriggerClientEvent dentro de un CreateThread, y cada difusión a -1.
Cómo arreglarlo
Mandá estado, no un chorro de eventos. Los state bags se replican una vez y sólo cuando cambian:
-- en vez de un TriggerClientEvent en cada tick
Entity(veh).state:set('fuel', level, true)Cuando haya que mandar eventos, poneles freno y agrupalos:
if GetGameTimer() - lastSend > 1000 then
lastSend = GetGameTimer()
TriggerClientEvent('myres:update', src, batchedPayload)
end¿Sigues atascado en tu propio código?
Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.
bug_reportAbrir el Server FixerPara este tipo de error, el Escáner de seguridad marca el manejo de eventos que lleva hasta acá.