intento de indexar un número, booleano o texto
Un script recibió una respuesta de otro tipo del que esperaba, muchas veces leyendo mal un resultado de la base de datos.
Haz esto primero
Este necesita mirar el código: es un fallo del script, no de tu instalación.
Qué significa
Se usó . o [] sobre un valor que existe pero no es una tabla. Esto es distinto de indexar nil: algo SÍ está ahí, sólo que es del tipo equivocado. Normalmente significa que una API devolvió una forma distinta de la que el código esperaba.
Qué lo provoca
Ordenado por la frecuencia con la que es la respuesta.
- 1
Un nativo devolvió un identificador, no una tabla
local ped = GetPlayerPed(-1)y despuésped.x. El identificador es un número. - 2
Una función devolvió una bandera booleana de éxito
Muchos ayudantes devuelven
success, data. Tomar sólo el primer valor e indexarlo da exactamente esto. - 3
Un resultado de consulta leído un nivel de más
El
queryde oxmysql devuelve un ARRAY de filas.result.identifieres indexar el array;result[1].identifieres la fila. - 4
Un valor de configuración que es un número donde se esperaba una tabla
Config.Jobs.policedondeConfig.Jobsse escribió como un contador en vez de como una tabla. - 5
Métodos de cadena llamados del lado equivocado
('x'):upper()está bien;x:upper()cuando x es un número, no.
Cómo saber cuál es el tuyo
print(type(cosa), json.encode(cosa))
El tipo del mensaje ya te dice qué es; el valor te dice de dónde vino.
Dónde mirar
La línea, y la llamada que produjo el valor una o dos líneas más arriba.
Cómo arreglarlo
-- oxmysql devuelve filas, no una fila
local rows = MySQL.query.await('SELECT * FROM users WHERE identifier = ?', { id })
local user = rows and rows[1]
if not user then return end
-- los nativos devuelven identificadores
local ped = PlayerPedId()
local coords = GetEntityCoords(ped) -- ESTO es un vector¿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 FixerPara este tipo de error, el Script Optimizer lee el script y repara el código que hay detrás.