Ir para conteúdo
  • 0

Vip com Storage temporario.


adrianokk

Pergunta

estou com 2 scripts que da vip ao jogador.

 

1- Da Vip através da Loja,  Editei ele um pouco e deixei assim.

 Porem parece que os Storage não esta saindo sozinho com o tempo, preciso que o jogador perca o storage depois de 30 dias. 

pois estou utilizando o sistema de Storage para portas, pisos, Teleportes, XP bonos e outras coisas.
 

Spoiler


local a = { DAYS = 30 } -- Dias de Vip

function onSay(cid, words, param, channel)
	if  getPlayerStorageValue(cid, 225501) == 1 then
		return doPlayerSendTextMessage(cid, 20, "Você ja ainda possui VIP Account, espere o termino para ativar novamente!!")
and true
else
	if getPlayerItemCount(cid, 2145) < 15 then
		return doPlayerSendTextMessage(cid, 20, "Voce não tem 15 Gold Bars para realizar a compra.") 
and true
end
if getPlayerItemCount(cid, 2145) >= 15 then
	setPlayerStorageValue(cid, 225501, 1)    
	doPlayerAddPremiumDays(cid, a.DAYS)
	doPlayerRemoveItem(cid, 2145, 15)
	doPlayerSendTextMessage(cid, 20, "Voce recebeu "..a.DAYS.." dias de VIP Account!")
	doSendMagicEffect(getCreaturePosition(cid), 28)
return true
end
end
end

 

 

2- o Segundo Script  é Vip através de um Item.

também quero botar o mesmo sistema de Storage que depois de 30 dias o Storage sair do jogador.

Porem esse aqui ta um pouco mais bagudo. e não esta retirando o tem (17496) depois do jogador utilizar ele.

 

Spoiler

local a = { DAYS = 30 } ---Dias Vip

function onUse (cid, item, frompos, item2, topos, words, param)
    if  getPlayerStorageValue(cid, 225501) == 1 then
        return doPlayerSendTextMessage(cid, 20, "Voce ja ainda possui VIP Account, espere o termino para ativar novamente!!") 
and true
end
 if setPlayerStorageValue(cid, 225501, 1) then 
    doRemoveItem(cid, 17496, 1)
    doPlayerAddPremiumDays(cid, a.DAYS)
    doPlayerSendTextMessage(cid, 20, "Voce ativou 30 dias de VIP Account, com areas exclusiva, +30% EXP e outros beneficios!")
    doSendMagicEffect(getCreaturePosition(cid), 28)
return true
end
end

 

 

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
Em 27/04/2020 em 14:35, adrianokk disse:
Versão do Servidor:
Tipo de Script:
Código:
  Mostrar conteúdo oculto



 

estou com 2 scripts que da vip ao jogador.

 

1- Da Vip através da Loja,  Editei ele um pouco e deixei assim.

 Porem parece que os Storage não esta saindo sozinho com o tempo, preciso que o jogador perca o storage depois de 30 dias. 

pois estou utilizando o sistema de Storage para portas, pisos, Teleportes, XP bonos e outras coisas.
 

  Ocultar conteúdo



local a = { DAYS = 30 } -- Dias de Vip

function onSay(cid, words, param, channel)
	if  getPlayerStorageValue(cid, 225501) == 1 then
		return doPlayerSendTextMessage(cid, 20, "Você ja ainda possui VIP Account, espere o termino para ativar novamente!!")
and true
else
	if getPlayerItemCount(cid, 2145) < 15 then
		return doPlayerSendTextMessage(cid, 20, "Voce não tem 15 Gold Bars para realizar a compra.") 
and true
end
if getPlayerItemCount(cid, 2145) >= 15 then
	setPlayerStorageValue(cid, 225501, 1)    
	doPlayerAddPremiumDays(cid, a.DAYS)
	doPlayerRemoveItem(cid, 2145, 15)
	doPlayerSendTextMessage(cid, 20, "Voce recebeu "..a.DAYS.." dias de VIP Account!")
	doSendMagicEffect(getCreaturePosition(cid), 28)
return true
end
end
end

 

 

2- o Segundo Script  é Vip através de um Item.

também quero botar o mesmo sistema de Storage que depois de 30 dias o Storage sair do jogador.

Porem esse aqui ta um pouco mais bagudo. e não esta retirando o tem (17496) depois do jogador utilizar ele.

 

  Ocultar conteúdo


local a = { DAYS = 30 } ---Dias Vip

function onUse (cid, item, frompos, item2, topos, words, param)
    if  getPlayerStorageValue(cid, 225501) == 1 then
        return doPlayerSendTextMessage(cid, 20, "Voce ja ainda possui VIP Account, espere o termino para ativar novamente!!") 
