Ir para conteúdo
  • Cadastre-se

(Resolvido)Boss Room tfs 0.4


Ir para solução Resolvido por Vodkart,

Posts Recomendados

Galera estou com um probleminha com esse script

funciona quase tudo perfeito, o bug é tipo quando algum player morre na sala o boss não some, ai quando outro player entra na sala acumula o boss ai só depois de 10 minutos que o  boss.

o boss só some se passar 10m na sala

mas se alguem entrar na sala e morrer antes dos 10m e outro player entrar logo em seguida fica com 2 boss na sala.

 

só quero ajeitar isso o boss tem que sumir se alguem morrer na sala ou sair da sala

 

esse script é em lib e actions

 

 

  Mostrar conteúdo oculto

 

  Mostrar conteúdo oculto
  Mostrar conteúdo oculto

 

Link para o post
Compartilhar em outros sites
  • Respostas 6
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

já existe a função de remover o boss, basta usá-la.   function onUse(cid, item, fromPosition, itemEx, toPosition) local players = {} for i = 1, #BossRoom.alavanca do local v = getTopCreature(BossRoom.alavanca[i]).uid players[i] = isPlayer(v) and v or nil end function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss. local player_room = 0 for x = BossRoom.areaSalaBoss[1].x, BossRoom.areaSalaBoss[2].x do for y = BossRoom.area

  • Solução

já existe a função de remover o boss, basta usá-la.

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	
	local players = {}
	for i = 1, #BossRoom.alavanca do
		local v = getTopCreature(BossRoom.alavanca[i]).uid 
		players[i] = isPlayer(v) and v or nil
	end
	
	function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss.
		local player_room = 0
		for x = BossRoom.areaSalaBoss[1].x, BossRoom.areaSalaBoss[2].x do
			for y = BossRoom.areaSalaBoss[1].y, BossRoom.areaSalaBoss[2].y do
				for z = BossRoom.areaSalaBoss[1].z, BossRoom.areaSalaBoss[2].z do
					local pos = {x=x, y=y, z=z,stackpos = 253}
					local thing = getThingfromPos(pos)
					if thing.itemid > 0 and isPlayer(thing.uid) == true then
						player_room = player_room+1
					end
				end
			end
		end
		return player_room
	end
	
	
	if #players < BossRoom.minPlayers then
		doPlayerSendCancel(cid, "You need at least "..BossRoom.minPlayers.." players to enter.")
		return true
	end
	
	if checkPlayersInRoom() >= 1 then
		doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") 
		return true
	end
	
	function playersTP(position) -- Responsável por teleportar os jogadores
		for i = 1, 6 do
			if players[i] then
				doTeleportThing(players[i], position)
				doSendMagicEffect(position, CONST_ME_TELEPORT)
			end
		end
	end
	
	function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado)
		for x = BossRoom.areaSalaBoss[1].x, BossRoom.areaSalaBoss[2].x do
			for y = BossRoom.areaSalaBoss[1].y, BossRoom.areaSalaBoss[2].y do
				for z = BossRoom.areaSalaBoss[1].z, BossRoom.areaSalaBoss[2].z do
					local area = {x = x, y = y, z = z}
					local creature = getTopCreature(area).uid
					if isCreature(creature) then 
						doRemoveCreature(creature)
					end
				end
			end
		end
	end
	
	function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos.
		for x = BossRoom.areaSalaBoss[1].x - 1, BossRoom.areaSalaBoss[2].x + 1 do
			for y = BossRoom.areaSalaBoss[1].y - 1, BossRoom.areaSalaBoss[2].y + 1 do
				local pos = {x=x, y=y, z=BossRoom.areaSalaBoss[1].z}
				local m = getTopCreature(pos).uid
				if m ~= 0 and isMonster(m) and isInArray(BossRoom.name, getCreatureName(m)) then
					playersTP(BossRoom.positionKickPlayer)
					removeBoss()
				end
			end 
		end
		return false 
	end
	removeBoss()
	playersTP(BossRoom.positionSalaBoss)
	doCreateMonster(BossRoom.name, BossRoom.positionSpawnBoss)
	addEvent(checkBossTime, BossRoom.timeToKill*60*1000)
	return true
