THE ORB
Arrancando el studio

Problemas de routing bucket

Los jugadores o los objetos están en copias distintas del mundo, así que no se ven entre sí.

groupsLos jugadores no se ven entre sícodeNecesita un desarrollador

Haz esto primero

Normalmente un script de trabajo, apartamento o minijuego que metió a alguien en una instancia y nunca lo sacó.

bug_reportMejor pega tu consola entera

Qué significa

Los routing buckets son instancias separadas del mundo. Un jugador en el bucket 1 no puede ver las entidades del bucket 0, y al revés. Esto rara vez produce una línea de error; el síntoma son entidades que «no aparecen», jugadores que son invisibles entre sí, o un vehículo que existe en el servidor y no en el cliente.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    La entidad se creó en un bucket distinto del jugador

    Las entidades creadas en el servidor caen en el bucket 0 salvo que se diga otra cosa. Un jugador movido a un bucket para un trabajo o un apartamento instanciado no las puede ver.

  2. 2

    Al jugador lo movieron y nunca lo volvieron a mover

    Una caída, una desconexión a mitad de la instancia, o un camino del script que pone el bucket y no tiene reinicio. El jugador se queda en un mundo vacío después de reaparecer.

  3. 3

    Dos scripts manejando buckets los dos

    Un script de apartamentos y uno de minijuegos asignando los dos números de bucket, sin un registro compartido, terminan chocando.

  4. 4

    El modo de bloqueo de entidades

    SetRoutingBucketEntityLockdownMode en strict impide directamente que los clientes creen entidades en ese bucket, y eso rompe la aparición del lado del cliente dentro de él.

Cómo saber cuál es el tuyo

-- servidor
print(GetPlayerRoutingBucket(src), GetEntityRoutingBucket(entity))

Números distintos son el diagnóstico entero.

Dónde mirar

Cada llamada a SetPlayerRoutingBucket y SetEntityRoutingBucket, y si cada una tiene su reinicio correspondiente.

Cómo arreglarlo

Poné las entidades en el bucket del jugador, y reiniciá siempre al salir:

local bucket = GetPlayerRoutingBucket(src)
local veh = CreateVehicle(model, coords.x, coords.y, coords.z, h, true, false)
SetEntityRoutingBucket(veh, bucket)

AddEventHandler('playerDropped', function()
    SetPlayerRoutingBucket(source, 0)
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 Fixer

Para este tipo de error, el Escáner de seguridad marca el manejo de eventos que lleva hasta acá.

Errores que viajan con este