and true
end
 if setPlayerStorageValue(cid, 225501, 1) then 
    doRemoveItem(cid, 17496, 1)
    doPlayerAddPremiumDays(cid, a.DAYS)
    doPlayerSendTextMessage(cid, 20, "Voce ativou 30 dias de VIP Account, com areas exclusiva, +30% EXP e outros beneficios!")
    doSendMagicEffect(getCreaturePosition(cid), 28)
return true
end
end

 

 

Eu refiz os scripts.

 

1º Script da Loja:

local storage_vipdays = 225501 -- VARIÁVEL QUE VERIFICA TUDO QUE É VIP
local dias_vip = 30 -- DIAS PARA SER VIP
local item = 2145 -- ITEM QUE REMOVE PARA DAR VIP
local quantidade_item = 15 -- QUANTIDADE DO ITEM QUE TORNA VIP

function onSay(cid, words, param, channel)
	if getPlayerStorageValue(cid, storage_vipdays) <= 0 then
		if getPlayerItemCount(cid, item) >= quantidade_item then
			doPlayerRemoveItem(cid, item, quantidade_item)
			doSendMagicEffect(getThingPos(cid), 28)
			doPlayerAddPremiumDays(cid, dias_vip)
			doPlayerSendCancel(cid, "Agora você é VIP Account!")
			doPlayerSendTextMessage(cid, 20, "Você recebeu " ..dias_vip.. " dias de VIP Account. Agora você terá +30% EXP, acesso à áreas exclusivas, e outros benefícios!")
			setPlayerStorageValue(cid, storage_vipdays, os.time() + dias_vip * 24 * 60 * 60)
		return true
		
		else
			return doPlayerSendTextMessage(cid, 20, "Você não tem " ..quantidade_item.. " " ..getItemNameById(item).. " para realizar a compra.") 
		end

	else	
		return doPlayerSendTextMessage(cid, 20, "Você ainda é VIP Account.")
	end	
end

 

2º Script do Item (Actions):

local storage_vipdays = 225501 -- VARIÁVEL QUE VERIFICA TUDO QUE É VIP
local dias_vip = 30 --DIAS PARA SER VIP

function onUse (cid, item, frompos, item2, topos, words, param)
	if getPlayerStorageValue(cid, storage_vipdays) <= 0 then
		doRemoveItem(item.uid, 1)
		doSendMagicEffect(getThingPos(cid), 28)
		doPlayerAddPremiumDays(cid, dias_vip)
		doPlayerSendCancel(cid, "Agora você é VIP Account!")
		doPlayerSendTextMessage(cid, 20, "Você recebeu " ..dias_vip.. " dias de VIP Account. Agora você terá +30% EXP, acesso à áreas exclusivas, e outros benefícios!")
		setPlayerStorageValue(cid, storage_vipdays, os.time() + dias_vip * 24 * 60 * 60)
	return true

	else	
		return doPlayerSendTextMessage(cid, 20, "Você ainda é VIP Account.")
	end	
end

 

Não esqueça de salvar o arquivo com codificação ANSI por conta dos acentos.

 

 

Sobre seu segundo post que me marcou:

5 horas atrás, adrianokk disse:

A distribuição de EXp para player normal e player Vip estão assim no servidor. @Yan18

 


function playerAddExp(cid, exp)
local vip = 2.37
local color = 215
local tets = " (EXP)"

e


if getPlayerStorageValue(cid, 123456) == 1 then
vip = 3,09
color = 210
tets = " (VIP)"
end

Mas se eu substituir por  essa, ele vai pegar normalmente ou esta errado ?
 


if getPlayerPremiumDays(cid) >= 1 then
vip = 3,09
color = 210
tets = " (VIP)"
end

 

Do jeito que você alterou vai dar errado amigo, pois para número real (float/double) em lua tem que usar o ".", pois a vírgula é usada para separação.

 

local exp = 3.09
local color = 210
local texto = " (VIP)"

if getPlayerPremiumDay(cid) > 0 then
	CÓDIGO AQUI
end

Eu arrumei aqui para você, não se essas variáveis da suas verificação já foram criadas, mas procure sempre usar local antes de variável criada quando ela será usada somente em um arquivo, pois sem "local" se torna variável global e se você criar outra variável com esse nome em outro arquivo pode dar conflito e dar problema.

 

Separei as variáveis para você e já coloquei os valores, só colocar no código, mas qualquer coisa posta o script que eu arrumo para você.

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

  • 0

A distribuição de EXp para player normal e player Vip estão assim no servidor. @Yan18

 

function playerAddExp(cid, exp)
local vip = 2.37
local color = 215
local tets = " (EXP)"

e

if getPlayerStorageValue(cid, 123456) == 1 then
vip = 3,09
color = 210
tets = " (VIP)"
end

Mas se eu substituir por  essa, ele vai pegar normalmente ou esta errado ?
 

if getPlayerPremiumDays(cid) >= 1 then
vip = 3,09
color = 210
tets = " (VIP)"
end

 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...