Ir para conteúdo

Featured Replies

Postado

Prision Bosses TFS 1.2

by vankk

 

Eu estava com um código bem ruim dos bosses da Prision Key no Aura, e resolvi atualizar, e decidi compartilhar aqui com vocês. Caso vocês queiram ver o script em funcionamento entre já em Aura. Clique aqui para ir para o site.

 

O sistema está bem fácil de ser configurado, está tudo em tabelas, esse script é para os bosses: Zavarash, Horadron, Terofar.

 

data/actions/actions.xml

<action itemid="22606" script="prision_bosses.lua"/> 
<action itemid="22605" script="prision_bosses.lua"/> 
<action itemid="22604" script="prision_bosses.lua"/> 

 

data/actions/prision_bosses.lua

-------------THIS SCRIPT WAS MADED BY VANKK AT 15TH DECEMBER 2016 AT 4 P.M (GMT - 3) -------------

local config = {
	[22606] = {
		targetId = 22636, -- Target ID.
		bossName = 'Zavarash', -- boss name
		keyPlayerPosition = Position(296, 1650, 12), -- Where the player should be.
		newPosition = Position(220, 1591, 13), -- Position to teleport
		bossPosition = Position(216, 1587, 13), -- Boss Position 
		centerPosition = Position(215, 1591, 13), -- Center Room
		exitPosition = Position(293, 1634, 12), -- Exit Position
		rangeX = 20, -- Range in X
		rangeY = 20, -- Range in Y
		time = 15, -- time in minutes to remove the player
	},
	[22605] = {
		targetId = 22634, -- Target ID.
		bossName = 'Horadron', -- boss name
		keyPlayerPosition = Position(291, 1650, 12), -- Where the player should be.
		newPosition = Position(293, 1676, 13), -- Position to teleport
		bossPosition = Position(300, 1677, 13), -- Boss Position 
		centerPosition = Position(296, 1678, 13), -- Center Room
		exitPosition = Position(293, 1634, 12), -- Exit Position
		rangeX = 20, 
		rangeY = 20,
		time = 15, -- time in minutes to remove the player
	},
	[22604] = {
		targetId = 22638, -- Target ID.
		bossName = 'Terofar', -- boss name
		keyPlayerPosition = Position(302, 1650, 12),  -- Where the player should be.
		newPosition = Position(257, 1675, 13), -- Position to teleport
		bossPosition = Position(260, 1676, 13), -- Boss Position 
		centerPosition = Position(255, 1678, 13), -- Center Room
		exitPosition = Position(293, 1634, 12), -- Exit Position
		rangeX = 20, 
		rangeY = 20,
		time = 15, -- time in minutes to remove the player
	}
}

local function roomIsOccupied(centerPosition, rangeX, rangeY)
	local spectators = Game.getSpectators(centerPosition, false, false, rangeX, rangeX, rangeY, rangeY)
	if #spectators ~= 0 then
		return true
	end

	return false
end

function clearBossRoom(playerId, centerPosition, rangeX, rangeY, exitPosition)
	local spectators, spectator = Game.getSpectators(centerPosition, false, false, rangeX, rangeX, rangeY, rangeY)
	for i = 1, #spectators do
		spectator = spectators[i]
		if spectator:isPlayer() and spectator.uid == playerId then
			spectator:teleportTo(exitPosition)
			exitPosition:sendMagicEffect(CONST_ME_TELEPORT)
		end

		if spectator:isMonster() then
			spectator:remove()
		end
	end
end

function onUse(player, item, fromPosition, target, toPosition, isHotkey)
	local tmpConfig = config[item.itemid]
	if not tmpConfig then
		return true
	end

	if target.itemid ~= tmpConfig.targetId then
		return true
	end

	local creature = Tile(tmpConfig.keyPlayerPosition):getTopCreature()
	if not creature or not creature:isPlayer() then
		return true
	end
	
	if roomIsOccupied(tmpConfig.centerPosition, tmpConfig.rangeX, tmpConfig.rangeY) then
		player:sendCancelMessage("There is someone in the room.")
		return true
	end
	
	local monster = Game.createMonster(tmpConfig.bossName, tmpConfig.bossPosition)
	if not monster then
		return true
	end
	
	-- Send message
	player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have entered an ancient demon prison cell!')
	player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You have fifteen minutes to kill and loot this boss, else you will lose that chance.')

	-- Let's roll
	addEvent(clearBossRoom, 60 * tmpConfig.time * 1000, player:getId(), tmpConfig.centerPosition, tmpConfig.rangeX, tmpConfig.rangeY, tmpConfig.exitPosition)
	item:remove()
	player:teleportTo(tmpConfig.newPosition)
	player:getPosition():sendMagicEffect(CONST_ME_TELEPORT)
	return true
end

 

Não ensinarei a configurar a tabela, isso é uma tarefa bem fácil, e para não ter nada de mão beijada também né, :p

 

Esse script é exclusivo do TibiaKing, e sua postagem em outros forums é proibida.

Caso utilize em algum projeto, por favor manter os créditos.

Postado

Parabéns, seu tópico de conteúdo foi aprovado!
Muito obrigado pela sua contribuição, nós do Tibia King agradecemos.
Seu conteúdo com certeza ajudará à muitos outros, você recebeu +1 REP.

Spoiler

Congratulations, your content has been approved!
Thank you for your contribution, we of Tibia King we are grateful.
Your content will help many other users, you received +1 REP.

 

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 519.6k

Informação Importante

Confirmação de Termo