Fivem script fehler?
Immer wenn ich mir job geben will oder so irgendwas mit id kommt der fehler keine ahnung was das ist kann mir jemand helfen
2 Antworten
Um den genauen Grund herauszufinden, musst du in dir die Codestelle anschauen, auf die die Fehlermeldung verweist. Sie liegt in Zeile 11 der Datei commands.lua.
Konkret wird für die Variable xPlayer ein boolscher Typ berechnet, auf dem das Skript folgend versucht, eine Operation durchzuführen, die ein boolscher Typ nicht unterstützt.
Beispiel:
local xPlayer = getPlayerObject()
xPlayer:doSomething()
Wenn die fiktive Funktion getPlayerObject bei Misserfolg den Wert false liefert, würde die Ausführung der nachfolgenden Zeile scheitern, denn ein boolscher Wert kennt keine Methode namens doSomething.
Eine Lösung für dieses konkrete Beispiel wäre der Einbau einer zusätzlichen Abfrage, bevor doSomething aufgerufen wird.
local xPlayer = getPlayer()
if (xPlayer) then
xPlayer:doSomething()
end
boolean kennt nur wahr oder falsch (1 oder 0) als Werte. Sieht aus, als ob das Script hier einen Wert außerhalb dieses Bereichs nutzen will.
Ja, es gibt auch einige Sprachen, die akzeptieren 0 als falsch und jeden anderen Wert als richtig. Genau genommen ist bei denen Boolean ein Variant, der 0 und ungleich 0 kennt. Dem kann man alles numerische als Wert zuweisen. Geht abber nicht in allen Sprachen. Wie es mit Lua ist, weiß ich nicht.
Ich weiß. Problem bei Doom war nur, dass das mit dem C++ "bool" nicht zurecktkam, da es dem eine "-1" zuwies, was der Typ nicht kann, da der tatsächlich nur "true" und "false" kennt.
Keine Ahnung, habe mich mit Lua noch nicht beschäftigt. Könntest eine Abfrage starten, ob der Wert ungleich 0 ist (also wahr).
Habe beim protieren von DOOM gelernt, das boolean auch noch andere Werte als 0 und 1 kennt ;-)
(Aber die haben glücklicherweise ihren eigenen boolean-Typ definiert, den man dann einfach als Integer definieren konnte, dann hat es wieder gepasst.)