Ir para conteúdo

Featured Replies

Postado

Eae galera, estou com o seguinte problema: preciso de um script que, a cada 30 minutos todos os players online ganhem um determinado item:

Versão do OT: 10, TFS 1.2

 

Meu Script (globalevents):

 

local config = {
	items = {
		{itemId = 11219, 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

Erro:

[Warning - Event::checkScript] Can not load script: scripts/online.lua
data/globalevents/scripts/online.lua:16: 'then' expected near '='

Agradeço desde já!!

  • Respostas 5
  • Visualizações 926
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • tenta ai     

  • local config = { items = { {itemId = 11219, count = 1}, }, minLevel = 100 -- level minimo para receber os items } function onThink(interval) local players = Game.getPlayers() if #players ==

  • Alberto1997
    Alberto1997

    Não apareceu erros ao iniciar o server, mas depois apareceu isso: Lua Script Error: [GlobalEvent Interface] data/globalevents/scripts/online.lua:onThink data/globalevents/scripts/online.lua:17: at

Postado

tenta ai 

 

Citar

local config = {
    items = {
        {itemId = 11219, 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() > 100
            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 Antipush (veja o histórico de edições)

Postado
  • Autor
1 hora atrás, Antipush disse:

local config = {
    items = {
        {itemId = 11219, 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() > 100
            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

Mesmo erro :(

Postado
local config = {
	items = {
		{itemId = 11219, 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

 

Postado
  • Autor
41 minutos atrás, Sekk disse:

local config = { items = { {itemId = 11219, 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

Não apareceu erros ao iniciar o server, mas depois apareceu isso:

Lua Script Error: [GlobalEvent Interface]
data/globalevents/scripts/online.lua:onThink
data/globalevents/scripts/online.lua:17: attempt to index field 'rewards' (a nil value)
stack traceback:
        [C]: in function '__index'
        data/globalevents/scripts/online.lua:17: in function <data/globalevents/scripts/online.lua:9>
[Error - GlobalEvents::think] Failed to execute event: OnlinePoints

 

Edit:

Funcionou agora, retirei o 'rewards' e coloquei 'items', agora funcionou.

OBRIGADO!!

 

Para quem futuramente precisar do script:

 

local config = {
	items = {
		{itemId = 11219, 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.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

 

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

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

Informação Importante

Confirmação de Termo