THE ORB
Studio wird gestartet

Das Geldkonto ist nil

Ein Script hat ein Geldkonto angefragt, das dieser Spieler nicht hat — meist, weil der Kontoname nicht zu deinem Framework passt.

groupsGeld-Aktionen schlagen fehlcodeBraucht einen Entwickler

Mach das zuerst

Meld es dem Script-Autor, zusammen mit dem Namen deines Frameworks.

bug_reportFüg lieber deine ganze Konsole ein

Was es bedeutet

Eine Geldoperation hat ein Konto verlangt, das der Spieler nicht hat. ESX bietet xPlayer.getAccount('bank'), QBCore nutzt PlayerData.money['bank']; beide geben nil zurück, wenn der Kontoname nicht konfiguriert ist.

Hier falsch zu liegen verdient Sorgfalt: Geldcode, der stillschweigend nichts tut, ist der Weg zu Duplikationsfehlern und ausbleibenden Gehältern.

Was es auslöst

Sortiert danach, wie oft es die Antwort ist.

  1. 1

    Ein Kontoname, den es nicht gibt

    'money', 'cash', 'bank' und 'black_money' unterscheiden sich zwischen Frameworks und Versionen. Der Name ist eine Zeichenkette, also prüft ihn nichts.

  2. 2

    Die Kontenzeile wurde nie angelegt

    Ein Charakter, erstellt bevor es diesen Kontotyp gab.

  3. 3

    Gelesen, bevor der Spieler geladen war

    Dasselbe Timing-Problem wie alles andere auf dem Client.

  4. 4

    Ein eigenes Konto in die Konfiguration aufgenommen, aber nicht zu vorhandenen Spielern

    Neue Konten werden nicht nachträglich befüllt.

Wie du erkennst, welcher deiner ist

Gib aus, was der Spieler wirklich hat:

-- ESX
print(json.encode(xPlayer.getAccounts()))
-- QBCore
print(json.encode(Player.PlayerData.money))

Die Liste der echten Namen beendet das Raten.

Wo du nachsehen musst

Der Kontoname im Aufruf, gegen die konfigurierten Konten des Frameworks.

Wie du es behebst

Prüf das Konto, bevor du es anfasst, und mach Geld NUR auf dem Server:

-- ESX
local account = xPlayer.getAccount('bank')
if not account then return end
if account.money < price then return end
xPlayer.removeAccountMoney('bank', price)

-- QBCore
if not Player.Functions.RemoveMoney('bank', price) then return end

Sowohl RemoveMoney als auch removeAccountMoney können scheitern — sieh dir das Ergebnis an, statt anzunehmen, dass es geklappt hat.

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 Skript-Konverter übersetzt eine Resource zwischen ESX, QBCore und Qbox.

Fehler, die mit diesem zusammen auftreten