THE ORB
Arrancando el studio

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.

groupsEsa función deja de andarcodeNecesita un desarrollador

Haz esto primero

Este necesita mirar el código: es un fallo del script, no de tu instalación.

bug_reportMejor pega tu consola entera

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

    Un nativo devolvió un identificador, no una tabla

    local ped = GetPlayerPed(-1) y después ped.x. El identificador es un número.

  2. 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. 3

    Un resultado de consulta leído un nivel de más

    El query de oxmysql devuelve un ARRAY de filas. result.identifier es indexar el array; result[1].identifier es la fila.

  4. 4

    Un valor de configuración que es un número donde se esperaba una tabla

    Config.Jobs.police donde Config.Jobs se escribió como un contador en vez de como una tabla.

  5. 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 Fixer

Para este tipo de error, el Script Optimizer lee el script y repara el código que hay detrás.

Errores que viajan con este