Ir para conteúdo

Featured Replies

Postado
  • 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 por luanluciano93
TFS 1.3 E 1.2 (veja o histórico de edições)

  • Respostas 77
  • Visualizações 11.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    @andreoam, poste o que você tem em spoiler. 

  • @gangul321 Para colocar em spoiler siga esses passos.

  • luanluciano93
    luanluciano93

    tileVip.lua  function onStepIn(creature, item, position, fromPosition) local player = creature:getPlayer() if player == nil then return false end return player:isVip() and true or false e

Posted Images

Postado

Parabéns malandro!! Reputado!

Esse topete na foto ta mt massa HUAHUAHAUA

  • 2 weeks later...
Postado
  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

wq3bBzt.png
Pokémon Dust Evolution
 
É aonde começa sua nova aventura!! 

 

Facebook

 
Verifique Atualizações

 

  • 2 weeks later...

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