Ayron5 40 Postado Abril 6, 2017 Share Postado Abril 6, 2017 Estou usando o Locker Protection do @MaXwEllDeN e estou com uns probleminhas aqui. Crio uma senha normal e quando tento troca-la não consigo, só consigo remove-la. Quando crio senhas com letras maiúsculas não da para remover ou troca-las(o mesmo acontece se colocar números na senha). Teria como fazer algum sistema de recuperação de senha ? Uso tfs 0.3.6 Rep para quem ajudar actions Spoiler --[[ Protect Locker System Author: MaXwEllDeN Version: 1.0 ]] function onUse(cid, item, fromPosition, itemEx, toPosition) if (getPlayerStorageValue(cid, 96475) ~= getPlayerStorageValue(cid, 96474)) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Seu locker está trancado. Para abrir ele, digite !locker pass(substituindo pass pela sua senha).") return true end if (getPlayerStorageValue(cid, 96474) == -1) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Seu locker está desprotegido, para mais informações de como protejer seu locker digite: !locker") end end creaturescripts Spoiler --[[ Protect Locker System Author: MaXwEllDeN Version: 1.0 ]] function onLogin(cid) setPlayerStorageValue(cid, 96475, -1) return true end movements Spoiler --[[ Protect Locker System Author: MaXwEllDeN Version: 1.0 ]] function onStepOut(cid, item, pos) setPlayerStorageValue(cid, 96475, -1) return true end talkactions Spoiler --[[ Protect Locker System Author: MaXwEllDeN Version: 1.0 ]] function doFindItemInPos(ids,pos) -- By Undead Slayer local results = {} for _ = 0, 255 do local findPos = {x = pos.x, y = pos.y, z = pos.z, stackpos = _} if isInArray(ids, getThingFromPos(findPos).itemid) then table.insert(results, getThingfromPos(findPos)) end end return results end function isItemInRange(cp, range, ids) local extr1 = {x = cp.x - range, y = cp.y -range, z = cp.z} local extr2 = {x = cp.x + range, y = cp.y + range, z = cp.z} for i = 1, (extr2.y-extr1.y)+1 do for s = 1, (extr2.x-extr1.x)+1 do local f = {x=extr1.x+s-1, y=extr1.y+i-1, z=extr1.z, stackpos=0} local posz = doFindItemInPos(ids, f) if (#posz > 0) then return true end end end return false end function onSay(cid, words, param) local help = "Max Locker Protect System ~~\n\n* Criando uma senha: \nPara criar uma senha digite: ".. words .." pass, senha. Substituindo senha pela senha que você quer criar!\n\n*Modificando uma senha: ".. words .." passchange senhaantiga, nova. Substituindo senhaantiga pela sua senha antiga e nova pela sua nova senha.\n\n*Removendo sua senha \n Para remover sua senha digite: ".. words .. " remove, senha(substituindo senha pela sua senha atual)." local param2 = string.explode(param, ",") if not(isItemInRange(getThingPos(cid), 1, {2589, 2590, 2591, 2592})) then return doPlayerSendCancel(cid, "Você deve estar perto de um locker para poder usar o sistema.") end if not(param2[1]) then elseif (param2[1] == "pass") then if (getPlayerStorageValue(cid, 96474) ~= -1) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você já estabeleceu uma senha para seu locker!") end if not(param2[1]) then return doShowTextDialog(cid, 2591, help) end setPlayerStorageValue(cid, 96474, tostring(param2[2])) return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha é: ".. tostring(param2[2])) elseif (param2[1]:lower() == tostring(getPlayerStorageValue(cid, 96474))) then local tile = getThingPos(cid) tile.stackpos = 0 local tile = getThingFromPos(tile) doItemSetAttribute(tile.uid, "aid", 96475) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Seu locker está aberto.") return setPlayerStorageValue(cid, 96475, param) elseif (param2[1]:lower() == "passchange") then if not (param2[3]) then return doShowTextDialog(cid, 2591, help) end if (getPlayerStorageValue(cid, 96474) ~= -1) and (param2[2] ~= tostring(getPlayerStorageValue(cid, 96474))) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Digite a sua senha atual corretamente!") end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha foi mudada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".") return setPlayerStorageValue(cid, 96474, tostring(param2[3])) elseif (param2[1]:lower() == "remove") then if (getPlayerStorageValue(cid, 96474) == -1) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Você não tem senha para remover!") end if not (param2[2]) then return doShowTextDialog(cid, 2591, help) end if (getPlayerStorageValue(cid, 96474) ~= -1) and (param2[2] ~= getPlayerStorageValue(cid, 96474)) then return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Digite a sua senha atual corretamente!") end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha foi removida!") return setPlayerStorageValue(cid, 96474, -1) end return doShowTextDialog(cid, 2591, help) end Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Abril 10, 2017 Share Postado Abril 10, 2017 eu testei e mudei a senha normal, e para vc recuperar a senha esquecida faz um select e retorna o valor se pode colocar em um item e fazer pro god ai fica na sua imaginação. function getPlayerRetornaStorage(cid) if not isCreature(cid) then return 0 end local pid = getPlayerGUID(cid) local query = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = "..pid.." and `key` = 96474") if query:getID() == -1 then return 0 end return query:getDataInt("value") end Link para o comentário Compartilhar em outros sites More sharing options...
Ayron5 40 Postado Abril 10, 2017 Autor Share Postado Abril 10, 2017 1 hora atrás, nociam disse: eu testei e mudei a senha normal, e para vc recuperar a senha esquecida faz um select e retorna o valor se pode colocar em um item e fazer pro god ai fica na sua imaginação. function getPlayerRetornaStorage(cid) if not isCreature(cid) then return 0 end local pid = getPlayerGUID(cid) local query = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = "..pid.." and `key` = 96474") if query:getID() == -1 then return 0 end return query:getDataInt("value") end Onde coloco essa parte? Link para o comentário Compartilhar em outros sites More sharing options...
nociam 90 Postado Abril 10, 2017 Share Postado Abril 10, 2017 Essa parte se coloca em qualquer arquivo na lib, ai faz um item que ao clicar ele recupera a senha chamando essa função. Link para o comentário Compartilhar em outros sites More sharing options...
Ayron5 40 Postado Abril 10, 2017 Autor Share Postado Abril 10, 2017 6 horas atrás, nociam disse: eu testei e mudei a senha normal, e para vc recuperar a senha esquecida faz um select e retorna o valor se pode colocar em um item e fazer pro god ai fica na sua imaginação. function getPlayerRetornaStorage(cid) if not isCreature(cid) then return 0 end local pid = getPlayerGUID(cid) local query = db.getResult("SELECT `value` FROM `player_storage` WHERE `player_id` = "..pid.." and `key` = 96474") if query:getID() == -1 then return 0 end return query:getDataInt("value") end Obg ^^ Rep 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