Por
luanluciano93
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.
Posts Recomendados
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.