l'index de la table est nil
Un script a tenté de ranger quelque chose sous un nom vide, en général un identifiant de joueur pas encore prêt.
Faites d'abord ceci
Cela arrive en général pendant qu'on se connecte. Regardez si cela se déclenche à la connexion.
Ce que ça veut dire
Quelque chose a été STOCKÉ dans une table sous une clé nil : t[k] = v où k est nil. Lire avec une clé nil est légal et renvoie nil ; écrire avec une clé nil est une erreur.
Ce qui la provoque
Classé par fréquence : la cause la plus probable en premier.
- 1
Une clé venue d'une recherche en échec
cache[GetPlayerIdentifier(src)] = dataoù l'identifiant est nil parce que le joueur n'est pas encore complètement connecté. - 2
Une variable de boucle utilisée au-delà de la fin
Stocker sous
items[i]alors queiest sorti de la liste. - 3
Un champ qui n'existe pas sur l'objet
byJob[player.job.name] = xoù le métier n'a pas de nom. - 4
Une clé numérique devenue NaN
Diviser par zéro ou un
tonumber()sur quelque chose d'illisible, puis l'utiliser comme index. Cela donne « table index is NaN ».
Comment savoir laquelle est la vôtre
Affichez la clé, pas la table :
print('clé =', tostring(laCle))La ligne est courte et la clé est en général une seule expression : cela l'identifie immédiatement.
Où regarder
L'affectation de la ligne nommée, précisément ce qui est entre les crochets.
Comment la corriger
Protégez la clé à l'endroit où elle est produite :
local id = GetPlayerIdentifier(src, 0) if not id then return end cache[id] = data
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 FixerPour ce type d'erreur, le Script Optimizer lit le script et répare le code derrière tout ça.