Ir para conteúdo

Featured Replies

Postado

A ideia é a seguinte: Preciso que, por exemplo, a alavanca que possui o unique id 1200 seja verificada com um global event onTime. Se ela tiver o id 1946 (alavanca para direita), o global event vai transformar ela em id 1945 (alavanca para a esquerda), com o mesmo uid.

 

Se for possivel criar um array com todas as unique ids que quero verificadas, e o script ir checando todas elas e fazendo as que estão como 1946 virarem 1945, seria perfeito.

 

Segue o que consegui fazer até agora:

Obs: O script também pega players com a storage 333333 == -1 (players que estão dentro da quest quando o global event é ativado) e enviam para a posição do templo. Mas essa parte já está funcionando ok. Só preciso mesmo corrigir a parte de transformar as alavancas com aqueles uids que estão no array.

 

 local function resetquests()
	
	local players = Game.getPlayers()
	if #players == 0 then
		return true
	end
	
	for _, player in ipairs(players) do
		if player:getStorageValue(333333) == -1 then
			local destination = {x=1070, y=1037, z=1}
			player:teleportTo(destination)
		return true
		end	
	end
	
	local alavancas = {
	1200, 1201, 1202, 1203, 1204, 1205, 1206, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 
	1250, 1251, 1252, 1253, 1254, 1255, 1256
	}
	
	for _, item.uid in ipairs(alavancas) do
		if item.id == 1946 then
			doTransformItem(item.uid,1945)
		return true
		end	
	end
	
	cleanMap()
	broadcastMessage("City quests resetadas e chao limpo.", MESSAGE_STATUS_DEFAULT)
end

function onTime()
	broadcastMessage("City quests serao resetadas e chao sera limpo em 1 minuto. Cuidado para nao perder itens.", MESSAGE_STATUS_WARNING)
	addEvent(resetquests, 1 * 60 * 1000)
	return true
end

 

 

  • Respostas 8
  • Visualizações 385
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    Pelo que me parece a ideia principal seria a alavanca voltar automaticamente depois de X tempo ...  Você teria duas alternativas ...  1 - Usar um addEvent no próprio script da alavanca. (não aco

  • luanluciano93
    luanluciano93

    local tabela = { Position(972,964,7), Position(972,964,7) } function onTime(interval) local posicao for i = 1, #tabela do if tabela[i] then posicao = Tile(tabela[i]):getItemById(1946) if

Postado

Pelo que me parece a ideia principal seria a alavanca voltar automaticamente depois de X tempo ... 

Você teria duas alternativas ... 

1 - Usar um addEvent no próprio script da alavanca. (não aconselho)
2 - Achar as alavancas pela posição delas ... Mais ou menos assim: 

local tabela = {
	[1000] = Position(1184, 1011, 13),
	[1001] = Position(1184, 1011, 13),
}

for _, itemUid in ipairs(tabela) do
	local posicao = tabela[itemUid]
	if posicao then
		local tile = posicao:getTile()
		if tile then
			local alavanca = tile:getItemById(1945)
			if alavanca then
				alavanca:transform(1946)
			end
		end
	end
end



 

Postado
  • Autor

Cara, como sempre você salvando a minha vida! É exatamente isso que preciso, pegar a alavanca pela posição.

 

Só tenho que alterar no teu código uma coisa, que é pra ele pegar a alavanca de ID 1946 e transformar pra ID 1945.

 

Vou testar agora mesmo e te digo se funcionou.

 

Outra coisa, preciso que a alavanca tenha um unique ID. Então se eu colocar 

alavanca:transform(1200, 1945)

 

Sendo 1200 o unique ID que quero q ela tenha, funciona?

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

Postado
2 horas atrás, luanluciano93 disse:

local alavanca = tile:getItemById(1945)

Aqui ele verifica se na posição existe um item desse ID ... 

2 horas atrás, luanluciano93 disse:

alavanca:transform(1946)

E aqui ele muda o item para este ID.

Creio que não seja preciso mexer com UID, pois naquela posição só vai existir aquela alavanca ...

Postado
  • Autor

Então, testei com o que tu mandou, e nada aconteceu. Não deu nenhume erro na distro mas a alavanca n foi modificada.

 

Preciso do UID porque pra entrar na quest é necessário que a alavanca tenha aquele UID (pro script que está em actions funcionar).

 

E a ideia é ele verificar se o ID é 1946 (alavanca já usada) e transformar em 1945 (alavanca não usada), o contrário do que tá ai. Por isso troquei.

Editado por MatCollier (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.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo