Ir para conteúdo

Featured Replies

Postado

base: 1.2

 

Boa noite TK! Então eu estou com um script de adicionar X dias de premium quando o player alcançar Y nível, mas tem um problema grave! Toda vez que o servidor reiniciar (mesmo dando save) se o player upar ele ganha mais X dias de premium.

arquivo.lua:
 

Spoiler

local config = {

level = 30,
days = 7

}

function onAdvance(player, oldlevel, newlevel)
if getPlayerLevel(player) >= config.level and getGlobalStorageValue(player:getAccountId(player)+321) <= 0 then
doPlayerAddPremiumDays(player, config.days)
setGlobalStorageValue(player:getAccountId(player)+321, 1)
doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você ganhou "..config.days.." dias de premium por alcançar level "..config.level.." em pelo menos um char de sua account. Você não irá ganhar de novo caso upe level "..config.level.." em outro char para pegar sua premium basta relogar.")
end
	
return true
end

 

Creaturescripts.xml:
 

Spoiler

<event type="advance" name="gainpalvl" script="gainpalvl.lua"/> 

 

login.lua

Spoiler

player:registerEvent("gainpalvl")

 

 

Resolvido por Vodkart

Ir para solução
  • Respostas 9
  • Visualizações 787
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Quero agradecer ao Vodkart, ricardo codenome e tataboy67 pela ajuda no tópico, muito obrigado! ate onde eu testei o sistema funcionou perfeitamente, testei primeiro com 2 personagens na mesma conta

  • executa no seu banco de dados:     ALTER TABLE `accounts` ADD `premiumgift` INT NOT NULL DEFAULT '0'   usa o script assim:   function getPremiumGift(player) local query

  • faltou fechar o id  > local query = db.storeQuery("SELECT `premiumgift` FROM `accounts` WHERE `id` = "..player:getAccountId())

Posted Images

Postado
local config = {

level = 30,
days = 7

}

function onAdvance(player, oldlevel, newlevel)
	if player:getLevel() >= config.level and player:getStorageValue(player:getAccountId(player)+321) <= 0 then
		doPlayerAddPremiumDays(player, config.days)
		player:setStorageValue(player:getAccountId(player)+321, 1)
		doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você ganhou "..config.days.." dias de premium por alcançar level "..config.level.." em pelo menos um char de sua account. Você não irá ganhar de novo caso upe level "..config.level.." em outro char para pegar sua premium basta relogar.")
	end
	return true
end

Testa ai, não fiz o teste !

Postado
  • Autor
14 minutos atrás, tataboy67 disse:

local config = {

level = 30,
days = 7

}

function onAdvance(player, oldlevel, newlevel)
	if player:getLevel() >= config.level and player:getStorageValue(player:getAccountId(player)+321) <= 0 then
		doPlayerAddPremiumDays(player, config.days)
		player:setStorageValue(player:getAccountId(player)+321, 1)
		doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você ganhou "..config.days.." dias de premium por alcançar level "..config.level.." em pelo menos um char de sua account. Você não irá ganhar de novo caso upe level "..config.level.." em outro char para pegar sua premium basta relogar.")
	end
	return true
end

Testa ai, não fiz o teste !

tudo bem tataboy? Então meu amigo o script funcionou parcialmente, quando o player tem mais de um char na conta todos que uparem o x level irão ganhar  mais y dias de premium, entretanto o erro que estava dando antes quando o servidor reiniciava o player podia upar mais 1 level que ganhava o bônus de premium novamente foi resolvido, agora quando o servidor da o save e reinicia o player não ganha mais os dias de premium.

Postado
9 minutos atrás, Navegante disse:

tudo bem tataboy? Então meu amigo o script funcionou parcialmente, quando o player tem mais de um char na conta todos que uparem o x level irão ganhar  mais y dias de premium, entretanto o erro que estava dando antes quando o servidor reiniciava o player podia upar mais 1 level que ganhava o bônus de premium novamente foi resolvido, agora quando o servidor da o save e reinicia o player não ganha mais os dias de premium.

Pera, eu não entendi muito bem...
Essa parte de adicionar o premium, você deve limitar para que o sistema de VIP só funcione em characters e não em accounts, sacou?
Vamos supor que um jogador faça uma Quest e pegue um item de VIP Days, ele usa e ganha 3 dias de vip em todos os Character's... Porem você tem de alterar o script de VIP, para que quando adicionar o VIP, ele adicione apenas em 1 char e não em toda a conta, entendeu?

Postado
  • Autor
26 minutos atrás, tataboy67 disse:

Pera, eu não entendi muito bem...
Essa parte de adicionar o premium, você deve limitar para que o sistema de VIP só funcione em characters e não em accounts, sacou?
Vamos supor que um jogador faça uma Quest e pegue um item de VIP Days, ele usa e ganha 3 dias de vip em todos os Character's... Porem você tem de alterar o script de VIP, para que quando adicionar o VIP, ele adicione apenas em 1 char e não em toda a conta, entendeu?

vamos la! O script foi criado pra funcioanar da seguinte formar.

quando o player alcançar nível 30 ele vai ganhar automaticamente 7 dias de Premium account, mas caso ele upei em outros chares e alcance o nivel 30 novamente ele nao irá ganhar os dias premium.

Não seria possível colocar uma storage na account do player, fazendo com que ele não ganhe novamente os dias de premium, nem upando outro char e nem quando servidor reiniciar?

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.6k

Informação Importante

Confirmação de Termo