Ir para conteúdo
Propaganda

Posts Recomendados

  • Moderador

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.

 


 

 
  • Like 3
  • Thanks 3
Link para o comentário
https://tibiadevs.com/forums/topic/13-vip-system-tfs-141/
Compartilhar em outros sites

  • Administrador

Por favor, tente organizar melhor o tópico, utilize a ferramenta spoiler para códigos, muito obrigado pela contribuição.

  • Thanks 1
Link para o comentário
https://tibiadevs.com/forums/topic/13-vip-system-tfs-141/#findComment-49
Compartilhar em outros sites

@ uzze tópico na área errada, favor mover de

  • Like 1
Link para o comentário
https://tibiadevs.com/forums/topic/13-vip-system-tfs-141/#findComment-183
Compartilhar em outros sites

  • Administrador
6 horas atrás, VelhoBarreiro disse:

@ uzze tópico na área errada, favor mover de

Tópico movido, obrigado !

  • Like 1
Link para o comentário
https://tibiadevs.com/forums/topic/13-vip-system-tfs-141/#findComment-191
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
  • Criar Novo...