THE ORB
Iniciando o studio

tentativa de comparar dois valores incompatíveis

Um script tentou comparar duas coisas que não dá para comparar, normalmente um número contra algo que falta ou que é texto.

groupsAquela função para de funcionarcodePrecisa de um desenvolvedor

Faça isto primeiro

Se aconteceu depois de um comando, o que foi digitado nele é a causa provável.

bug_reportMelhor colar o console inteiro

O que significa

Foi usado <, >, <= ou >= entre valores que o Lua não consegue ordenar: attempt to compare nil with number, attempt to compare string with number, attempt to compare two table values.

== nunca produz isso. Só os quatro operadores de ordem produzem, e isso estreita a busca na linha indicada na hora.

O que causa isso

Ordenado pela frequência com que é a resposta.

  1. 1

    Um nil de um lado

    if playerMoney > price quando a busca não devolveu nada. O mesmo problema de fundo que um index-nil, uma linha depois.

  2. 2

    Um número que chegou como string

    Valores de configuração escritos como "100", cargas JSON, e argumentos de comandos. Os argumentos de comandos do FiveM são SEMPRE strings, inclusive em /givemoney 1 5000.

  3. 3

    Comparar um vetor com um número

    #(a - b) > 5.0 é o certo. (a - b) > 5.0 compara vetores.

  4. 4

    Uma coluna do banco lida diretamente

    O oxmysql devolve o que o MySQL dá, e colunas DECIMAL podem chegar como strings.

Como saber qual é o seu

print(type(esquerda), type(direita))

A mensagem já nomeia os dois tipos, então na verdade você só está confirmando qual variável tem qual.

Onde olhar

A linha que ele nomeia. Se o valor veio de um comando, olhe a análise dos argumentos; se veio do banco, olhe o tipo da coluna.

Como consertar

Converta uma vez só, na fronteira:

RegisterCommand('givemoney', function(source, args)
    local target = tonumber(args[1])
    local amount = tonumber(args[2])
    if not target or not amount or amount <= 0 then return end
    -- daqui para baixo é seguro
end)

E para distância, use o operador de comprimento:

if #(GetEntityCoords(ped) - target) > 5.0 then return end

Ainda travado no seu próprio código?

Esta página é o que esse erro costuma significar. Cole o seu console no Server Fixer e ele vai ordenar tudo o que estiver lá e te dizer o que fazer primeiro; e se você preferir não mexer, o ORBIE consegue consertar o script e te devolver o resource pronto para soltar.

bug_reportAbrir o Server Fixer

Para esse tipo de erro, o Script Optimizer lê o script e conserta o código por trás disso.

Erros que andam junto com este