THE ORB
Arrancando el studio

La cuenta de dinero es nil

Un script pidió una cuenta de dinero que este jugador no tiene, normalmente porque el nombre de la cuenta no coincide con tu framework.

groupsFallan las acciones con dinerocodeNecesita un desarrollador

Haz esto primero

Repórtaselo a quien hizo el script, con el nombre de tu framework.

bug_reportMejor pega tu consola entera

Qué significa

Una operación de dinero pidió una cuenta que el jugador no tiene. ESX expone xPlayer.getAccount('bank'), QBCore usa PlayerData.money['bank']; los dos devuelven nil para un nombre de cuenta que no está configurado.

Equivocarse acá merece cuidado: el código de dinero que no hace nada en silencio es como aparecen los duplicados y los sueldos que no llegan.

Qué lo provoca

Ordenado por la frecuencia con la que es la respuesta.

  1. 1

    Un nombre de cuenta que no existe

    'money', 'cash', 'bank' y 'black_money' difieren entre frameworks y entre versiones. El nombre es una cadena, así que nada lo comprueba.

  2. 2

    La fila de cuentas nunca se creó

    Un personaje creado antes de que existiera ese tipo de cuenta.

  3. 3

    Leído antes de que el jugador cargara

    El mismo problema de tiempos que todo lo demás en el cliente.

  4. 4

    Una cuenta a medida añadida a la configuración y no a los jugadores que ya existen

    Las cuentas nuevas no se rellenan hacia atrás.

Cómo saber cuál es el tuyo

Imprimí lo que el jugador tiene de verdad:

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

La lista de nombres reales termina con las adivinanzas.

Dónde mirar

El nombre de la cuenta en la llamada, contra las cuentas configuradas del framework.

Cómo arreglarlo

Comprobá la cuenta antes de tocarla, y hacé el dinero SÓLO en el servidor:

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

Tanto RemoveMoney como removeAccountMoney pueden fallar: mirá el resultado en vez de dar por sentado que funcionó.

¿Sigues atascado en tu propio código?

Esta página es lo que suele significar este error. Pega tu consola en Server Fixer y ordenará todo lo que haya en ella y te dirá qué hacer primero; y si prefieres no tocarlo, ORBIE puede reparar el script y devolverte el recurso listo para soltar.

bug_reportAbrir el Server Fixer

Para este tipo de error, el Conversor de scripts traduce un recurso entre ESX, QBCore y Qbox.

Errores que viajan con este