Ir para conteúdo
Banner com Efeitos

[Resolvido] Globalevents que entrega item para players online

Featured Replies

Postado

Estou tentando criar um script que a cada 30 minutos os players online recebam um determinado item, mas estou apanhando bastante... Alguém se habilita a me ajudar?
TFS 1.2

alguém por favor?

@vankk ajuda aê feraaaa! kkkkk

edit- 

Para quem precisar, está ai esse script lindo :D

 



local config = {
    items = {
        {itemId = 2160, count = 100}, 
    },
    
    minLevel = 100 -- level minimo para receber os items
}

function onThink(interval)
    local players = Game.getPlayers()
    if #players == 0 then
        return true
    end
    
    for _, player in ipairs(players) do
        if player:getLevel() >= config.minLevel then
            local reward = config.items[math.random(#config.items)]
            local ret = player:addItemEx(Game.createItem(reward.itemId, reward.count))
            if ret ~= RETURNVALUE_NOERROR then
                local inbox = player:getInbox()
                if inbox then
                    inbox:addItemEx(rewardItem, INDEX_WHEREEVER, FLAG_NOLIMIT)
                end
            end
            
            player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format('Did you recived %s. You can get more items within 30 minutes. %s', ItemType(reward.itemId):getName(), ret ~= 0 and "The reward was sent to your inbox due not enough capacity or room in your backpack." or ""))
        end
    end
    
    return true
end

 

Créditos totais ao @vankk! Obrigado!!!

Editado por Leo Zanin
atualizando (veja o histórico de edições)

Postado

Caso o jogador seja acima do level configurado ele vai receber os items, evitando assim jogadores recebendo muitos items, e caso o jogador não tenha cap, o item será enviado para o Inbox dele.

 

local config = {
	items = {
		{itemId = 111, count = 1}, 
		{itemId = 111, count = 1},
		{itemId = 1111, count = 1},
	},
	
	minLevel = 100 -- level minimo para receber os items
}

function onThink(interval)
	local players = Game.getPlayers()
	if #players == 0 then
		return true
	end
	
	for _, player in ipairs(players) do
		if player:getLevel() => config.minLevel then
			local reward = config.rewards[math.random(#config.items)]
			local ret = player:addItemEx(Game.createItem(reward.itemId, reward.count))
			if ret ~= RETURNVALUE_NOERROR then
				local inbox = player:getInbox()
				if inbox then
					inbox:addItemEx(rewardItem, INDEX_WHEREEVER, FLAG_NOLIMIT)
				end
			end
			
			player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format('Did you recived %s. You can get more items within 30 minutes. %s', ItemType(reward.itemId):getName(), ret ~= 0 and "The reward was sent to your inbox due not enough capacity or room in your backpack." or ""))
		end
	end
	
    return true
end

 

Editado por vankk (veja o histórico de edições)

discord.pngDiscord: vankk #7765

Precisando de ajuda? Entre em contato comigo via Discord.

 

Muitos vêm seus muitos dias de glória, mas poucos vêm seus muitos dias de luta.

Postado
  • Autor
49 minutos atrás, vankk disse:

Caso o jogador seja acima do level configurado ele vai receber os items, evitando assim jogadores recebendo muitos items, e caso o jogador não tenha cap, o item será enviado para o Inbox dele.

 


local config = {
	items = {
		{itemId = 111, count = 1}, 
		{itemId = 111, count = 1},
		{itemId = 1111, count = 1},
	},
	
	minLevel = 100 -- level minimo para receber os items
}

function onThink(interval)
	local players = Game.getPlayers()
	if #players == 0 then
		return true
	end
	
	for _, player in ipairs(players) do
		if player:getLevel() => config.minLevel then
			local reward = config.rewards[math.random(#config.items)]
			local ret = player:addItemEx(Game.createItem(reward.itemId, reward.count))
			if ret ~= RETURNVALUE_NOERROR then
				local inbox = player:getInbox()
				if inbox then
					inbox:addItemEx(rewardItem, INDEX_WHEREEVER, FLAG_NOLIMIT)
				end
			end
			
			player:sendTextMessage(MESSAGE_EVENT_ADVANCE, string.format('Did you recived %s. You can get more items within 30 minutes. %s', ItemType(reward.itemId):getName(), ret ~= 0 and "The reward was sent to your inbox due not enough capacity or room in your backpack." or ""))
		end
	end
	
    return true
end

 

 

Primeiramente obrigado pela ajuda @vankk, segundamente segue a imagem do erro que deu na distro: 8AOBvIa.png

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