Tabellenindex ist nil
Ein Script wollte etwas unter einem leeren Namen ablegen — meist eine Spieler-ID, die noch nicht bereit war.
Mach das zuerst
Passiert meist, während sich jemand noch verbindet. Schau, ob es beim Joinen auftritt.
Was es bedeutet
Etwas wurde unter einem nil-Schlüssel in eine Tabelle GESCHRIEBEN: t[k] = v, wobei k nil ist. Mit einem nil-Schlüssel zu lesen ist erlaubt und ergibt nil; damit zu schreiben ist ein Fehler.
Was es auslöst
Sortiert danach, wie oft es die Antwort ist.
- 1
Ein Schlüssel aus einer gescheiterten Suche
cache[GetPlayerIdentifier(src)] = data, wobei die Kennung nil ist, weil der Spieler noch nicht vollständig verbunden ist. - 2
Eine Schleifenvariable über das Ende hinaus benutzt
Unter
items[i]speichern, wenniaus der Liste gelaufen ist. - 3
Ein Feld, das es am Objekt nicht gibt
byJob[player.job.name] = x, wobei der Job keinen Namen hat. - 4
Ein numerischer Schlüssel, der NaN wurde
Durch null teilen oder ein
tonumber()auf etwas Unparsbares und es dann als Index nutzen. Das ergibt „table index is NaN".
Wie du erkennst, welcher deiner ist
Gib den Schlüssel aus, nicht die Tabelle:
print('schlüssel =', tostring(derSchluessel))Die Zeile ist kurz und der Schlüssel meist ein einziger Ausdruck — das identifiziert ihn sofort.
Wo du nachsehen musst
Die Zuweisung in der genannten Zeile, genauer das in den eckigen Klammern.
Wie du es behebst
Sichere den Schlüssel dort ab, wo er entsteht:
local id = GetPlayerIdentifier(src, 0) if not id then return end cache[id] = data
Hängst du immer noch an deinem eigenen Code?
Diese Seite sagt, was dieser Fehler üblicherweise bedeutet. Füg deine Konsole in Server Fixer ein: es sortiert alles darin und sagt dir, was zuerst dran ist; und wenn du lieber nicht ranwillst, kann ORBIE das Script reparieren und dir die Resource fertig zum Einsetzen zurückgeben.
bug_reportServer Fixer öffnenFür diese Art Fehler Script Optimizer liest das Script und repariert den Code dahinter.