Ir para conteúdo
  • 0

Anihi Diferenciada - Halls of Hope 8.6!


mitzuk

Pergunta

Pessoal, boa tarde!

 

Olha só, eu to procurando no fórum já tem algumas semanas e resolvi apelar ao Post de pedidos aqui.. eu já acompanho o grupo desde 2012, porém, nunca fui de postar alguma coisa...

 

Eu estou criando um servidor de Tibia com mapa Global versão 8.6 e utilizo OTX 5.0.4. 

 

Estou copiando os Daily Bosses de Thais (Halls of Hope - https://tibiawiki.com.br/wiki/Halls_of_Hope) e colocando no meu servidor. Porém, estou fazendo de maneira resumida, sem as hunts de cada portal, colocando diretamente o portal com acesso a uma sala de boss (estilo sala da Anihi).

 

A ideia é a mesma do global, que o player possa fazer cada BOSS desses portais (são 5 portais) a cada 24h. Dentro de cada portal, existe uma alavanca com espaço de até 5 SQM em que os players sobem nos determinados tiles, puxam a alavanca e vão parar no BOSS. Um ponto importante é que não é necessário 5 players para iniciar, tendo 1, 2, 3, 4 ou 5 players não faz diferença, é possível puxar a alavanca e iniciar o boss.

 

Além disso, o script precisa identificar se existem players fazendo o boss (para que eles não consigam entrar junto com outro grupo) e, para impedir os famosos "trolls", ele expulse os jogadores que estão a um determinado tempo dentro da sala do boss.

 

Por fim, precisa também criar um script que sumone o boss cada vez que o player puxe a alavanca e, ao sair pelo portal dentro da sala, ou morrer, o boss desapareça. 

 

Será que alguém pode me ajudar com essa?

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

isso é basicamente um script de annihi.

local function getCreaturesInRange(position, radiusx, radiusy, showMonsters, showPlayers)
    local creaturesList,radiusx,radiusy = {},radiusx or 0,radiusy or 0
    for x = -radiusx, radiusx do
        for y = -radiusy, radiusy do
		local creature = getTopCreature({x = position.x+x, y = position.y+y, z = position.z, stackpos = STACKPOS_TOP_CREATURE})
			if (creature.type == 1 and showPlayers == true) or (creature.type == 2 and showMonsters == true) then
				table.insert(creaturesList, creature.uid)
			end
        end
    end
    return creaturesList
end

local keyStore,needLevel 	= 0000,000 					-- key para impedir do player fazer a sala no mesmo dia, level requerido
local position 				= {x=0000, y=0000, z=00} 	-- posição central da sala onde está o boss
local radiusx 				= 10							-- tamanho da sala do boss no plano X contado aparti do centro da sala 
local radiusy 				= 10							-- tamanho da sala do boss no plano Y contado aparti do centro da sala 
local bossName				= "nome do boss"			-- só pode existir um monstro com esse nome no servidor

function onUse(cid, item, fPos, itemEx, toPosition)

	if(item.itemid == 1945)then -- requerimentos
		for var=1,5 do
			local player = getThingFromPos({x=fPos.x-var,y=fPos.y,z=fPos.z,stackpos=255})
			if(getPlayerLevel(player.uid) < needLevel)then
				return true,doPlayerSendCancel(cid,"Todos necessitam ter level "..needLevel.." ou mais.")
			elseif(getPlayerStorageValue(player.uid,keyStore) == tonumber(os.date("%d")))then
				return true,doPlayerSendCancel(cid,"Alguem ja fez esse sala hoje.")
			end
		end
		
	elseif(item.itemid == 1946)then
	local get = getCreaturesInRange(position, radiusx, radiusy, false, true)
		if(get and #get > 0)then
			return true,doPlayerSendCancel(cid,"Espere o time acabar de fazer a annihilator quest.")		
		else
		local boss = getCreatureByName(bossName)
			if(boss and boss > 0)then		doRemoveCreature(boss)	end
			doSummonCreature(bossName)	
		end
	end
end 

 

agora tu vai precisar por em algum lugar ao final quando o boss for eliminado essa instrução para confirmar que ele concluiu aquela sala.

doPlayerSetStorageValue(player.uid,keyStore,tonumber(os.date("%d"))) 

 

Link para o comentário
Compartilhar em outros sites

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...