Ir para conteúdo
  • Cadastre-se

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


Ir para solução Resolvido por Kyle Bellini,

Posts Recomendados

Rapaziada estou precisando de um script que faça SOMENTE 1  boss, aparecer a cada 10 minutos  em 1 das posição  abaixo.

Ex: Position: [X: 44] [Y: 171] [Z: 7]  (ESquerda )  and  Position: [X: 65] [Y: 151] [Z: 7].  (Direita)

Exemplo> 10m sumoona um boss na esquerda,   + 10m sumona um boss na direita, pode até repetir a posição mais de 1 vez  desde que  nao nasça  sempre na mesma posição.

Resumindo> uma script com % do boss nascer na esquerda ou na direita a cada 10m.

Estarei dando reep++ quem conseguir ajudar aii, to precisando muito rapaziada.

 

Editado por daniel.braga989 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Olá,

 

Eu fiz de modo bem simples, como tu não pediu nada de mais ^-^

 

Spoiler

local config = {
    places = {
        [1] = {x = 543, y = 505, z = 7},
        [2] = {x = 539, y = 505, z = 7}
    },
    message = "O grande Ferumbras acaba de invadir a cidade.",
    monster = "Ferumbras"
}
function onThink(interval)
    doCreateMonster(config.monster, config.places[math.random(1,2)])
    doBroadcastMessage(config.message)
    return true
end

 

 

<globalevent name="BossKing" interval="600" event="script" value="bossking.lua"/> -- interval="aqui é o tempo em segundos(600seg = 10 min)"-->

 

Link para o post
Compartilhar em outros sites

@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 quando a guild for em uma das 2 posição e so click na alavanca  q o ''boss'' vai nascer.

 

local time = 780 -- tempo em segundos para usar
local monster = "Craby" -- "Monstro" entre aspas
local pos = {x = 42, y = 172, z = 7} -- Posição que irá nascer.

function onUse(cid, item, frompos, itemex, topos)

if item.itemid % 2 == 1 then
doTransformItem(item.uid, item.itemid + 1)
else
doTransformItem(item.uid, item.itemid + -1)
end

if getStorage(1249) - os.time() < 1 then
     doSetStorage(1249, os.time() + time)
     addEvent(function() doCreateMonster(monster, pos) end, 10000)
     doCreatureSay(cid, "In 10 seconds the boss will appear.", TALKTYPE_MONSTER)
else
doPlayerSendCancel(cid, "You need wait ".. getStorage(1249) - os.time() .." seconds to use again")
     doSendMagicEffect(getThingPos(cid), CONST_ME_POFF)
    end    
return true

end


Teria como voce ou alguem do TK melhorar a minha ideia ?

Transformar o script acima nisso >>> São 2 alavancas com a mesma funcionalidade, invocar 1 BOSS. Se eu puxar e não tiver o monster ele vai SUMONAR, se já tiver vivo (em qualquer um dos lados) vai mandar uma mensagem dizendo que já tem um BOSS VIVO. 

voce ou alguem que manje poderia está me ajudando ? desde ja agradeço.

Editado por daniel.braga989 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
Em 15/11/2020 em 03:05, Pisces disse:

Olá,

 

Eu fiz de modo bem simples, como tu não pediu nada de mais ^-^

 

  Ocultar conteúdo


local config = {
    places = {
        [1] = {x = 543, y = 505, z = 7},
        [2] = {x = 539, y = 505, z = 7}
    },
    message = "O grande Ferumbras acaba de invadir a cidade.",
    monster = "Ferumbras"
}
function onThink(interval)
    doCreateMonster(config.monster, config.places[math.random(1,2)])
    doBroadcastMessage(config.message)
    return true
end

 

 


<globalevent name="BossKing" interval="600" event="script" value="bossking.lua"/> -- interval="aqui é o tempo em segundos(600seg = 10 min)"-->

 

mas qual pasta eu coloco esses comandos ? 

globalevents?

Link para o post
Compartilhar em outros sites
10 minutos atrás, Vodkart disse:

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

 

me chama discord

Vou deixar o like pq eu sei que você consegue resolver 

Link para o post
Compartilhar em outros sites

@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)
Link para o post
Compartilhar em outros sites
  • daniel.braga989 mudou o título para Teleport aparecer Em X Local somente ao matar 2 ''boss'' Gerador.
  • 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)
Link para o post
Compartilhar em outros sites
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)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo