Ir para conteúdo

[Encerrado] Locker Protection


Ayron5

Posts Recomendados

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

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

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

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

  • 7 months later...
Visitante
Este tópico está impedido de receber novos posts.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...