UntFrc 27 Postado Setembro 22, 2017 Share Postado Setembro 22, 2017 Todo script que tento colocar no meu servidor que precisa se conectar com a database pra pegar ou alterar informação não da certo. Em todos os casos fica aparecendo esse erro: attempt to call field 'executeQuery' (a nil value).Como posso consertar isso?Obs: Já tentei trocar a linha para só "db.query" e também nao vai. Link para o comentário Compartilhar em outros sites More sharing options...
Administrador PoRaI 99 Postado Setembro 22, 2017 Administrador Share Postado Setembro 22, 2017 Mano, faz o seguinte... Coloca isso aqui em /data/lib/012-table.lua: function table.val_to_str ( v ) if "string" == type( v ) then v = string.gsub( v, "\n", "\\n" ) if string.match( string.gsub(v,"[^'\"]",""), '^"+$' ) then return "'" .. v .. "'" end return '"' .. string.gsub(v,'"', '\\"' ) .. '"' else return "table" == type( v ) and table.tostring( v ) or tostring( v ) end end function table.key_to_str ( k ) if "string" == type( k ) and string.match( k, "^[_%a][_%a%d]*$" ) then return k else return "[" .. table.val_to_str( k ) .. "]" end end function table.tostring( tbl ) local result, done = {}, {} for k, v in ipairs( tbl ) do table.insert( result, table.val_to_str( v ) ) done[ k ] = true end for k, v in pairs( tbl ) do if not done[ k ] then table.insert( result, table.key_to_str( k ) .. "=" .. table.val_to_str( v ) ) end end return "{" .. table.concat( result, "," ) .. "}" end Crie um script qualquer com isso aí: print(table.tostring(db)) e posta aqui o resultado que aparecer no seu console. Link para o comentário Compartilhar em outros sites More sharing options...
UntFrc 27 Postado Setembro 22, 2017 Autor Share Postado Setembro 22, 2017 (editado) 12 minutos atrás, PoRaI disse: Mano, faz o seguinte... Coloca isso aqui em /data/lib/012-table.lua: function table.val_to_str ( v ) if "string" == type( v ) then v = string.gsub( v, "\n", "\\n" ) if string.match( string.gsub(v,"[^'\"]",""), '^"+$' ) then return "'" .. v .. "'" end return '"' .. string.gsub(v,'"', '\\"' ) .. '"' else return "table" == type( v ) and table.tostring( v ) or tostring( v ) end end function table.key_to_str ( k ) if "string" == type( k ) and string.match( k, "^[_%a][_%a%d]*$" ) then return k else return "[" .. table.val_to_str( k ) .. "]" end end function table.tostring( tbl ) local result, done = {}, {} for k, v in ipairs( tbl ) do table.insert( result, table.val_to_str( v ) ) done[ k ] = true end for k, v in pairs( tbl ) do if not done[ k ] then table.insert( result, table.key_to_str( k ) .. "=" .. table.val_to_str( v ) ) end end return "{" .. table.concat( result, "," ) .. "}" end Crie um script qualquer com isso aí: print(table.tostring(db)) e posta aqui o resultado que aparecer no seu console. {updateQueryLimitOperator=function: 10EF70B0,lastInsertId=function: 10EF6ED0,updateLimiter=function: 10EF70B0,escapeBlob=function: 10EF6E10,getResult=function: 10EF8250,storeQuery=function: 10EF7090,escapeString=function: 10EF70F0} attempt to call a number value Editado Setembro 22, 2017 por Dandjes Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Setembro 22, 2017 Share Postado Setembro 22, 2017 Se tiver a source do teu servidor , abre o arquivo luascript.cpp e procura por isso const luaL_Reg LuaInterface::luaDatabaseTable[] = E manda oque tem dentro Link para o comentário Compartilhar em outros sites More sharing options...
UntFrc 27 Postado Setembro 22, 2017 Autor Share Postado Setembro 22, 2017 Agora, Crypter disse: Se tiver a source do teu servidor , abre o arquivo luascript.cpp e procura por isso const luaL_Reg LuaInterface::luaDatabaseTable[] = E manda oque tem dentro ai é que ta... não tem as sources :S Link para o comentário Compartilhar em outros sites More sharing options...
Crypter 136 Postado Setembro 22, 2017 Share Postado Setembro 22, 2017 Cria uma talkactions com esse codigo e me diga se da erro: Spoiler function getIdTest(cid) return db.getResult("SELECT id FROM players WHERE name= '" .. getPlayerName(cid) .. "' LIMIT 1;"):getDataInt("id") end function onSay(cid, words, param) doPlayerPopupFYI(cid, "Seu id no jogo: " .. getIdTest(cid)) return true end Link para o comentário Compartilhar em outros sites More sharing options...
Administrador PoRaI 99 Postado Setembro 22, 2017 Administrador Share Postado Setembro 22, 2017 @Crypter Não vai dar erro, o servidor dele falta a função executeQuery pelo log que ele mandou. Bom, recomendo trocar o executeQuery por storeQuery ou getResult, apesar de ser gambiarra, bom... já que você não tem a source. Link para o comentário Compartilhar em outros sites More sharing options...
UntFrc 27 Postado Setembro 22, 2017 Autor Share Postado Setembro 22, 2017 4 minutos atrás, Crypter disse: Cria uma talkactions com esse codigo e me diga se da erro: Ocultar conteúdo function getIdTest(cid) return db.getResult("SELECT id FROM players WHERE name= '" .. getPlayerName(cid) .. "' LIMIT 1;"):getDataInt("id") end function onSay(cid, words, param) doPlayerPopupFYI(cid, "Seu id no jogo: " .. getIdTest(cid)) return true end Funcionou normal. 51 minutos atrás, PoRaI disse: @Crypter Não vai dar erro, o servidor dele falta a função executeQuery pelo log que ele mandou. Bom, recomendo trocar o executeQuery por storeQuery ou getResult, apesar de ser gambiarra, bom... já que você não tem a source. Nenhuma dessas duas outras opções funcionaram no script de change vocation, porém no comando de deathlist funcionou. Pelo que eu percebi nada funciona quando a questão é o script alterar algo na database. =/ Erro: [Error - Action Interface] [22/09/2017 21:47:55] data/actions/scripts/changevoc.lua:onUse [22/09/2017 21:47:55] Description: [22/09/2017 21:47:55] data/actions/scripts/changevoc.lua:58: attempt to concatenate a boolean value [22/09/2017 21:47:56] stack traceback: [22/09/2017 21:47:56] data/actions/scripts/changevoc.lua:58: in function <data/actions/scripts/changevoc.lua:1> Link para o comentário Compartilhar em outros sites More sharing options...
Administrador PoRaI 99 Postado Setembro 23, 2017 Administrador Share Postado Setembro 23, 2017 1 hora atrás, Dandjes disse: Funcionou normal. Nenhuma dessas duas outras opções funcionaram no script de change vocation, porém no comando de deathlist funcionou. Pelo que eu percebi nada funciona quando a questão é o script alterar algo na database. =/ Erro: [Error - Action Interface] [22/09/2017 21:47:55] data/actions/scripts/changevoc.lua:onUse [22/09/2017 21:47:55] Description: [22/09/2017 21:47:55] data/actions/scripts/changevoc.lua:58: attempt to concatenate a boolean value [22/09/2017 21:47:56] stack traceback: [22/09/2017 21:47:56] data/actions/scripts/changevoc.lua:58: in function <data/actions/scripts/changevoc.lua:1> Aí é o script que tá com erro. É aquele mesmo do outro tópico? Afinal, pq você não usa aquele que eu mandei? Edit: Ele tá dando erro porque você tenta usar a função: getPlayerGUID(cid) depois que removeu a criatura, então a função vai retornar um valor boleano falso. Troca os: " .. getPlayerGUID(cid) .. " por " .. pid .. " Link para o comentário Compartilhar em outros sites More sharing options...
UntFrc 27 Postado Setembro 23, 2017 Autor Share Postado Setembro 23, 2017 3 minutos atrás, PoRaI disse: Aí é o script que tá com erro. É aquele mesmo do outro tópico? Afinal, pq você não usa aquele que eu mandei? Edit: Ele tá dando erro porque você tenta usar a função: getPlayerGUID(cid) depois que removeu a criatura, então a função vai retornar um valor boleano falso. Troca os: " .. getPlayerGUID(cid) .. " por " .. pid .. " Eu estava usando aquele antigo que eu tinha. Tem razão, aquele que voce fez funciona perfeitamente. Mudei para db.getresult e agora foi, finalmente... Link para o comentário Compartilhar em outros sites More sharing options...
Administrador Frenvius 204 Postado Novembro 29, 2017 Administrador Share Postado Novembro 29, 2017 A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. Link para o comentário Compartilhar em outros sites More sharing options...
Stigal 584 Postado Novembro 29, 2017 Share Postado Novembro 29, 2017 A questão neste tópico de suporte foi encerrada por falta de resposta. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta. Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados