Ir para conteúdo

(Resolvido)Teleport aparecer Em X Local somente ao matar 2 ''boss'' Gerador.

Featured Replies

  • Respostas 9
  • Visualizações 1k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • Olá,   Eu fiz de modo bem simples, como tu não pediu nada de mais ^-^     <globalevent name="BossKing" interval="600" event="script" value="bossking.lua"/> -- interval=

  • daniel.braga989
    daniel.braga989

    @Pisces Olá, muito obrigado pela atenção. Porém eu já pesquisei melhor e encontrei 1 ideia do q fazer, em vez do ''boss'' spamar em 1 desses 2 lugar, eu coloquei alavancas nos 2 lado que queria, assim

  • daniel.braga989
    daniel.braga989

    Alguem ajuda ai rapaziada... to precisando muito plix.

Posted Images

Postado
  • Autor

@Vodkart Passa seu discord pois nao tenho. 

14 horas atrás, Vodkart disse:

e quem estiver na area matando o boss? fica lá? é teleportado? o boss some?

 

me chama discord

@Vodkarta ideia e de um castle que estou fazendo, queria que tivesse 2 geradores 1 na esquerda e outro na direita e assim que DESTRUIR os 2, nao importa qual for destruido primeiro, mas somente aparecer o TELEPORT no meio do castle quando os 2 forem destruidos. E esse teleporte duraria 10m aberto e depois fechar, e as guild que for morrendo dentro do TP vai ter q  voltar e destruir de novo os geradores.
image.thumb.png.1c737405a6f5da92caf4c93f5bc07cc7.png

Editado por daniel.braga989 (veja o histórico de edições)

  • daniel.braga989 mudou o título para Teleport aparecer Em X Local somente ao matar 2 ''boss'' Gerador.
Postado
  • Solução

Estou sem internet, por isso só consegui olhar hoje auhauha

 

Caso não tenha conseguido ainda, eu fiz uma Action (acredito que seja melhor). O jogador irá dar USE no item que tiver a actionid, se não tiver bosses vivos um portal será aberto, senão, uma mensagem aparecerá informando que ainda estão vivos. Eu coloquei alguns comentários no script, pra facilitar o entendimento.

 

As posições você vai pegar uma da ponta superior esquerda, e uma da ponta inferior direita. Utilizando sua imagem de exemplo:

 

https://i.imgur.com/OT8wbks.png

 

Crie um arquivo .lua dentro da pasta (Data > Actions > Scripts) , copie todo o código e cole no arquivo criado.

Spoiler


local monsters = {"Hero", "Apolo"} -- Nomes dos monstros para fazer a checagem se estão vivos.
local area = {		-- Do menor pro maior, assim como no exemplo abaixo:
	{x = 568, y = 525, z = 6}, -- Ponta superior Esquerda do mapa. (Primeira POS)
	{x = 577, y = 531, z = 6} -- Ponta inferior Direita do mapa. (Segunda POS)
} 

local config = {
	messages = {
		[1] = "O portal já está aberto, corra enquanto há tempo.",
		[2] = "Derrote todos os bosses para que o portal seja aberto."
	},
	toCreate = {x = 571, y = 526, z = 6}, -- Lugar que será criado o portal.
	toGo = {x = 573, y = 526, z = 5}, -- Lugar que o portal irá levar o jogador.
	id = 1387, -- ID do portal.
	eff = 10, -- Efeito ao criar o portal.
	time = 10 -- Tempo que o portal será fechado (em minutos).
}

local function getMonstersInArea(area, monsters)
	for x = area[1].x - 1, area[2].x + 1 do
		for y = area[1].y - 1, area[2].y + 1 do
			local pos = {x=x, y=y, z=area[1].z}
			local m = getTopCreature(pos).uid
			if m ~= 0 and isMonster(m) and isInArray(monsters, getCreatureName(m)) then
				return true
			end			
		end 
	end
	return false 
end

local function doRemoveTeleport()
	local effect = 10 -- Efeito ao remover o portal.
	local teleport = getTileItemById(config.toCreate, config.id)
	doSendMagicEffect(config.toCreate, effect)
	doRemoveItem(teleport.uid, 1)
end

