[Lua] Erros Frequentes |
Grastfetry « Consul » 1487078160000
| 0 | ||
Este tópico descreve os diferentes erros que podem ser retornados no seu chat #lua e demonstra como pode-ser consertados com pequenos exemplos ou prevenir de acontecerem. Algumas mensagens de erros contém a linha do código que causou o erro. Pode não ser a linha exata causadora do erro, mas está por volta da mesma. Uma ótima dica para encontrar o causador é usar o print em variáveis e outras informações em cada estágio do código. Isso pode ser útil para verificar se uma variável não tem o valor/tipo esperado, etc. Isso não vai concertar o seu código, mas vai ajudar a encontrar o que está dando de errado. Um error comum é redefinição de algo, como no exemplo temos um eventNewGame que era esperado mostrar no chat #lua "REST", mas ele foi redefinido para outro valor através do segundo eventNewGame e o resultado do print vai ser "BRENO". Code Lua 1 2 3 4 5 6 7 function eventNewGame() Code Lua 1 2 3 4 function eventNewGame() Este tópico foi elaborado pela Equipe Lua BR ♥ Attempt to call nil.
Code Lua 1 print(test) Code Lua 1 2 test = "PAULMARQUES <3" Code Lua 1 2 print(test) Code Lua 1 2 test = "PAULMARQUES <3" Code Lua 1 Print("I WANT YOU BOY") Code Lua 1 print("I WANT YOU BOY") Index expected, got nil.
Code Lua 1 tbl[1] = "MEOW" Code Lua 1 2 tbl = {} Code Lua 1 2 tbl = {} ')' expected (to close '(' at line [num])
Code Lua 1 print("OI Code Lua 1 print("OI") '??' expected.
Code Lua 1 2 3 elseif 1 > 2 then Multiple points.
Code Lua 1 print(12.24.42) Code Lua 1 print(12.24424) Unfinished (long) comment/string.
Code Lua 1 --[[ Esse é um comentário que não está fechado Code Lua 1 2 --[[ Esse é um comentário corretamente fechado Nesting of [[...]] is deprecated.
Code Lua 1 --[[ 1 [[ 2 [[ 3 ]] ]] ]] Remova os '[[ ... ]]' do comentário principal e se for necessário apenas quebre a linha: Code Lua 1 2 3 4 --[[ 1 Attempt to index ? (a nil value)
Code Lua 1 2 tbl = {} Code Lua 1 2 tbl = {"ECZISTE"} Attempt to concatenate [tipo de dado] and [tipo de dado]
Code Lua 1 print("olá "..{}) Invalid key to 'next'
Attempt to perform arithmetic [operação] on a [tipo de dado] value
Attempt to compare [tipo de dado] with [tipo de dado]
[tipo de dado] expected, got [tipo de dado]
Lua destroyed : Runtime can't exceed 40 ms in 4 seconds !
Lua destroyed: Runtime too long!
Argument must be integer
Code Lua 1 tfm.exec.movePlayer(name, "text", 24) Argument must be integer
? : argument n can't be NIL.
Code Lua 1 tfm.exec.movePlayer("Brenower", 5, nil, true) Code Lua 1 tfm.exec.movePlayer("Brenower", 5, -10, true) vm error: java.lang.ArrayIndexOutOfBoundsException: 256
Code Lua 1 2 3 4 function chamar() You don't have the right to use this function.
Code Lua 1 system.savePlayerData("Brenower", "mdl=0,0,I LOVE U") You can't call this function [função] more than once per 1 minute.
You can't call this function [tfm.exec.newGame] more than once per 3 seconds.
|
0 | ||
Bom tópico! |
Hydroper « Citoyen » 1487110500000
| 0 | ||
Solução para Invalid key to 'next' (na real esse erro nem existe) Exemplo Code Lua 1 2 3 4 5 6 7 8 local env_next = next; Dernière modification le 1487111280000 |
Laagaadoo « Citoyen » 1487117760000
| 0 | ||
Profiver a dit : É só usar ipairs no lugar de pairs, e existe sim, tente usar table.remove dentro de um loop pairs. Dernière modification le 1487117820000 |
Hydroper « Citoyen » 1487118900000
| 0 | ||
Laagaadoo a dit : O ipairs() retorna uma função que lê as chaves índices de uma tabela. table.remove() também serve para remover campo por chave indíce, ou seja, pouco irrelacionado ao caso de tabela[k] = nil (ou rawset(tabela, k)). Dernière modification le 1487119080000 |
Laagaadoo « Citoyen » 1487119980000
| 0 | ||
Profiver a dit : Ao rodar o código provido no tópico sobre esse erro: Ao usar o mesmo código, porém com ipairs: |
Hydroper « Citoyen » 1487195400000
| 0 | ||
Laagaadoo a dit : Sim, mas ipairs() é outro assunto. ipairs() retorna uma função que lê chaves "índices", começa do 1, vai para o 2, 3, 4, e assim por diante... até que o valor resultado dessa chave indíce seja nil ou -nan (valores que são ignorados como campos de tabelas). Agora estou falando sobre o caso de chaves não indíces, fora de uma sequência. Por exemplo, ` 2 `, ` 'blah' `, ` 0 `, ` true `, etc... |
Ninguem « Consul » 1487504220000
| 0 | ||
Essa tua solução vale somente para uma ocorrência na tabela. Caso seja necessário encontrar todas as ocorrências o mais correto é listar numa tabela auxiliar os índices e depois trabalhar com eles em outro loop. |
Hydroper « Citoyen » 1487508120000
| 0 | ||
Ninguem a dit : Sim, essa solução é tipo para ir removendo todos os campos depois de ler. Eu não tinha pensado muito bem, mas sim, o que você fala faz total sentido. A tabela pode ser refeita se ela não for muito referenciada, então minha solução pode não ser muito precisa. |
Eletroluxxx 1491686520000
| | ||
[Modéré par Excasr, raison : Bom dia. Reclamações de modules devem ser levadas para os criadores do module, ao invés deste tópico.] |
Pikabibi « Citoyen » 1500591780000
| 0 | ||
Falta um erro: o Init Error: Unexpected Symbol |
Ruamorangos « Citoyen » 1502807640000
| 0 | ||
bad argument: number expected, got function ?? |
Ninguem « Consul » 1502811000000
| 0 | ||
Ruamorangos a dit : Algum lugar espera que voce forneça um número, mas você está fornecendo uma função. |
F0lzer « Citoyen » 1504913280000
| 0 | ||
meu codigo nao funfa e tenho os requisitos.. |
Fofinhoppp « Consul » 1505948880000
| 0 | ||
Trovaodouu a dit : Se não falar o erro também não vai ajudar em nada amigo |
0 | ||
Fofinhoppp a dit : Ele quis dizer que quando coloca script não entra |
0 | ||
Ótimo tópico! |
Ayeeelmaoooo 1569185820000
| | ||
[Modéré par Naiyme, raison : Racismo;] |
Arthur107 « Consul » 1612582980000
| 0 | ||
erro Script adm="Arthu107" --<-- Coloca teu nick em "Admin" tfm.exec.newGame("#1") eventKeyboard=table.foreach({32,80},function(_,k) system.bindKeyboard(adm,k,true,true) end) or function(n,k) if cmd == "sha" then tfm.exec.setShamanMode ( jogador, modo ) Local Map = {"@7828429" end end system.disableChatCommandDisplay("sha") |
Gamedroit « Citoyen » 1614026700000
| 0 | ||
Arthur107 a dit : eventKeyBoard é disparado quando um jogador pressiona uma tecla, o correto para este seria eventChatCommand. Code Lua 1 2 3 4 5 6 7 8 9 local admin = "Arthu107#1925" Para ressaltar, este não me parece o tópico certo para pedir ajuda em relação a isso, o seu código contém erros nas linhas 9 e na linha 10 além disso eventKeyboard recebe (nome, chave, estaPressionada, x, y) como argumento. Também verifique as regras da linguagem, "local" é uma palavra-chave que serve para declarar uma variável local, ou seja, inacessível fora daquele escopo, "Local" é um identificador que neste caso não foi declarado e mesmo se fosse não poderia ser utilizado desta maneira. Dernière modification le 1614026760000 |