function setPlayerRecoveryKey(cid)
local wd,newrk = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",""
for i = 0, 15 do
tmp = math.random(1,#wd)
newrk = newrk..string.sub(wd,tmp,tmp)
end
local newrk = string.gsub(newrk, "(....)", "%1-", 3)
local keyexists = db.getResult("SELECT * FROM `accounts` WHERE `key` = '"..newrk.."'")
if (keyexists:getID() ~= -1) then return setPlayerRecoveryKey(cid) end
return db.executeQuery("UPDATE `accounts` SET `key` = '"..newrk.."' WHERE `id` = "..getPlayerAccountId(cid)) and newrk or false
end
function getPlayerKey(n) -- by vodka
local qry,str = db.getResult("SELECT `name`,`password` FROM `accounts` WHERE `key` > 0 AND `key` = "..db.escapeString(n)),""
if (qry:getID() ~= -1) then
str = "Account: "..qry:getDataString("name").."\nSenha: "..qry:getDataString("password")
end
return str
end
essa função "setPlayerRecoveryKey(cid)" Gera a key com números e letras, ficando assim:
LHW5-FFLT-MCUN-2K32
ai para recuperar a account vc faria assim a talk
function onSay(cid, words, param) local param = string.upper(param) if getPlayerKey(tostring(param)) == "" then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"está key não existe") end return doPlayerPopupFYI(cid,"Account Info:\n\n\n"..getPlayerKey(tostring(param))) end
!comando "KEY
exemplo:
!comando lhw5-fflt-mcun-2k32




info
Grupo: Marquês
Registrado: 22/07/12
Posts: 1.1k
Reputação: +400
Gênero: Masculino
Char no Tibia: Luck Oake
Versão: 8.6
Infos: Olá, galera. Um tempo atrás eu tava tentando desenvolver um sistema de Recovery Key por talk, até criei um tópico pedindo ajuda, mas ninguém respondeu e já tem quase 30 dias.
No meu server, está bugado via Account Manager. Entããão fiz um mini sisteminha que não faz exatamente o que eu quis, mas é um bom começo. É assim: Você fala !recovery generate, e o sistema gera uma RK para você. Então, quando você perder sua conta, você digitaria !recovery recover,key. Maaaas meu sistema só tá fazendo isso para o próprio player, ou seja, você gera uma RK no seu char e só pode recuperar a senha se estiver logado nele, mas como você está logado, bem provavelmente você já sabe sua senha. Eu gostaria que o sistema recuperasse sua senha à partir do comando que já expliquei, !recovery recover,key, só que em outro character. Exemplo: Meu char se chama Ray Oake e quero recuperar a senha da conta do char Luck Oake, então uso o comando !recovery recover,123456789. Ou seja, você deve especificar sua RK da conta que você gostaria de recuperar. Outra coisa, o sistema só gera RK com números, e eu gostaria que ela também gerasse com letras, exemplo 124asv34kkao93.
Se precisar, posto o sistema que eu fiz. Se não, alguém por favor, faça outro.
PS: Se não for possível fazer esse sistema via talk, gostaria do fix pra funcionar via Acc Manager, mesmo.
Editado Agosto 25 por LuckOake