Ir para conteúdo
  • Cadastre-se

(Resolvido)[PEDIDO] Puxar alavanca e surgir monsters


Ir para solução Resolvido por MatteusDeli,

Posts Recomendados

Olá meu povo gaucho. Hoje venho aqui com um pedido:

Em minha caminhada em otservers (2007-2008) teve algo que me chamou atenção e gostaria de adicionar em meu servidor.

Uma alavanca que quando você puxa surge monsters na sala (no anexo)

Quem tiver esse script ou puder me ajudar nessa eu agradeceria muito.

 

Então vamos as especificações do que exatamente eu preciso:

1ª- O Player puxa a alavanca e aparecem monstros nas posições da sala (Position: [X: 251] [Y: 81] [Z: 10]. Position: [X: 250] [Y: 80] [Z: 10].) o resto edito depois

2ª- Os monstros podem ser Demons (edito os outros quando tiver o script)

3ª- Só poderá puxar novamente a hora que todos os bixos estiverem mortos.

4ª- Quando puxar deverá aparecer uma mensagem em vermelho para todo servidor "Tem um time upando nas ruínas."

 

Observação 1- Não achei nada parecido no tibia king, por isso venho pedir aqui.

Observação 2- Não sou preguiçoso, nunca criei uma script do 0, sempre editei as existentes.

Citar

 

 

Você tem o código disponível? Se tiver publique-o aqui: 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

cave.png

Link para o post
Compartilhar em outros sites
  • Solução

@juvelino 


position_lobby = { -- Posição da sala no formato quadrado

	x1 = {x=174,y=61,z=7},
	x2 = {x=180,y=67,z=7}

}

summons = {

	[1] = { monster= "Demon", pos= {x = 174 ,y = 61,z = 7}},
	[2] = { monster= "Demon", pos={x = 180,y = 67,z = 7}},
--[3] = {monster = "Morgaroth", pos = {x= 181, y= 55, z= 7}},

}

mensagemBroadcast = "Tem um time upando nas ruínas"

function onUse(cid, item, fromPosition, itemEx, toPosition)
	
	local monsters_in_lobby = {}

	for posX=position_lobby.x1.x, position_lobby.x2.x do
		for posY=position_lobby.x1.y, position_lobby.x2.y do

			local newPos = {x=posX,y=posY,z=7, stackpos=253}
			local monsters = getTopCreature(newPos).uid
			if (isMonster(monsters)) then
				if (monsters > 0) then
					table.insert(monsters_in_lobby, monsters)
				end
			end
		end
	end

		if (#monsters_in_lobby == 0) then
			for i=1, #summons do
				doCreateMonster(summons[i].monster, summons[i].pos)
			end
			SetSwitch(item)
			doBroadcastMessage(mensagemBroadcast)
		else
			doPlayerSendCancel(cid, "Voce tem que matar todos os demons.")
		end

	return true
end


function SetSwitch(item)

	if (item.itemid == 1945) then
		doTransformItem(item.uid, item.itemid+1)
	end

	if (item.itemid == 1946) then
		doTransformItem(item.uid, item.itemid-1)
	end
end

 

Link para o post
Compartilhar em outros sites

@MatteusDeli Primeiramente muito obrigado por me ajudar nessa, serio, muito obrigado ;)

Certo amigo, o script esta funcionando de certa forma, algo que não estou me achando aqui.

 

1º eu fico puxando a alavanca e surgem cada vez mais monstros, deveria ser apenas os dois demons (segue anexo)

acho que é porque editei errado a posição da sala que limita quais monstros devem morrer para puxar novamente.

position_lobby = { -- Posição da sala no formato quadrado

    x1 = {x=240,y=80,z=10},
    x2 = {x=252,y=92,z=10}

 

2º ta dando uns errinhos na distro, consegue me responder o que pode ser?

black.png

ruinas.png

Link para o post
Compartilhar em outros sites

@juvelino Opa, estranho eu testei aqui e funcionou, tenta setar a área da sala denovo pegando as duas posições como ta na imagem e testa pra ver se vai. O erro na distro é pq acumulou muitos monstros na mesma posicao ai o quando voce puxa a alavanca ele nao consegue criar outro demon.

cave.thumb.png.411fb31d49327d4115b41ed5b3fd02e1.png.76a7a863f5d1b995835523fff00c6a28.png

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

@MatteusDeli as posições x1 e x2 estão corretas como você me passou, agora eu acredito que tem algo errado que eu não editei nessa parte:
 

Citar

    local monsters_in_lobby = {}

    for posX=position_lobby.x1.x, position_lobby.x2.x do
        for posY=position_lobby.x1.y, position_lobby.x2.y do

            local newPos = {x=posX,y=posY,z=7, stackpos=253}
            local monsters = getTopCreature(newPos).uid
            if (isMonster(monsters)) then
                if (monsters > 0) then
                    table.insert(monsters_in_lobby, monsters)
                end
            end
        end
    end

no meu .lua está assim, devo editar algo?

Link para o post
Compartilhar em outros sites

@juvelino Altere o codigo a cima pra esse, foi erro meu esqueci de mudar o andar, a variavel newPos esta com a posicao 7 e tem que ser 10, acredito que agora vai funcionar.

 

 local monsters_in_lobby = {}

    for posX=position_lobby.x1.x, position_lobby.x2.x do
        for posY=position_lobby.x1.y, position_lobby.x2.y do

            local newPos = {x=posX,y=posY,z=position_lobby.x1.z, stackpos=253}
            local monsters = getTopCreature(newPos).uid
            if (isMonster(monsters)) then
                if (monsters > 0) then
                    table.insert(monsters_in_lobby, monsters)
                end
            end
        end
    end

 

Link para o post
Compartilhar em outros sites

@MatteusDeli Caramba, agora funcionou, foi só alterar o código mesmo, perfeitamente.

muito obrigado amigo REP++++

ps: deveria postar esse script para ajudar outros players hehehe. problema resolvido 

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.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo