THE ORB
Uruchamiam studio

Konto pieniędzy jest nil

Skrypt poprosił o konto pieniężne, którego ten gracz nie ma — zwykle dlatego, że nazwa konta nie pasuje do twojego frameworka.

groupsOperacje na pieniądzach zawodzącodePotrzebny programista

Zrób najpierw to

Zgłoś to temu, kto zrobił skrypt, podając nazwę swojego frameworka.

bug_reportWklej zamiast tego całą konsolę

Co to znaczy

Operacja na pieniądzach poprosiła o konto, którego gracz nie ma. ESX udostępnia xPlayer.getAccount('bank'), QBCore używa PlayerData.money['bank']; oba zwracają nil dla nazwy konta, której nie skonfigurowano.

Warto tu uważać: kod od pieniędzy, który po cichu nic nie robi, to właśnie sposób, w jaki powstają błędy z duplikacją i znikające wypłaty.

Co to powoduje

Uszeregowane według tego, jak często są odpowiedzią.

  1. 1

    Nazwa konta, która nie istnieje

    'money' a 'cash' a 'bank' a 'black_money' różnią się między frameworkami i wersjami. Nazwa to ciąg znaków, więc nic jej nie sprawdza.

  2. 2

    Wiersz kont nigdy nie został utworzony

    Postać utworzona, zanim ten typ konta istniał.

  3. 3

    Odczyt przed wczytaniem gracza

    Ten sam problem z czasem co wszystko inne po stronie klienta.

  4. 4

    Własne konto dodane do configu, ale nie istniejącym graczom

    Nowe konta nie uzupełniają się wstecz.

Jak poznać, który jest twój

Wypisz, co gracz naprawdę ma:

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

Lista prawdziwych nazw kończy zgadywanie.

Gdzie szukać

Nazwa konta w wywołaniu, zestawiona ze skonfigurowanymi kontami frameworka.

Jak to naprawić

Sprawdź konto, zanim go dotkniesz, i operuj pieniędzmi WYŁĄCZNIE na serwerze:

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

I RemoveMoney, i removeAccountMoney mogą się nie udać — sprawdzaj wynik zamiast zakładać, że zadziałało.

Wciąż utknąłeś na własnym kodzie?

Ta strona mówi, co ten błąd zwykle oznacza. Wklej swoją konsolę do Server Fixera, a uszereguje wszystko, co w niej jest, i powie, co zrobić najpierw; a jeśli wolisz tego nie ruszać, ORBIE naprawi skrypt i odda ci zasób gotowy do wrzucenia.

bug_reportOtwórz Server Fixer

Dla tego rodzaju błędu Konwerter skryptów przenosi zasób między ESX, QBCore i Qbox.

Błędy, które chodzą z tym w parze