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.
Faites d'abord ceci
Signalez-le à l'auteur du script, avec le nom de votre framework.
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
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
La ligne de comptes n'a jamais été créée
Un personnage créé avant que ce type de compte n'existe.
- 3
Lu avant le chargement du joueur
Le même problème de timing que tout le reste côté client.
- 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 endRemoveMoney 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 FixerPour ce type d'erreur, le Convertisseur de scripts traduit une ressource entre ESX, QBCore et Qbox.