1. Como saber se há algo de errado com minha action?

Tudo que estiver em desacordo na estrutura do script irá aparecer no Debug Log. Para abri-lo basta seguir o procedimento abaixo:


Se algo estiver errado, um texto irá aparecer:



2. Interpretando erros no Debug Log

Antes de mais nada precisaremos interpretar a mensagem de erro. Vamos começar pelo exemplo seguinte:
12:47 : LUA:DoAction:SafeBank: - LuaInterface.LuaScriptException: [string "chunk"]:2: ')' expected (to close '(' at line 1) near 'local'

Mesmo que não parece neste texto há tudo que precisamos saber sobre o erro e como resolvê-lo.

LUA:DoAction:SafeBank:
Acima podemos identificar o erro e a localização do mesmo.

  • DoAction: Significa que há um problema na codificação
  • SafeBank: Nome da action que apresenta erro. O nome poderá variar de acordo com a localização da action, se a action estiver localizada no cavebot teremos o retorno de uma mensagem similar a: LUA:DoAction:Cavebot note que não há informações da localização exata da action no cavebot, logo tenha bastante atenção ao realizar ajustes. O exemplo é válido para as HUD (LUA:DoAction:HUD)

LuaInterface.LuaScriptException: [string "chunk"]:2: ')' expected (to close '(' at line 1) near 'local'
Aqui podemos observar alguns detalhes sobre o erro encontrado.

  • LuaInterface.LuaScriptException: [string "chunk"]: Uma exceção de erro foi apresentada, logo o ibot não é capaz de executar a action.
  • 2: Linha em que se encontra o erro (algumas vezes será necessário verificar um waypoint antes e outro depois para identificar a action)
  • ')' expected (to close '(' at line 1) near 'local' Informação adicional sobre o problema enfrentado.


3. Solucionando erros.
Abaixo você irá encontrar alguns exemplos de erros no debug log,

Action:
Code:
local TOTAL = (itemcount('gold coin') + itemcount('platinum coin')
if TOTAL > 0 then
depositall()
end
Mensagem de Erro: LUA:DoAction:SafeBank: - LuaInterface.LuaScriptException: [string "chunk"]:1: ')' expected (to close '(' at line 1) near 'local'
Problema: O scripter esqueceu de fechar as () antes do itemcount().
Solução:
Code:
local TOTAL = (itemcount('gold coin') + itemcount('platinum coin'))
if TOTAL > 0 then
depositall()
end


Action:
Code:
if hppc < 80 and cancast("exura")
cast("exura")
end
Mensagem de Erro: LUA:DoAction:Healing: - LuaInterface.LuaScriptException: [string "chunk"]:2: 'then' expected near 'cast'
Problema: if necessita vir acompanhado do then. Neste caso tu deverá verificar a linha anterior a do erro, que seria a linha 1.
Solução:
Code:
if hppc < 80 and cancast("exura") then
cast("exura")
end


Action:
Code:
while hppc < 80 and cancast("exura")
cast("exura")
end
Mensagem de Erro: LUA:DoAction:Healing: - LuaInterface.LuaScriptException: [string "chunk"]:2: 'do' expected near 'cast'
Problema: while necessita vir acompanhado de do. Neste caso tu deverá verificar a linha anterior a do erro, que seria a linha 1.
Solução:
Code:
while hppc < 80 and cancast("exura") do
cast("exura")
end


Action:
Code:
if itemcount("gold coin") > 0 then
moveitems("gold coin", MainBP, 'ground', 100)
end
Mensagem de erro: CaveBot:Input:FindItemLocal - System.NullReferenceException: Object reference not set to an instance of an object.
at ohM=.thw=.Mh0=(String Nh0=, String Nx0=, Boolean OB0=, Int32 OR0=)
Problema: Não foram encontradas as variáveis. O Bot não pode encontrar a referente backpack aonde supostamente o mesmo deveria executar a action.
Soluçao:
Code:
local MainBP = "blue backpack"
if itemcount("gold coin") > 0 then
moveitems("gold coin", MainBP, 'ground', 100)
end


Action:
Code:
if paround(7, false) > 0 then
    sy("wazzup bro")
    wait(30000)
end
Mensagem de Erro: LUA:DoAction:Action1: - LuaInterface.LuaScriptException: [string "chunk"]:2: attempt to call global 'sy' (a nil value)
Problema: iBot não reconhece a função sy(). Neste caso houve erro de ortografia Clique aqui para verificar a lista de variáveis e funções.
Solução:
Code:
if paround(7, false) > 0 then
    say("wazzup bro")
    wait(30000)
end


Action:
Code:
iscreatureontile("west", "south", "east")
Mensagem de Erro: LUA:DoAction:Action1: - LuaInterface.LuaScriptException: [string "chunk"]:1: invalid arguments to method call
Mensagem de Erro Similar:LUA:DoAction:Action1: - LuaInterface.LuaScriptException: C:\path to iBot folder\iBot\library\Standard.lua:582: A .NET exception occured in user-code
Problema: Você está utilizando valores errados em sua função. Neste exemplo devemos usar somente valores inteiros.
Clique aqui para verificar a lista de variáveis e funções.
Solução:
Code:
iscreatureontile(posx-1, posy+1, posx+1)

Your's Manuu.