Jump to content

Recommended Posts

  • Replies 76
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Olá pessoal, estou desenvolvendo esse sistema vip para TFS 1.3, se precisarem de alguma função nova é só comentar, criei para usar em um servidor meu e resolvi postar, bom proveito a todos.   É

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

@gangul321 Para colocar em spoiler siga esses passos.

Posted Images

  • 2 weeks later...

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

 

Link to post
Share on other sites

  • 2 weeks later...

@, 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!

 

1634118_4.png

Link to post
Share on other sites

  • 2 weeks later...
  • 2 weeks later...
  • 2 weeks later...

Ou Luciano onde fica esse Global.lua nao achei mnw.

 

@cliverson, fica dentro da pasta data/

Isso é em tfs 1.0, se a versão do seu for menor não vai existir e nem vai adiantar tente usar esse script do modo que está agora caso a versão do seu servidor seja menor.

Edited by Snowsz (see edit history)
                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link to post
Share on other sites

  • 2 weeks later...

@Sartwood, depende da necessidade:
 

• player:doVipTime() - Retorna o valor do viptime em segundos (igual esta na database).
• player:isVip() Usa-se em algum script para verificar se o player é vip ou não.
• player:addVipTime(days) Usa-se em algum script para para adicionar dias de vip ao player (parâmetro de entrada "days")
• player:removeVipTime() - Usa-se em algum script para para remover todo tempo de vip do player.
• player:doVipDate(storage) Retorna uma mensagem no player mostrando a data que termina seu tempo de vip.

 

1634118_4.png

Link to post
Share on other sites

  • 5 weeks later...

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:doVipTime()
function Player.doVipTime(self)
	local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';")
	return resultId ~= false and result.getDataInt(resultId, "vip_time") or error('Account not found.')
end

-- player:isVip()
function Player.isVip(self)
	return self:doVipTime() > 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:doVipTime() + (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:removeVip()
function Player.removeVip(self)
	db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;")
end

-- player:doVipDate(storage)
function Player.doVipDate(self, storage)
	if self:isVip() then
		self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Your vip ends in '.. os.date("%d %b %Y", self:doVipTime()) ..'.')
		if self:getStorageValue(storage) < 1 then
			self:setStorageValue(storage, 1)
		end
	else
		if self:getStorageValue(storage) >= 1 then
			self:teleportTo(self:getTown():getTemplePosition())
			self:setStorageValue(storage, 0)
		end
	end
end 
As funções são:• player:doVipTime()

• player:isVip()

• player:addVipTime(days)

• player:removeVipTime()

• player:doVipDate(storage)

Qualquer dúvida ou erro/bug poste aqui.

Agora como que eu adicionou a Vip nos palyers pelo god e como que eu cologo pra vender a VIP pelo gesior?

Link to post
Share on other sites

Desculpe Luciano, sou super leigo no assunto.

 

No menu shop do meu gesior eu consigo adicionar itens para a venda. Tenho 3 opções nele, Itens, Mounts e Addons,

gostaria de criar uma nova aba para vender tempo de vip. por exemplo

 

Desculpe nao postar prints, o serv esta no meu pc de casa e estou sem net.

 

Itens       addons       Mounts       VIP

Item1      addon1      Mount1       5dias

Item2      addon2      Mount2       10dias

Item3      addon3      Mount3       30dias

 

E como que eu faço para colocar VIP nos player ingame.

Vc so posto o scrip para adicionar vip no serv. 

 

Nao tem que ter o scrip la do talkactions??

Edited by andreoam (see edit history)
Link to post
Share on other sites

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:doVipTime()
function Player.doVipTime(self)
	local resultId = db.storeQuery("SELECT `vip_time` FROM `accounts` WHERE `id` = '".. self:getAccountId() .."';")
	return resultId ~= false and result.getDataInt(resultId, "vip_time") or error('Account not found.')
end

-- player:isVip()
function Player.isVip(self)
	return self:doVipTime() > 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:doVipTime() + (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:removeVip()
function Player.removeVip(self)
	db.query("UPDATE `accounts` SET `vip_time` = '0' WHERE `id` ='".. self:getAccountId() .."' LIMIT 1 ;")
end

-- player:doVipDate(storage)
function Player.doVipDate(self, storage)
	if self:isVip() then
		self:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, 'Your vip ends in '.. os.date("%d %b %Y", self:doVipTime()) ..'.')
		if self:getStorageValue(storage) < 1 then
			self:setStorageValue(storage, 1)
		end
	else
		if self:getStorageValue(storage) >= 1 then
			self:teleportTo(self:getTown():getTemplePosition())
			self:setStorageValue(storage, 0)
		end
	end
end 

As funções são:

• player:doVipTime()

• player:isVip()

• player:addVipTime(days)

• player:removeVipTime()

• player:doVipDate(storage)

Qualquer dúvida ou erro/bug poste aqui.

 

Desculpe o icomodo, eu acho que devo esta quebrando alguma regra do forum, mas preciso muito deste sistema.

 

Nao ta faltando o talkactions para adicionar a vip nos players ingame??

Link to post
Share on other sites

@andreoam, amigo eu fiz as funções, você pode usar ela da forma que quiser: uma das maneiras é add a vip por talkaction.

Então amigo, os talkactions que eu tenho não funcionou com o seu sistema, sera que você poderia me mandar um?? Edited by andreoam (see edit history)
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Breno Alves
      Olá a todos, e estou de volta pra postar alguns conteúdos...
       
      Fui atrás de um online bonus system para tfs 1.3 e não achei e portanto decidi fazer o meu, com a ajuda do @vankk.
      ================================================================================================================
      Testado em TFS 1.3 na versão 8.60.
      ================================================================================================================

      ================================================================================================================
      No seu banco de dados, execute a seguinte query
      ALTER TABLE `players` ADD `online_time` int(11) NOT NULL DEFAULT 0 ================================================================================================================
      O próximo passo é apenas para quem gostaria de que, a cada server save, o número seja zerado!
      ================================================================================================================
      Em globalevents/scripts/startup.lua, após o inicio da função onStartup() adicione o seguinte código
      db.query("UPDATE `players` SET `online_time` = 0") ================================================================================================================
      Agora crie um arquivo chamado onlinebonus.lua em creaturescripts/scripts com isso dentro
      local event = {} local function addOnlineToken(playerId) local player = Player(playerId) if not player then return false end if player:getIp() == 0 then event[player:getId()] = nil return false end player:addOnlineTime(1) player:getPosition():sendMagicEffect(CONST_ME_GIFT_WRAPS) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "Você ganhou 1 online token por permanecer online por 1 hora sem deslogar.") player:addItem(12543, 1) event[player:getId()] = addEvent(addOnlineToken, 60 * 60 * 1000, player:getId()) end function onLogin(player) player:registerEvent("OnlineBonus") player:registerEvent("OnlineBonusLogout") if event[player:getId()] == nil then event[player:getId()] = addEvent(addOnlineToken, 60 * 60 * 1000, player:getId()) end return true end function onLogout(player) if event[player:getId()] then event[player:getId()] = nil end return true end -- <event type="login" name="OnlineBonus" script="onlineBonus.lua" /> -- <event type="logout" name="OnlineBonusLogout" script="onlineBonus.lua" /> A tag XML está no fim desse código.
      ================================================================================================================
      Agora, na pasta lib, crie um arquivo chamado onlineTime.lua e coloque isso dentro
      function Player.getOnlineTime(self) local resultId = db.storeQuery(string.format('SELECT online_time FROM `players` WHERE `id` = %d', self:getGuid())) if not resultId then return 0 end local value = result.getNumber(resultId, "online_time") result.free(resultId) return value end function Player.addOnlineTime(self, amount) db.query(string.format("UPDATE `players` SET `online_time` = `online_time` + %d WHERE `id` = %d", amount, self:getGuid())) end Não esqueça de registrar essa lib no lib.lua.
      ================================================================================================================
      Agora, na pasta talkactions/scripts, crie um arquivo chamado onlinebonus.lua com o seguinte código dentro:
      function onSay(player, words, param) local skill = player:getOnlineTime(player) local message = "--------[+]------- [Online Bonus System] -------[+]--------\n\nGanhe um online token a cada hora que você passa online sem deslogar.\n\n---------------------------------------------------\n Total\n Desde o server save você já ganhou " .. skill .. " online tokens." doPlayerPopupFYI(player, message) end -- <talkaction words="!onlinebonus" script="onlineBonus.lua"/> A tag XML está no fim desse código.
      ================================================================================================================
      O usuário irá receber um item a cada hora online sem deslogar.
      O item está no código de creaturescripts com o id 12543, que pode ser alterado para qualquer item que seja agrupável.
      ================================================================================================================
      É isso por hoje.
    • By danielduarte96
      Seguinte galera.. Eu dei uma procurada porém não encontrei. Eu gostaria de um item que desse vip (Vip permanente), e de quebra já queria o tile que a pessoa só passa caso seja vip.
       
      Agradeço desde já!
    • By pabloxp
      gostaria que alguem me ajuda-se!! queria 1 sistema ou script que o trenó (Sled) se movimentase qnd o char fica-se em cima dele e ele controlase o trenó para as direçoes segurando CTRL + a direção desejada
      +rep pra qm ajudar
    • By ADM Lucas OTBR
      Olá senhores,
       
       estou prestes a contratar o um VPS da empresa LGV Host. Li sobre a empresa e no geral falam que é uma boa.
       
       Enfim, a dúvida é a seguinte, qual sistema operacional utilizar.
       
       Hoje, eu faço os testes do meu servidor em Windows 8.1. Será que irá funcionar normalmente no Windos Server 2003/2008 ?
       
       Só preciso validar se o sistema do meu notebook é 64 ou 32 bits.
    • By lolksky
      Bom galera, o sisteminha é um pouquim complexo, mas vamos lá...
       
      Gostaria que todo dia 1°, às 12:00, abram 6 TPs no mapa.
      Esses tps devem ficar abertos por 12 horas, após esse horários eles desapareçam.
       
      Porém, há dois problemas:
      1° Um dos TPs só poderá ser acessado contendo 5 diferentes storages (o player tem que ter os 5).
      2° O player após entrar 1 vez em qualquer um dos TPs, ele só poderá entrar novamente em qualquer um dos tps na próxima vez que o evento iniciar, ou seja, no próximo dia 1.
       
      PS.: incluir mensagens informando que o evento inciou e os Tps abriram, quando os tps fecharem, que o player não pode entrar novamente no tp (caso já tenha entrado)
       
      Desde já agreço!
  • Recently Browsing   0 members

    No registered users viewing this page.



×
×
  • Create New...

Important Information

Confirmação de Termo