THE ORB
Studio wird gestartet

Versuch, zwei unvereinbare Werte zu vergleichen

Ein Script wollte zwei Dinge vergleichen, die sich nicht vergleichen lassen — meist eine Zahl gegen etwas Fehlendes oder Text.

groupsDiese Funktion hört auf zu funktionierencodeBraucht einen Entwickler

Mach das zuerst

Wenn es nach einem Befehl passiert ist, sind die eingetippten Werte die wahrscheinliche Ursache.

bug_reportFüg lieber deine ganze Konsole ein

Was es bedeutet

<, >, <= oder >= wurde zwischen Werten benutzt, die Lua nicht ordnen kann: attempt to compare nil with number, attempt to compare string with number, attempt to compare two table values.

== erzeugt das nie. Nur die vier Ordnungsoperatoren tun das — das grenzt die Suche in der gemeldeten Zeile sofort ein.

Was es auslöst

Sortiert danach, wie oft es die Antwort ist.

  1. 1

    Ein nil auf einer Seite

    if playerMoney > price, wenn die Suche nichts ergab. Dasselbe Grundproblem wie ein index-nil, eine Zeile später.

  2. 2

    Eine Zahl, die als Zeichenkette ankam

    Konfigurationswerte als "100" geschrieben, JSON-Nutzlasten und Befehlsargumente. FiveM-Befehlsargumente sind IMMER Zeichenketten, auch bei /givemoney 1 5000.

  3. 3

    Einen Vektor mit einer Zahl vergleichen

    #(a - b) > 5.0 ist richtig. (a - b) > 5.0 vergleicht Vektoren.

  4. 4

    Eine direkt durchgereichte Datenbankspalte

    oxmysql gibt zurück, was MySQL liefert, und DECIMAL-Spalten können als Zeichenketten ankommen.

Wie du erkennst, welcher deiner ist

print(type(links), type(rechts))

Die Meldung nennt beide Typen schon — du bestätigst vor allem, welche Variable welchen hält.

Wo du nachsehen musst

Die genannte Zeile. Kam der Wert aus einem Befehl, schau dir das Parsen der Argumente an; kam er aus der Datenbank, den Spaltentyp.

Wie du es behebst

Konvertier einmal, an der Grenze:

RegisterCommand('givemoney', function(source, args)
    local target = tonumber(args[1])
    local amount = tonumber(args[2])
    if not target or not amount or amount <= 0 then return end
    -- ab hier sicher
end)

Und für Entfernungen nimm den Längenoperator:

if #(GetEntityCoords(ped) - target) > 5.0 then return end

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 öffnen

Für diese Art Fehler Script Optimizer liest das Script und repariert den Code dahinter.

Fehler, die mit diesem zusammen auftreten