Ir para conteúdo

[Talk] Comprar Premium Por Dias


Posts Recomendados

Créditos no script.

 

Explicação: A talkaction de alguns otservers você não escolhe quantos dias de premium você deseja. E sim é algo pré-configurado no server. Então aqui neste script você escolhe quantos dias de premium você quer pagando 1k por cada dia dizendo !addpremium DIAS.

Exemplo: !addpremium 50 -- comprará 50 dias de p.a

Você não pode possuir mais que 360 dias de p.a então coloquei algumas checagens. Tal como adicionar mais de 360 dias de uma vez e também somando seus dias atuais com o tanto desejado assim se o resultado for maior que 360 aparecerá uma mensagem falando que não é possível junto ao número de dias que você poderá comprar calculado por 360 menos dias atuais.

 

Crie um arquivo LUA com o nome addpremium.lua em data/talkactions/scripts e ponha:

-- Author: Renato Ribeiro
-- Thanks for help: thalia, mkalo

function onSay(cid, words, param, channel)

local prm = tonumber(param)
local maxdays = 360
local precopordia = 1000

       if (prm == nil) then
               doSendMagicEffect(getPlayerPosition(cid), 2)
               return doPlayerSendCancel(cid, "Diga quantos dias deseja comprar.")
	elseif (prm == 0) then
			doSendMagicEffect(getPlayerPosition(cid), 2)
               return doPlayerSendCancel(cid, "Você não pode comprar 0 dias de premium.")
       elseif (prm > maxdays) then
			doSendMagicEffect(getPlayerPosition(cid), 2)
               return doPlayerSendCancel(cid, "Você não pode comprar mais que "..maxdays.." dias de premium de uma só vez.")
       else
               if getPlayerPremiumDays(cid)+prm > maxdays then
               doSendMagicEffect(getPlayerPosition(cid), 2)
			return doPlayerSendCancel(cid, "Você só pode ter "..maxdays.." dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")
               else
                       if getPlayerMoney(cid) >= prm*precopordia then
							doSendMagicEffect(getPlayerPosition(cid), 12)
							doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você comprou "..prm.." dias de premium account por "..prm*precopordia.." gold coins.")
                               doPlayerAddPremiumDays(cid, prm)
                               doPlayerRemoveMoney(cid, prm*precopordia)
                               return TRUE
                       else
                       doSendMagicEffect(getPlayerPosition(cid), 2)
					return doPlayerSendCancel(cid, "Você precisa de "..prm*precopordia .." gold coins para comprar "..prm.." dia(s) de premium.")
                       end
               end             
       end
end

 

Você pode trocar o maxdays pra o máximo de dias que se pode comprar e também pode trocar o precopordia pelo preço que ele vai pagar por cada dia de premy comprada.

 

 

• Depois em data/talkactions/talkactions.xml ponha a tag em qualquer lugar:


 

 

Testado e funcionando!

Editado por Lordfire
Link para o comentário
Compartilhar em outros sites

É, aqui olha:

 

...

       elseif (prm > maxdays) then
               return doPlayerSendCancel(cid, "Você não pode comprar mais que "..maxdays.." dias de premium de uma só vez.")
       else

...

               if getPlayerPremiumDays(cid)+prm > maxdays then
               return doPlayerSendCancel(cid, "Você só pode ter maxdays dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")

 

Poderiam ser substituídas por

 

if getPlayerPremiumDays(cid)+prm > maxdays then
               return doPlayerSendCancel(cid, "Você só pode ter maxdays dias de premium, no entanto você só poderá comprar no máximo "..maxdays-getPlayerPremiumDays(cid).." dias.")

 

Mas deixa assim, não faz diferença.

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...