function onUse(cid, item, frompos, item2, topos)
	if getTileItemById(config.toCreate, config.id).uid < 1 then
		if not getMonstersInArea(area, monsters) then
			doSendMagicEffect(config.toCreate, config.eff)
			doCreateTeleport(config.id, config.toGo, config.toCreate)
			addEvent(doRemoveTeleport, config.time * 60 * 1000)
		else
			doPlayerSendTextMessage(cid, 21, config.messages[2])
		end
	else
		doPlayerSendTextMessage(cid, 21, config.messages[1])
	end
	return true
end

 

 

Agora em actions.xml, adicione esta tag:

 

<action actionid="2683" event="script" value="nome do arquivo criado.lua"/> -- Em actionid="2683" coloque um valor que não esteja sendo utilizado

 

Após adicionar, este deve ser o resultado (RIP qualidade):

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

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

Estou sem internet, por isso só consegui olhar hoje auhauha

 

Caso não tenha conseguido ainda, eu fiz uma Action (acredito que seja melhor). O jogador irá dar USE no item que tiver a actionid, se não tiver bosses vivos um portal será aberto, senão, uma mensagem aparecerá informando que ainda estão vivos. Eu coloquei alguns comentários no script, pra facilitar o entendimento.

 

As posições você vai pegar uma da ponta superior esquerda, e uma da ponta inferior direita. Utilizando sua imagem de exemplo:

 

https://i.imgur.com/OT8wbks.png

 

Crie um arquivo .lua dentro da pasta (Data > Actions > Scripts) , copie todo o código e cole no arquivo criado.

  Mostrar conteúdo oculto




local monsters = {"Hero", "Apolo"} -- Nomes dos monstros para fazer a checagem se estão vivos.
local area = {		-- Do menor pro maior, assim como no exemplo abaixo:
	{x = 568, y = 525, z = 6}, -- Ponta superior Esquerda do mapa. (Primeira POS)
	{x = 577, y = 531, z = 6} -- Ponta inferior Direita do mapa. (Segunda POS)
} 

local config = {
	messages = {
		[1] = "O portal já está aberto, corra enquanto há tempo.",
		[2] = "Derrote todos os bosses para que o portal seja aberto."
	},
	toCreate = {x = 571, y = 526, z = 6}, -- Lugar que será criado o portal.
	toGo = {x = 573, y = 526, z = 5}, -- Lugar que o portal irá levar o jogador.
	id = 1387, -- ID do portal.
	eff = 10, -- Efeito ao criar o portal.
	time = 10 -- Tempo que o portal será fechado (em minutos).
}

local function getMonstersInArea(area, monsters)
	for x = area[1].x - 1, area[2].x + 1 do
		for y = area[1].y - 1, area[2].y + 1 do
			local pos = {x=x, y=y, z=area[1].z}
			local m = getTopCreature(pos).uid
			if m ~= 0 and isMonster(m) and isInArray(monsters, getCreatureName(m)) then
				return true
			end			
		end 
	end
	return false 
end

local function doRemoveTeleport()
	local effect = 10 -- Efeito ao remover o portal.
	local teleport = getTileItemById(config.toCreate, config.id)
	doSendMagicEffect(config.toCreate, effect)
	doRemoveItem(teleport.uid, 1)
end

function onUse(cid, item, frompos, item2, topos)
	if getTileItemById(config.toCreate, config.id).uid < 1 then
		if not getMonstersInArea(area, monsters) then
			doSendMagicEffect(config.toCreate, config.eff)
			doCreateTeleport(config.id, config.toGo, config.toCreate)
			addEvent(doRemoveTeleport, config.time * 60 * 1000)
		else
			doPlayerSendTextMessage(cid, 21, config.messages[2])
		end
	else
		doPlayerSendTextMessage(cid, 21, config.messages[1])
	end
	return true
end

 

 

Agora em actions.xml, adicione esta tag:

 



<action actionid="2683" event="script" value="nome do arquivo criado.lua"/> -- Em actionid="2683" coloque um valor que não esteja sendo utilizado

 

Após adicionar, este deve ser o resultado (RIP qualidade):

 

Testei aqui brother e está 100% funcionando, Fico muito grato por ter tirado um tempinho e vindo aqui da essa força, pois sei que o dia de voces e corrido. Obrigado <3 Sucesso pra tu.   (OBRIGADO A TODOS QUE TENTOU AJUDAR <3 AMO VOCES <3 )

 

Editado por daniel.braga989 (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 520.1k

Informação Importante

Confirmação de Termo