Ir para conteúdo
  • Cadastre-se

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

 

@xWhiteWolf @Adriano SwaTT Ajudinha? please ^^ 

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites

Up! ? .-. 

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites

Estou em dívida pra ver pra você esse cod..

 

Só que foi uma correria esses últimos dias, peço perdão, hoje mesmo só cheguei agora em casa, minha noiva está muito ruim e foi para o Hospital, etc..

 

Hoje não durmo aqui, então provavelmente não terei tempo de ver pra você.

 

Mas caso, até quarta-feira, alguém não tenha feito ainda, dou uma olhada.

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

@Adriano SwaTT Boa noite amigo agradeço a atenção e melhoras pr sua noiva mano, Deus vai ajudar vcs ^^ 

E sim posso aguardar tranquilamente, espero por boas noticias na próxima que Deus abençoe! abraço. 

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites
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 -- CRIANDO SENHA
      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 -- MUDANDO SUA SENHA
      if not (param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if (getPlayerStorageValue(cid, 96474) ~= -1) and (tostring(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 alterada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".")
      return setPlayerStorageValue(cid, 96474, tostring(param2[3]))


    elseif (param2[1]:lower() == "remove") then -- REMOVENDO SUA SENHA
      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

 

 

 

Teste assim

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
1 hora atrás, Adriano SwaTT disse:
  Mostrar conteúdo oculto


--[[
    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 -- CRIANDO SENHA
      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 -- MUDANDO SUA SENHA
      if not (param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if (getPlayerStorageValue(cid, 96474) ~= -1) and (tostring(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 alterada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".")
      return setPlayerStorageValue(cid, 96474, tostring(param2[3]))


    elseif (param2[1]:lower() == "remove") then -- REMOVENDO SUA SENHA
      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

 

 

 

Teste assim

Tou usando de boa *-* só mais uma coisa... kk tem como por para não aceitar senha com letra maiúscula e números? (Utilize apenas letras minusculas)  

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites
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 -- CRIANDO SENHA
      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]:upper()))
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha é: ".. tostring(param2[2]))

    elseif (param2[1]:upper() == 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 -- MUDANDO SUA SENHA
      if not (param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if isNumber(param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if (getPlayerStorageValue(cid, 96474) ~= -1) and (tostring(param2[2]:upper()) ~= 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 alterada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".")
      return setPlayerStorageValue(cid, 96474, tostring(param2[3]:upper()))


    elseif (param2[1]:lower() == "remove") then -- REMOVENDO SUA SENHA
      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

 

Teste.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
1 hora atrás, Adriano SwaTT disse:
  Mostrar conteúdo oculto


--[[
    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 -- CRIANDO SENHA
      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]:upper()))
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha é: ".. tostring(param2[2]))

    elseif (param2[1]:upper() == 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 -- MUDANDO SUA SENHA
      if not (param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if isNumber(param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if (getPlayerStorageValue(cid, 96474) ~= -1) and (tostring(param2[2]:upper()) ~= 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 alterada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".")
      return setPlayerStorageValue(cid, 96474, tostring(param2[3]:upper()))


    elseif (param2[1]:lower() == "remove") then -- REMOVENDO SUA SENHA
      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

 

Teste.

Amigo ta tenso kk veja 

Spoiler

Usando letra Maiuscula:

13:44 Sua senha é: Ayron --- cria normal
13:44 Seu locker está aberto.--- diz que está aberto mas não abre o DP, mas se eu colocar AYRON ele abre .-. 
13:47 Digite a sua senha atual corretamente! --- ao tentar remover ela(não remove) se eu colocar pr remover AYRON ele remove .-. 

Usando numeros: 

13:49 Sua senha é: 123 --- cria normal
13:49 Seu locker está aberto.--- abre o Dp
13:50 Digite a sua senha atual corretamente! --- ao tentar remover ela(não remove)

E ainda da pr criar senha mista tipo: ayron2, Ayron2 kk 

 

Caso a senha mista criando ela ayron123 quando vai abrir o DP ele diz que está aberto mas não abre... se eu colocar AYRON123 ele abre .-.  pequenos conflitos eu acho. 

Dá pr simplificar? e colocar para criar senhas apenas com letras minusculas? se tentar com letra maiuscula cancela, com numeros cancela, mista cancela ^^ 

Estou incomodando muito, Não tenha pressa kk 

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites

Então, vou dar uma olhada nas funções LUA.. porque até agora sempre usei para tornar frases maiusculas e/ou minusculas e tals..

Tem que ver quais funções a distro nos libera para criar.

 

Sobre criar com número.

 

Mas teste:

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 -- CRIANDO SENHA
      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
      if isNumber(param2[2]) then
         return doShowTextDialog(cid, 2591, help)
      end
      setPlayerStorageValue(cid, 96474, tostring(param2[2]:upper()))
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha é: ".. tostring(param2[2]:upper()))

    elseif (param2[1]:upper() == tostring(getPlayerStorageValue(cid, 96474):upper())) then -- ACESSANDO LOCKER
      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 -- MUDANDO SUA SENHA
      if not (param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if isNumber(param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if (getPlayerStorageValue(cid, 96474) ~= -1) and (tostring(param2[2]:upper()) ~= 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 alterada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".")
      return setPlayerStorageValue(cid, 96474, tostring(param2[3]:upper()))


    elseif (param2[1]:lower() == "remove") then -- REMOVENDO SUA SENHA
      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

 

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
22 horas atrás, Adriano SwaTT disse:

Então, vou dar uma olhada nas funções LUA.. porque até agora sempre usei para tornar frases maiusculas e/ou minusculas e tals..

Tem que ver quais funções a distro nos libera para criar.

 

Sobre criar com número.

 

Mas teste:

  Mostrar conteúdo oculto


--[[
    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 -- CRIANDO SENHA
      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
      if isNumber(param2[2]) then
         return doShowTextDialog(cid, 2591, help)
      end
      setPlayerStorageValue(cid, 96474, tostring(param2[2]:upper()))
      return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Sua senha é: ".. tostring(param2[2]:upper()))

    elseif (param2[1]:upper() == tostring(getPlayerStorageValue(cid, 96474):upper())) then -- ACESSANDO LOCKER
      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 -- MUDANDO SUA SENHA
      if not (param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if isNumber(param2[3]) then
         return doShowTextDialog(cid, 2591, help)
      end
      if (getPlayerStorageValue(cid, 96474) ~= -1) and (tostring(param2[2]:upper()) ~= 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 alterada de ".. getPlayerStorageValue(cid, 96474) .." para ".. param2[3] ..".")
      return setPlayerStorageValue(cid, 96474, tostring(param2[3]:upper()))


    elseif (param2[1]:lower() == "remove") then -- REMOVENDO SUA SENHA
      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

 

Então brother, tá pegando legal aqui ^^ Obg pela ajuda.

Sobre o sistema de recuperação de senha, tem algo em mente? ou seria impossível nesse caso? 

 

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites

Bro, seguinte..


Para recuperar a senha, teria que ter algum outro código de segurança para comprovar que é o player no char.

 

Mas algo como, comprovar a account name e/ou password, não seria muito útil, pois se o cara já conseguiu acessar o personagem, provavelmente ele já tenha essas informações.

 

Pense em algo, ou coloque um custo em gps, sei lá.. amadureça a ideia e poste aqui para trabalharmos na ideia e eu crio o código pra você.

 

Boa sorte com seu projeto.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites
19 horas atrás, Adriano SwaTT disse:

Bro, seguinte..


Para recuperar a senha, teria que ter algum outro código de segurança para comprovar que é o player no char.

 

Mas algo como, comprovar a account name e/ou password, não seria muito útil, pois se o cara já conseguiu acessar o personagem, provavelmente ele já tenha essas informações.

 

Pense em algo, ou coloque um custo em gps, sei lá.. amadureça a ideia e poste aqui para trabalharmos na ideia e eu crio o código pra você.

 

Boa sorte com seu projeto.

A ideia é boa kk ...  para recuperar a senha esquecida faz um select e retorna o valor, vc pode colocar em um item e fazer pro god ai fica na sua imaginação.

A função vai ficar em um arquivo na lib, ai faz um item que ao clicar ele recupera a senha chamando essa função.  Já temos uma iniciativa ^^ 

 

Função:

Spoiler

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

 

 

                                                                             1535210279_tumblr_o9b6yoxM1Z1tco8kto1_500(3).gif.f527686e19da738322c39555244decac.gif

                                                             Meus tópicos         

                                                         Se ajudei você deixe seu Rep! para fortalecer a amizade ^^

                                                                              Vamos ajudar o fórum a crescer mais.

                                                                          1641206641_gif-escudo-fla-3d(1).gif.a5d3c0c24824d5272a181aa91c5eda0c.gif

                                                                                                Mengão porra! . .

                                                                     tumblr_oxm8eriUeU1sqwgnro2_400.gif.22e347b2fc58fdfd88dbf84f4bdaa1bc.gif

                                                                                ----- NPC que vende informação -----

                                                                           -----Baú Que dá Outfit se tiver Level -----

                                                                     ----- [Npc] Que vende Stones (itens) por diamonds -----

 

 

                                                                       

                       

Link para o post
Compartilhar em outros sites

Bom dia,

 

Brother, o problema em si não é como retornar valores, etc..

 

O problema seria criar algo que mantivesse a segurança para continuar fazendo sentido o Locker, porque se for tão simples de recuperar, qualquer pessoa que acesse a conta poderá recuperar a senha e roubar os itens do depot.

 

Precisa desenvolver algo que apenas o proprietário da conta consiga recuperar essa senha posteriormente.

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo