Postado Janeiro 15, 2015 10 anos Este é um post popular. Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.x, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos. É só ir no arquivo data/lib/core/player.lua e adicionar esse código no começo do script: -- ALTER TABLE `accounts` ADD `vip_time` BIGINT(20) NOT NULL DEFAULT 0; -- player:getVipTime() function Player.getVipTime(self) local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") local time = resultId ~= false and result.getNumber(resultId, "vip_time") or 0 result.free(resultId) return time end -- player:isVip() function Player.isVip(self) return self:getVipTime() > os.time() and true or false end -- player:addVipDays(days) function Player.addVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVipDays(days) function Player.removeVipDays(self, days) return(self:isVip() and tonumber((days * 86400))) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:getVipTime() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:setVipDays(days) function Player.setVipDays(self, days) return db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() - (days * 86400)) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:removeVip() function Player.removeVip(self) db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:sendVipDaysMessage() function Player.sendVipDaysMessage(self) if self:isVip() then local vipTime = self:getVipTime() - os.time() local vipDays = 1 + (math.floor(vipTime / 86400)) return self:getVipTime() ~= false and self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'You have '.. vipDays .. ' vip day(s) in your account.') end end -- player:checkVipLogin() function Player.checkVipLogin(self) if self:getVipTime() > 0 and not self:isVip() then return self:removeVip() and self:teleportTo(self:getTown():getTemplePosition()) end end As funções são: • player:getVipTime() - Retorna o valor da tabela vip_time (igual esta na database). • player:isVip() - Retorna se o player é vip ou não. • player:addVipDays(days) - Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days"). • player:removeVipDays(days) - Usa-se em algum script para para remover dias de vip do player (parâmetro de entrada "days"). • player:setVipDays(days) - Usa-se em algum script para para mudar os dias de vip do player (parâmetro de entrada "days"). • player:removeVip() - Usa-se em algum script para para remover todo tempo de vip do player. • player:sendVipDaysMessage() - Retorna uma mensagem no player mostrando os dias de vip que ainda restam ao player. • player:checkVipLogin() - Checa se a vip do player acabou, se sim teleporta ele para o templo. Qualquer dúvida ou erro/bug poste aqui. Editado Março 10, 2022 3 anos por luanluciano93 TFS 1.3 E 1.2 (veja o histórico de edições) STYLLER OT 2022
Postado Janeiro 15, 2015 10 anos Parabéns malandro!! Reputado! Esse topete na foto ta mt massa HUAHUAHAUA "A coisa mais indispensável a um homem é reconhecer o uso que deve fazer do seu próprio conhecimento." Ajudei? Reputar não vai te matar E Ainda me incentiva muito a continuar ajudando a todos! Meus trabalhos: [TUTORIAL] Quando preocupar-se com as cores? - Spriting [TUTORIAL] Pedras e Rochas - Spriting [APOSTILAS] Cores e sua parte Teórica - Spriting [TUTORIAL] Entendendo o Básico sobre cores - Spriting [TUTORIAL] Spriting, por onde começar? [TUTORIAL] Coisas para evitar - Spriting [TUTORIAL] Usando e Escolhendo Cores - Spriting [TUTORIAL] Pensando em Cores - Spriting [TUTORIAL] Adicionando novos Pokémons em seu PDA com e sem Icon System [TUTORIAL] [OLD/OTC] Criando link de Download Direto para seu cliente! Meu Show-off Thayam's Show Off
Postado Janeiro 27, 2015 10 anos Em 15/01/2015 em 23:28, luanluciano93 disse: Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.1, ainda não acabei, se precisarem de alguma função nova é só comentar, criei para usar em um servidor teste meu e resolvi postar, bom proveito a todos. Basta criar um arquivo em libs com o nome de vip_system.lua e depois em global.lua (dentro do datapack do servidor - pode ser na primeira linha do arquivo), coloque o seguinte código: dofile('data/libs/vip_system.lua') E dentro do arquivo vip_system.lua que você criou em libs add o seguinte código: ------------------------------------------------------------------ -----------------[[ VIP SYSTEM POR LUANLUCIANO ]]----------------- ------------------------------------------------------------------ -- player:VipTime() function Player.VipTime(self) local resultId = db.storeQuery("SELECT `id`, `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';") return resultId ~= false and result.getDataInt(resultId, "vip_time") or error('Account not found.') end -- player:getVipTime() function Player.getVipTime(self) return self:VipTime() - os.time() > 0 and self:VipTime() - os.time() or false end -- player:isVip() function Player.isVip(self) return self:VipTime() - os.time() > 0 and true or false end -- player:AddVipTime() function Player.AddVipTime(self, days) local seconds = days * 86400 return (self:isVip() and tonumber(seconds)) and db.query("UPDATE `accounts` SET `vip_time` = '".. (self:VipTime() + seconds) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or db.query("UPDATE `accounts` SET `vip_time` = '".. (os.time() + seconds) .."' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") end -- player:RemoveVipTime() function Player.RemoveVipTime(self) return self:VipTime() ~= false and db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;") or false end -- player:VipDate() function Player.VipDate(self) return os.date("%d %b %Y %X", self:getVipTime()) end As funções são: • player:VipTime() • player:getVipTime() • player:isVip() • player:AddVipTime(days) • player:RemoveVipTime() • player:VipDate() Qualquer dúvida ou erro/bug poste aqui. poderia coloca para o vip system durar para sempre no char e tbm vender ele por npc ?? por certos items que vou configurar se puder vlw ganha o resto de rep+ do meu dia ainda não dei rep+ para ninguem hj Pokémon Dust Evolution É aonde começa sua nova aventura!! Facebook Verifique Atualizações
Postado Fevereiro 8, 2015 10 anos Autor @, para os dois casos que você pediu é só usar a função player:AddVipTime(days), é bem simples. Pessoal, atualizei o código, melhorei algumas funções e retirei uma que se tornou desnecessária. Qualquer dúvida postem ai! STYLLER OT 2022
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.