Ir para conteúdo

Featured Replies

  • Respostas 7
  • Visualizações 661
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • USE ESTE SISTEMA: http://www.tibiaking.com/forum/topic/20589-vip-system-by-mock-100/   NO LUGAR DE `accounts` Você irá substituir por `players` , assim todos o sistema vip irá verificar a condição

  • Se quiser postar seu sistema a gente altera também. Mas creio que já seja o do mock então faça como nosso amigo ( Mythera) de cima citou.

Postado

Se ão tiver sido resolvido a dúvida poste seu sistema aqui.

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Postado
  • Autor

Boa tarde.

Conferindo com o tutorial indicado, é sim o sistema do Mock.
O arquivo data/creaturescrpits/scripts/fimvip.lua, o data/movements/scripts/viptile.lua não existem.
Em data/talkactions/scripts, nenhum dos arquivos citados existe (existe o addvip.lua, com apenas um 'p').
Os outros arquivos estão lá.

Devo concluir que o sistema de vip configurado aqui está incompleto? Nos nossos testes, conseguimos adicionar o tempo vip e o nome da conta mudou com o [VIP]. Só não testamos ainda se a conta deixa de ser vip após o tempo ter acabado.

Na função:

function vip.getVip(cid)
         assert(tonumber(cid),'Parameter must be a number')
         if isPlayer(cid) == FALSE then error('Player don\'t find') end;
         ae =  db.getResult("SELECT `vip_time` FROM `players` WHERE `name` = '"..getPlayerAccount(cid).."';")
         if ae:getID() == -1 then
            return 0
         end
local retee = ae:getDataInt("vip_time") or 0
ae:free()
         return retee
end

Posso substituir a condição WHERE para procurar logo pelo id e passar o cid no parâmetro?
Assim: ae =  db.getResult("SELECT `vip_time` FROM `players` WHERE `id` = 'cid';")

E também na função:
function vip.setVip(cid,time)
         dofile("config.lua")
         assert(tonumber(cid),'Parameter must be a number')
         assert(tonumber(time),'Parameter must be a number')
         if isPlayer(cid) == FALSE then error('Player don\'t find') end;
         db.executeQuery("UPDATE `"..sqlDatabase.."`.`accounts` SET `vip_time` = '"..(os.time()+time).."' WHERE `accounts`.`name` ='".. getPlayerAccount(cid).."';")
end

Ficar assim: db.executeQuery("UPDATE `"..sqlDatabase.."`.`players` SET `vip_time` = '"..(os.time()+time).."' WHERE `players`.`id` ='cid';")


Quando vocês falam em postar o sistema aqui, devo enviar toda a pasta 'data'?

Apenas para efeito de curiosidade, qual a diferença dessas duas funções? Não entendi a lógica do "or 0".
function vip.hasVip(cid)
         assert(tonumber(cid),'Parameter must be a number')
         if isPlayer(cid) == FALSE then return end;
         local t = vip.getVip(cid) or 0
         if os.time(day) < t then
            return TRUE
         else
            return FALSE
         end
end

function vip.hasVips(cid)
         assert(tonumber(cid),'Parameter must be a number')
         if isPlayer(cid) == FALSE then return end;
         local t = vip.getVip(cid)
         if os.time(day) < t then
            return TRUE
         else
            return FALSE
         end
end

 

Agradeço desde já a atenção.

Abraços.

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo