THE ORB
Démarrage du studio

Problèmes de routing bucket

Les joueurs ou les objets sont dans des copies distinctes du monde et ne se voient donc pas.

groupsLes joueurs ne se voient pascodeIl faut un développeur

Faites d'abord ceci

En général un script de métier, d'appartement ou de mini-jeu qui a mis quelqu'un dans une instance sans l'en sortir.

bug_reportCollez plutôt toute votre console

Ce que ça veut dire

Les routing buckets sont des instances séparées du monde. Un joueur dans le bucket 1 ne peut pas voir les entités du bucket 0, et inversement. Cela produit rarement une ligne d'erreur ; le symptôme, ce sont des entités qui « n'apparaissent pas », des joueurs invisibles les uns pour les autres, ou un véhicule qui existe sur le serveur et pas sur le client.

Ce qui la provoque

Classé par fréquence : la cause la plus probable en premier.

  1. 1

    L'entité a été créée dans un bucket différent de celui du joueur

    Les entités créées côté serveur atterrissent dans le bucket 0 sauf indication contraire. Un joueur déplacé dans un bucket pour un métier ou un appartement instancié ne peut pas les voir.

  2. 2

    Le joueur a été déplacé et jamais ramené

    Un plantage, une déconnexion en pleine instance, ou un chemin de script qui règle le bucket sans réinitialisation. Le joueur reste dans un monde vide après réapparition.

  3. 3

    Deux scripts qui gèrent tous deux les buckets

    Un script d'appartements et un script de mini-jeux attribuant tous deux des numéros de bucket, sans registre commun, finissent par se télescoper.

  4. 4

    Le mode de verrouillage d'entités

    SetRoutingBucketEntityLockdownMode en strict empêche purement les clients de créer des entités dans ce bucket, ce qui casse l'apparition côté client à l'intérieur.

Comment savoir laquelle est la vôtre

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

Des numéros différents, et voilà tout le diagnostic.

Où regarder

Chaque appel à SetPlayerRoutingBucket et SetEntityRoutingBucket, et si chacun a sa réinitialisation.

Comment la corriger

Mettez les entités dans le bucket du joueur, et réinitialisez toujours à la sortie :

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)

Toujours bloqué sur votre propre code ?

Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.

bug_reportOuvrir le Server Fixer

Pour ce type d'erreur, le Scanner de sécurité signale la gestion d'événements qui mène ici.

Les erreurs qui voyagent avec celle-ci