end

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  Em 03/07/2023 em 14:07, Vodkart disse:

já existe a função de remover o boss, basta usá-la.

 

function onUse(cid, item, fromPosition, itemEx, toPosition)
	
	local players = {}
	for i = 1, #BossRoom.alavanca do
		local v = getTopCreature(BossRoom.alavanca[i]).uid 
		players[i] = isPlayer(v) and v or nil
	end
	
	function checkPlayersInRoom() -- Responsável por verificar se há jogadores na sala enfrentando o boss.
		local player_room = 0
		for x = BossRoom.areaSalaBoss[1].x, BossRoom.areaSalaBoss[2].x do
			for y = BossRoom.areaSalaBoss[1].y, BossRoom.areaSalaBoss[2].y do
				for z = BossRoom.areaSalaBoss[1].z, BossRoom.areaSalaBoss[2].z do
					local pos = {x=x, y=y, z=z,stackpos = 253}
					local thing = getThingfromPos(pos)
					if thing.itemid > 0 and isPlayer(thing.uid) == true then
						player_room = player_room+1
					end
				end
			end
		end
		return player_room
	end
	
	
	if #players < BossRoom.minPlayers then
		doPlayerSendCancel(cid, "You need at least "..BossRoom.minPlayers.." players to enter.")
		return true
	end
	
	if checkPlayersInRoom() >= 1 then
		doPlayerSendTextMessage(cid,19, "There is already a team in the boss room.") 
		return true
	end
	
	function playersTP(position) -- Responsável por teleportar os jogadores
		for i = 1, 6 do
			if players[i] then
				doTeleportThing(players[i], position)
				doSendMagicEffect(position, CONST_ME_TELEPORT)
			end
		end
	end
	
	function removeBoss() -- Responsavel por Remover o BOSS da sala (caso os players nao tenham matado)
		for x = BossRoom.areaSalaBoss[1].x, BossRoom.areaSalaBoss[2].x do
			for y = BossRoom.areaSalaBoss[1].y, BossRoom.areaSalaBoss[2].y do
				for z = BossRoom.areaSalaBoss[1].z, BossRoom.areaSalaBoss[2].z do
					local area = {x = x, y = y, z = z}
					local creature = getTopCreature(area).uid
					if isCreature(creature) then 
						doRemoveCreature(creature)
					end
				end
			end
		end
	end
	
	function checkBossTime() -- Responsável por verificar se os jogadores matou ou não o boss após 10 minutos.
		for x = BossRoom.areaSalaBoss[1].x - 1, BossRoom.areaSalaBoss[2].x + 1 do
			for y = BossRoom.areaSalaBoss[1].y - 1, BossRoom.areaSalaBoss[2].y + 1 do
				local pos = {x=x, y=y, z=BossRoom.areaSalaBoss[1].z}
				local m = getTopCreature(pos).uid
				if m ~= 0 and isMonster(m) and isInArray(BossRoom.name, getCreatureName(m)) then
					playersTP(BossRoom.positionKickPlayer)
					removeBoss()
				end
			end 
		end
		return false 
	end
	removeBoss()
	playersTP(BossRoom.positionSalaBoss)
	doCreateMonster(BossRoom.name, BossRoom.positionSpawnBoss)
	addEvent(checkBossTime, BossRoom.timeToKill*60*1000)
	return true
end

 

Expand   Mostrar mais  

tem mais um problema, o player só é removido da sala quando não consegue matar o boss depois de 10m, mas se o player matar o boss antes dos 10m ele não é removido da sala 

eu tbm queria por pra ele ser removido da sala quando matar o boss dps de 10m ele é removido da sala, pra ngm ficar afk na sala do boss.

 

 

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.

  • Estatísticas dos Fóruns

    96847
    Tópicos
    519611
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo