THE ORB
Démarrage du studio

Le compte d'argent est nil

Un script a demandé un compte d'argent que ce joueur n'a pas, en général parce que le nom du compte ne correspond pas à votre framework.

groupsLes actions liées à l'argent échouentcodeIl faut un développeur

Faites d'abord ceci

Signalez-le à l'auteur du script, avec le nom de votre framework.

bug_reportCollez plutôt toute votre console

Ce que ça veut dire

Une opération d'argent a demandé un compte que le joueur n'a pas. ESX expose xPlayer.getAccount('bank'), QBCore utilise PlayerData.money['bank'] ; les deux renvoient nil pour un nom de compte non configuré.

Se tromper ici mérite de l'attention : du code d'argent qui ne fait rien en silence, c'est ainsi que naissent les duplications et les paies manquantes.

Ce qui la provoque

Classé par fréquence : la cause la plus probable en premier.

  1. 1

    Un nom de compte qui n'existe pas

    'money', 'cash', 'bank' et 'black_money' diffèrent entre frameworks et entre versions. Le nom est une chaîne, donc rien ne le vérifie.

  2. 2

    La ligne de comptes n'a jamais été créée

    Un personnage créé avant que ce type de compte n'existe.

  3. 3

    Lu avant le chargement du joueur

    Le même problème de timing que tout le reste côté client.

  4. 4

    Un compte personnalisé ajouté à la config mais pas aux joueurs existants

    Les nouveaux comptes ne sont pas rétro-alimentés.

Comment savoir laquelle est la vôtre

Affichez ce que le joueur possède réellement :

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

La liste des vrais noms met fin aux devinettes.

Où regarder

Le nom du compte dans l'appel, face aux comptes configurés du framework.

Comment la corriger

Vérifiez le compte avant d'y toucher, et faites l'argent UNIQUEMENT côté serveur :

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

RemoveMoney comme removeAccountMoney peuvent échouer : regardez le résultat au lieu de supposer que cela a marché.

Toujours bloqué sur votre propre code ?

Cette page explique ce que cette erreur signifie en général. Collez votre console dans Server Fixer : il classera tout ce qui s'y trouve et vous dira quoi faire en premier ; et si vous préférez ne pas y toucher, ORBIE peut réparer le script et vous rendre la ressource prête à déposer.

bug_reportOuvrir le Server Fixer

Pour ce type d'erreur, le Convertisseur de scripts traduit une ressource entre ESX, QBCore et Qbox.

Les erreurs qui voyagent avec celle-ci