Ir para conteúdo
  • 0

Alavanca Boss Room


Icaro Simoes

Pergunta

Bom dia pessoal, gostaria de um script que teleporte o(s) player(s) para um lugar especifico no mapa (x,y,z) quando o(s) player(s) puxarem a alavanca. Ao serem teleportados, crie um boss na sala que os players irão aparecer.

Requisitos:

-> posições que os players devem ficar ao puxar a alavanca
players = { 
[1] = Position(x,y,z),
[2] = Position(x,y,z),
[3] = Position(x,y,z),
[4] = Position(x,y,z),
[5] = Position(x,y,z)
},

-> destination = Position(x,y,z), -- posição para qual os players serão teleportados

-> Caso apenas um player seja teleportado, crie o boss x; Caso dois players tenham sido teleportados, crie o boss y, caso 3 players tenham sido teleportados, crie o boss z.

-> Cooldown ajustável para puxar a alavanca novamente

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0
13 horas atrás, Icaro Simoes disse:

Primeiramente, muito boa a formatação do script, fácil de entender e editar.

 

Precisei mudar a linha no actions.xml para reconhecer o script:

  Ocultar conteúdo

    <action actionid="8756" script="quest_alavanca.lua" />

 

Mas acabou que não funcionou. Quando puxo a alavanca, nada acontece, a alavanca nem muda de posição. Não ocorre nenhum erro na distro.

 

Action id no mapa:

image.thumb.png.2f14142c92dcd33ec17f4d60cb76b884.png

 

Action id na alavanca:

image.thumb.png.0aa6f9e6e27aaecc8dc5a1562244e6b2.png

 

Script editado com as posições e ids do servidor:

image.thumb.png.71c757c2a559c0b3dbf64a5b9b83ce7e.png

Primeiramente, obrigado pelo elogio, procuro sempre deixar os scripts de maneira fácil, para que qualquer um entenda.

 

Sobre não teleportar, eu não tinha visto que seu TFS é 1.3, achei que era 0.4. O 1.3 é mais fácil ainda de fazer, troque o script por esse: 

local item_id = 1945 -- ID DA ALAVANCA
local action_id = 8756 -- ACTION ID QUE COLOCOU NA ALAVANCA NO REMERES

-- POSIÇÃO QUE OS PLAYERS TEM QUE ESTAR AO CLICAR NA ALAVANCA --
local position_players = {
Position(1082, 1050, 7),
Position(1082, 1051, 7),
Position(1082, 1052, 7),
Position(1082, 1053, 7),
Position(1082, 1054, 7)
}

-- TABELA DOS MONSTROS E SUAS RESPECTIVAS POSIÇÕES DE ACORDO COM A QUANTIDADE DE PLAYERS TELEPORTADOS
local monsters = {
{nome = "Rat", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE SÓ 1 PLAYER FOR TELEPORTADO
{nome = "Centipede", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE 2 PLAYERS FOR TELEPORTADO
{nome = "Cockroach", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE 3 PLAYERS FOR TELEPORTADO
{nome = "spider", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE 4 PLAYERS FOR TELEPORTADO
{nome = "Paterson macion", pos = Position(1208, 960, 7)}  -- MONSTRO QUE VAI NASCER SE 5 PLAYERS FOR TELEPORTADO
}

local position_destino = Position(1202, 960, 7) -- POSIÇÃO ONDE OS PLAYERS SERÃO TELEPORTADOS

storage_global_quest = 89578 --  STORAGE GLOBAL, NÃO PODE SER USADO ESSE VALOR PARA OUTRA STORAGE E NEM PARA PLAYER
local cooldown_alavanca = 3 -- TEMPO EM MINUTOS PARA O COOLDOWN DA ALAVANCA
Game.setStorageValue(storage_global_quest, os.time()) -- COMEÇA SETANDO A VARIÁVEL GLOBAL COM HORÁRIO PARA NÃO FICAR VALOR NIL NA VARIÁVEL(POIS NÃO FOI SETADA ANTES)

-- NÃO MEXER, SÃO VARIÁVEIS PARA PEGAR O RADIUS E VERIFICAR TODOS OS PLAYERS DENTRO DO RAIO NA FUNÇÃO GETSPECTATOR --
local y_inicial = 1050 -- TILE INICIAL (RADIUS Y INICIAL)
local y_final = 1054 -- TILE FINAL (RADIUS Y FINAL)
local center = Position(1082, 1052, 7) -- COORDENADA ONDE PEGA O TILE QUE FICA NO CENTRO DA DISTÂNCIA TOTAL RADIUS X,Y MIN E MAX
local y = math.floor((y_final + y_inicial) / 2) -- MÉDIA DO RADIUS (PARA IR ATÉ AS DISTÂNCIAS A PARTIR DA MÉDIA)

----------------------------------------- CÓDIGO -----------------------------------------
function onUse(cid, item, fromPos, itemEx, toPos)

if (item.itemid == item_id) and (item.actionid == action_id) then
	if Game.getStorageValue(storage_global_quest) <= os.time() then
	
		local players = Game.getSpectators(center, false, true, 1, 1, y, y)
		count_players = #players
		
		for _, player in pairs (players) do
			player:teleportTo(position_destino)
		end
		
		if #players ==1 then
			Game.createMonster(monsters[1].nome, monsters[1].pos)
		
		elseif #players ==2 then
			Game.createMonster(monsters[2].nome, monsters[2].pos)
			
		elseif #players ==3 then
			Game.createMonster(monsters[3].nome, monsters[3].pos)
	
		elseif #players ==4 then
			Game.createMonster(monsters[4].nome, monsters[4].pos)
	
		elseif #players ==5 then
			Game.createMonster(monsters[5].nome, monsters[5].pos)	
		end	
		
		for _, player in pairs (players) do
			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Good lucky!")
		end
		
		Game.setStorageValue(storage_global_quest, os.time() + (60 * cooldown_alavanca))
		
	return true		

	
	else
		return cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The switch is in cooldown. You need to wait.")
	end	
end		

end

Já arrumei o valor das variáveis, das coordenadas e o nome dos mosntros para você. Testei aqui e funcionou.

Editado por Yan18
Link para o comentário
Compartilhar em outros sites

  • 0
12 minutos atrás, Icaro Simoes disse:
Versão do Servidor: TFS - 1.2
Tipo de Script: actions
Código:
  Mostrar conteúdo oculto



 

Bom dia pessoal, gostaria de um script que teleporte o(s) player(s) para um lugar especifico no mapa (x,y,z) quando o(s) player(s) puxarem a alavanca. Ao serem teleportados, crie um boss na sala que os players irão aparecer.

Requisitos:

-> posições que os players devem ficar ao puxar a alavanca
players = { 
[1] = Position(x,y,z),
[2] = Position(x,y,z),
[3] = Position(x,y,z),
[4] = Position(x,y,z),
[5] = Position(x,y,z)
},

-> destination = Position(x,y,z), -- posição para qual os players serão teleportados

-> Caso apenas um player seja teleportado, crie o boss x; Caso dois players tenham sido teleportados, crie o boss y, caso 3 players tenham sido teleportados, crie o boss z.

-> Cooldown ajustável para puxar a alavanca novamente

Se eu não me engano ja tem isso em todas bases de poketibias, é só dar uma olhada ai no actions 

Link para o comentário
Compartilhar em outros sites

  • 0
31 minutos atrás, brazvct disse:

Se eu não me engano ja tem isso em todas bases de poketibias, é só dar uma olhada ai no actions 

Mas vai funcionar normalmente para ot estilo global? Vou baixar um aqui pra ver

 

Rodei os actions do poketibia e não achei o script

Editado por Icaro Simoes
Verificando resposta anterior
Link para o comentário
Compartilhar em outros sites

  • 0

Vai em Data/Actions/Scripts e crie o arquivo quest_alavanca.lua (ou um nome que preferir), e adicione o código:

local id_alavanca = 1945 -- ID DA ALAVANCA 
local action_id = 6542 -- ACTION ID QUE COLOCOU NA ALAVANCA NO REMERES

-- POSIÇÃO QUE OS PLAYERS TEM QUE ESTAR AO CLICAR NA ALAVANCA --
local position_players = {
{x= 1000, y= 1000, z=7},
{x= 1001, y= 1001, z=7},
{x= 1002, y= 1002, z=7},
{x= 1003, y= 1003, z=7},
{x= 1004, y= 1004, z=7}
}

-- TABELA DOS MONSTROS E SUAS RESPECTIVAS POSIÇÕES DE ACORDO COM A QUANTIDADE DE PLAYERS TELEPORTADOS
local monsters = {
{nome = "Ferumbras", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE SÓ 1 PLAYER FOR TELEPORTADO
{nome = "Goblins", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 2 PLAYERS FOR TELEPORTADO
{nome = "Medusa", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 3 PLAYERS FOR TELEPORTADO
{nome = "Mage", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 4 PLAYERS FOR TELEPORTADO
{nome = "Skull", pos = {x= 1500, y= 1050, z=7}}  -- MONSTRO QUE VAI NASCER SE 5 PLAYERS FOR TELEPORTADO
}

local position_destino = {x= 1500, y= 1020, z= 7} -- POSIÇÃO ONDE OS PLAYERS SERÃO TELEPORTADOS

storage_global_quest = 87898 --  STORAGE GLOBAL, NÃO PODE SER USADO ESSE VALOR PARA OUTRA STORAGE E NEM PARA PLAYER
local cooldown_alavanca = 3 -- TEMPO EM MINUTOS PARA O COOLDOWN DA ALAVANCA

----------------------------------------- CÓDIGO -----------------------------------------
function onUse(cid, item, fromPos, itemEx, toPos)
local player = nil
local count_players = 0

if (item.itemid == id_alavanca) and (item.actionid == action_id) then
	if getGlobalStorageValue(storage_global_quest) <= os.time() then

		for i = 1, #position_players do
			player = getTileThingByPos(position_players[i])
			
			if isPlayer(player.uid) then
				doTeleportThing(player.uid, position_destino)
				count_players = count_players + 1
			end
			
			if (i == #position_players) and (count_players == 0) then
				return true
			end	
		end
	
		if count_players == 1 then
			doCreateMonster(monsters[1].nome, monsters[1].pos)
		
		elseif count_players == 2 then
			doCreateMonster(monsters[2].nome, monsters[2].pos)
			
		elseif count_players == 3 then
			doCreateMonster(monsters[3].nome, monsters[3].pos)

		elseif count_players == 4 then
			doCreateMonster(monsters[4].nome, monsters[4].pos)

		elseif count_players == 5 then
			doCreateMonster(monsters[5].nome, monsters[5].pos)	
		end	
		
		doPlayerSendTextMessage(player.uid, MESSAGE_STATUS_CONSOLE_BLUE, "Good lucky!")
		setGlobalStorageValue(storage_global_quest, os.time() + (60 * cooldown_alavanca))
	return true		

	
	else
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The switch is in cooldown. You need to wait.")
	end	
end		

end

Deixei tudo comentado, então está bem fácil de identificar, coloquei variável para determinar tempo de cooldown em minutos da alavanca ao clicar novamente (lembrando que tem que colocar uma storage ali que não foi usada ainda, e nem pode ser usada para outra coisa, pois, ela é global). Você também precisa arrumar as coordenadas das posições e o nome dos monstros (igual está no xml dele).

 

Agora abre o actions.xml e adicione a tag:

<action actionid="6542" event="script" value="quest_alavanca.lua"/>

Coloquei verificação por actionid porque provavelmente essa alavanca deve ser usada em outras quests, então, você tem que colocar uma actionid (ou a mesma que coloquei ali de exemplo, caso não esteja em uso) nessa alavanca no Remere's (mapa). Após colocar no mapa, arrume o id da action na tag xml e na variável action_id no script.lua.

 

Então, o script vai criar os monstros de acordo com a quantidade de players, deixei o limite de 5, e não esqueça de arrumar as coordenadas, deixei tudo genérico.

 

Teste e fale se der algum erro.

Editado por Yan18
Link para o comentário
Compartilhar em outros sites

  • 0
Em 19/08/2020 em 11:32, Yan18 disse:

Vai em Data/Actions/Scripts e crie o arquivo quest_alavanca.lua (ou um nome que preferir), e adicione o código:


local id_alavanca = 1945 -- ID DA ALAVANCA 
local action_id = 6542 -- ACTION ID QUE COLOCOU NA ALAVANCA NO REMERES

-- POSIÇÃO QUE OS PLAYERS TEM QUE ESTAR AO CLICAR NA ALAVANCA --
local position_players = {
{x= 1000, y= 1000, z=7},
{x= 1001, y= 1001, z=7},
{x= 1002, y= 1002, z=7},
{x= 1003, y= 1003, z=7},
{x= 1004, y= 1004, z=7}
}

-- TABELA DOS MONSTROS E SUAS RESPECTIVAS POSIÇÕES DE ACORDO COM A QUANTIDADE DE PLAYERS TELEPORTADOS
local monsters = {
{nome = "Ferumbras", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE SÓ 1 PLAYER FOR TELEPORTADO
{nome = "Goblins", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 2 PLAYERS FOR TELEPORTADO
{nome = "Medusa", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 3 PLAYERS FOR TELEPORTADO
{nome = "Mage", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 4 PLAYERS FOR TELEPORTADO
{nome = "Skull", pos = {x= 1500, y= 1050, z=7}}  -- MONSTRO QUE VAI NASCER SE 5 PLAYERS FOR TELEPORTADO
}

local position_destino = {x= 1500, y= 1020, z= 7} -- POSIÇÃO ONDE OS PLAYERS SERÃO TELEPORTADOS

storage_global_quest = 87898 --  STORAGE GLOBAL, NÃO PODE SER USADO ESSE VALOR PARA OUTRA STORAGE E NEM PARA PLAYER
local cooldown_alavanca = 3 -- TEMPO EM MINUTOS PARA O COOLDOWN DA ALAVANCA

----------------------------------------- CÓDIGO -----------------------------------------
function onUse(cid, item, fromPos, itemEx, toPos)
local player = nil
local count_players = 0

if (item.itemid == id_alavanca) and (item.actionid == action_id) then
	if getGlobalStorageValue(storage_global_quest) <= os.time() then

		for i = 1, #position_players do
			player = getTileThingByPos(position_players[i])
			
			if isPlayer(player.uid) then
				doTeleportThing(player.uid, position_destino)
				count_players = count_players + 1
			end
			
			if (i == #position_players) and (count_players == 0) then
				return true
			end	
		end
	
		if count_players == 1 then
			doCreateMonster(monsters[1].nome, monsters[1].pos)
		
		elseif count_players == 2 then
			doCreateMonster(monsters[2].nome, monsters[2].pos)
			
		elseif count_players == 3 then
			doCreateMonster(monsters[3].nome, monsters[3].pos)

		elseif count_players == 4 then
			doCreateMonster(monsters[4].nome, monsters[4].pos)

		elseif count_players == 5 then
			doCreateMonster(monsters[5].nome, monsters[5].pos)	
		end	
		
		doPlayerSendTextMessage(player.uid, MESSAGE_STATUS_CONSOLE_BLUE, "Good lucky!")
		setGlobalStorageValue(storage_global_quest, os.time() + (60 * cooldown_alavanca))
	return true		

	
	else
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The switch is in cooldown. You need to wait.")
	end	
end		

end

Deixei tudo comentado, então está bem fácil de identificar, coloquei variável para determinar tempo de cooldown em minutos da alavanca ao clicar novamente (lembrando que tem que colocar uma storage ali que não foi usada ainda, e nem pode ser usada para outra coisa, pois, ela é global). Você também precisa arrumar as coordenadas das posições e o nome dos monstros (igual está no xml dele).

 

Agora abre o actions.xml e adicione a tag:


<action actionid="6542" event="script" value="quest_alavanca.lua"/>

Coloquei verificação por actionid porque provavelmente essa alavanca deve ser usada em outras quests, então, você tem que colocar uma actionid (ou a mesma que coloquei ali de exemplo, caso não esteja em uso) nessa alavanca no Remere's (mapa). Após colocar no mapa, arrume o id da action na tag xml e na variável action_id no script.lua.

 

Então, o script vai criar os monstros de acordo com a quantidade de players, deixei o limite de 5, e não esqueça de arrumar as coordenadas, deixei tudo genérico.

 

Teste e fale se der algum erro.

foi tu quem fez esse script?

Link para o comentário
Compartilhar em outros sites

  • 0
10 horas atrás, Yan18 disse:

Foi, por que?

eu vejo que tu se esforça bastante para criar scripts.  tu usa algum script como modelo para derivar para outros scripts?

Link para o comentário
Compartilhar em outros sites

  • 0
46 minutos atrás, Poccnn disse:

eu vejo que tu se esforça bastante para criar scripts.  tu usa algum script como modelo para derivar para outros scripts?

Obrigado pelo elogio. Então, não uso não, eu faço de cabeça mesmo. Mas, se é algum script parecido com algum que já fiz, eu adapto para poupar tempo.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 19/08/2020 em 11:32, Yan18 disse:

Vai em Data/Actions/Scripts e crie o arquivo quest_alavanca.lua (ou um nome que preferir), e adicione o código:


local id_alavanca = 1945 -- ID DA ALAVANCA 
local action_id = 6542 -- ACTION ID QUE COLOCOU NA ALAVANCA NO REMERES

-- POSIÇÃO QUE OS PLAYERS TEM QUE ESTAR AO CLICAR NA ALAVANCA --
local position_players = {
{x= 1000, y= 1000, z=7},
{x= 1001, y= 1001, z=7},
{x= 1002, y= 1002, z=7},
{x= 1003, y= 1003, z=7},
{x= 1004, y= 1004, z=7}
}

-- TABELA DOS MONSTROS E SUAS RESPECTIVAS POSIÇÕES DE ACORDO COM A QUANTIDADE DE PLAYERS TELEPORTADOS
local monsters = {
{nome = "Ferumbras", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE SÓ 1 PLAYER FOR TELEPORTADO
{nome = "Goblins", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 2 PLAYERS FOR TELEPORTADO
{nome = "Medusa", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 3 PLAYERS FOR TELEPORTADO
{nome = "Mage", pos = {x= 1500, y= 1050, z=7}}, -- MONSTRO QUE VAI NASCER SE 4 PLAYERS FOR TELEPORTADO
{nome = "Skull", pos = {x= 1500, y= 1050, z=7}}  -- MONSTRO QUE VAI NASCER SE 5 PLAYERS FOR TELEPORTADO
}

local position_destino = {x= 1500, y= 1020, z= 7} -- POSIÇÃO ONDE OS PLAYERS SERÃO TELEPORTADOS

storage_global_quest = 87898 --  STORAGE GLOBAL, NÃO PODE SER USADO ESSE VALOR PARA OUTRA STORAGE E NEM PARA PLAYER
local cooldown_alavanca = 3 -- TEMPO EM MINUTOS PARA O COOLDOWN DA ALAVANCA

----------------------------------------- CÓDIGO -----------------------------------------
function onUse(cid, item, fromPos, itemEx, toPos)
local player = nil
local count_players = 0

if (item.itemid == id_alavanca) and (item.actionid == action_id) then
	if getGlobalStorageValue(storage_global_quest) <= os.time() then

		for i = 1, #position_players do
			player = getTileThingByPos(position_players[i])
			
			if isPlayer(player.uid) then
				doTeleportThing(player.uid, position_destino)
				count_players = count_players + 1
			end
			
			if (i == #position_players) and (count_players == 0) then
				return true
			end	
		end
	
		if count_players == 1 then
			doCreateMonster(monsters[1].nome, monsters[1].pos)
		
		elseif count_players == 2 then
			doCreateMonster(monsters[2].nome, monsters[2].pos)
			
		elseif count_players == 3 then
			doCreateMonster(monsters[3].nome, monsters[3].pos)

		elseif count_players == 4 then
			doCreateMonster(monsters[4].nome, monsters[4].pos)

		elseif count_players == 5 then
			doCreateMonster(monsters[5].nome, monsters[5].pos)	
		end	
		
		doPlayerSendTextMessage(player.uid, MESSAGE_STATUS_CONSOLE_BLUE, "Good lucky!")
		setGlobalStorageValue(storage_global_quest, os.time() + (60 * cooldown_alavanca))
	return true		

	
	else
		return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "The switch is in cooldown. You need to wait.")
	end	
end		

end

Deixei tudo comentado, então está bem fácil de identificar, coloquei variável para determinar tempo de cooldown em minutos da alavanca ao clicar novamente (lembrando que tem que colocar uma storage ali que não foi usada ainda, e nem pode ser usada para outra coisa, pois, ela é global). Você também precisa arrumar as coordenadas das posições e o nome dos monstros (igual está no xml dele).

 

Agora abre o actions.xml e adicione a tag:


<action actionid="6542" event="script" value="quest_alavanca.lua"/>

Coloquei verificação por actionid porque provavelmente essa alavanca deve ser usada em outras quests, então, você tem que colocar uma actionid (ou a mesma que coloquei ali de exemplo, caso não esteja em uso) nessa alavanca no Remere's (mapa). Após colocar no mapa, arrume o id da action na tag xml e na variável action_id no script.lua.

 

Então, o script vai criar os monstros de acordo com a quantidade de players, deixei o limite de 5, e não esqueça de arrumar as coordenadas, deixei tudo genérico.

 

Teste e fale se der algum erro.

Primeiramente, muito boa a formatação do script, fácil de entender e editar.

 

Precisei mudar a linha no actions.xml para reconhecer o script:

Spoiler

    <action actionid="8756" script="quest_alavanca.lua" />

 

Mas acabou que não funcionou. Quando puxo a alavanca, nada acontece, a alavanca nem muda de posição. Não ocorre nenhum erro na distro.

 

Action id no mapa:

image.thumb.png.2f14142c92dcd33ec17f4d60cb76b884.png

 

Action id na alavanca:

image.thumb.png.0aa6f9e6e27aaecc8dc5a1562244e6b2.png

 

Script editado com as posições e ids do servidor:

image.thumb.png.71c757c2a559c0b3dbf64a5b9b83ce7e.png

Editado por Icaro Simoes
Link para o comentário
Compartilhar em outros sites

  • 0
8 horas atrás, Yan18 disse:

Primeiramente, obrigado pelo elogio, procuro sempre deixar os scripts de maneira fácil, para que qualquer um entenda.

 

Sobre não teleportar, eu não tinha visto que seu TFS é 1.3, achei que era 0.4. O 1.3 é mais fácil ainda de fazer, troque o script por esse: 


local item_id = 1945 -- ID DA ALAVANCA
local action_id = 8756 -- ACTION ID QUE COLOCOU NA ALAVANCA NO REMERES

-- POSIÇÃO QUE OS PLAYERS TEM QUE ESTAR AO CLICAR NA ALAVANCA --
local position_players = {
Position(1082, 1050, 7),
Position(1082, 1051, 7),
Position(1082, 1052, 7),
Position(1082, 1053, 7),
Position(1082, 1054, 7)
}

-- TABELA DOS MONSTROS E SUAS RESPECTIVAS POSIÇÕES DE ACORDO COM A QUANTIDADE DE PLAYERS TELEPORTADOS
local monsters = {
{nome = "Rat", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE SÓ 1 PLAYER FOR TELEPORTADO
{nome = "Centipede", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE 2 PLAYERS FOR TELEPORTADO
{nome = "Cockroach", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE 3 PLAYERS FOR TELEPORTADO
{nome = "spider", pos = Position(1208, 960, 7)}, -- MONSTRO QUE VAI NASCER SE 4 PLAYERS FOR TELEPORTADO
{nome = "Paterson macion", pos = Position(1208, 960, 7)}  -- MONSTRO QUE VAI NASCER SE 5 PLAYERS FOR TELEPORTADO
}

local position_destino = Position(1202, 960, 7) -- POSIÇÃO ONDE OS PLAYERS SERÃO TELEPORTADOS

storage_global_quest = 89578 --  STORAGE GLOBAL, NÃO PODE SER USADO ESSE VALOR PARA OUTRA STORAGE E NEM PARA PLAYER
local cooldown_alavanca = 3 -- TEMPO EM MINUTOS PARA O COOLDOWN DA ALAVANCA
Game.setStorageValue(storage_global_quest, os.time()) -- COMEÇA SETANDO A VARIÁVEL GLOBAL COM HORÁRIO PARA NÃO FICAR VALOR NIL NA VARIÁVEL(POIS NÃO FOI SETADA ANTES)

-- NÃO MEXER, SÃO VARIÁVEIS PARA PEGAR O RADIUS E VERIFICAR TODOS OS PLAYERS DENTRO DO RAIO NA FUNÇÃO GETSPECTATOR --
local y_inicial = 1050 -- TILE INICIAL (RADIUS Y INICIAL)
local y_final = 1054 -- TILE FINAL (RADIUS Y FINAL)
local center = Position(1082, 1052, 7) -- COORDENADA ONDE PEGA O TILE QUE FICA NO CENTRO DA DISTÂNCIA TOTAL RADIUS X,Y MIN E MAX
local y = math.floor((y_final + y_inicial) / 2) -- MÉDIA DO RADIUS (PARA IR ATÉ AS DISTÂNCIAS A PARTIR DA MÉDIA)

----------------------------------------- CÓDIGO -----------------------------------------
function onUse(cid, item, fromPos, itemEx, toPos)

if (item.itemid == item_id) and (item.actionid == action_id) then
	if Game.getStorageValue(storage_global_quest) <= os.time() then
	
		local players = Game.getSpectators(center, false, true, 1, 1, y, y)
		count_players = #players
		
		for _, player in pairs (players) do
			player:teleportTo(position_destino)
		end
		
		if #players ==1 then
			Game.createMonster(monsters[1].nome, monsters[1].pos)
		
		elseif #players ==2 then
			Game.createMonster(monsters[2].nome, monsters[2].pos)
			
		elseif #players ==3 then
			Game.createMonster(monsters[3].nome, monsters[3].pos)
	
		elseif #players ==4 then
			Game.createMonster(monsters[4].nome, monsters[4].pos)
	
		elseif #players ==5 then
			Game.createMonster(monsters[5].nome, monsters[5].pos)	
		end	
		
		for _, player in pairs (players) do
			player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Good lucky!")
		end
		
		Game.setStorageValue(storage_global_quest, os.time() + (60 * cooldown_alavanca))
		
	return true		

	
	else
		return cid:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "The switch is in cooldown. You need to wait.")
	end	
end		

end

Já arrumei o valor das variáveis, das coordenadas e o nome dos mosntros para você. Testei aqui e funcionou.

Funcionou perfeitamente!!!! Muito obrigado, tu é 10

 

image.thumb.png.2bccc222ea2338ccc817e08dcc60f66b.png

image.thumb.png.66f0a3b1e41e26d0e54e531f20c09b59.png

Link para o comentário
Compartilhar em outros sites

  • 0

desculpe reativar o topico!

entao tem uns boss do global que tem umas mecanicas pra fazer ele e possivel implementa nesse script para tfs 0.4

para mata o boss tem que leva ele em um piso especifico 5 vezes ai teleporta eles pra um reward pra todos ter chance de pega o item do boss time de 24hrs

Link para o comentário
Compartilhar em outros sites

  • 0
Em 27/08/2020 em 13:14, Senju uchira disse:

desculpe reativar o topico!

entao tem uns boss do global que tem umas mecanicas pra fazer ele e possivel implementa nesse script para tfs 0.4

para mata o boss tem que leva ele em um piso especifico 5 vezes ai teleporta eles pra um reward pra todos ter chance de pega o item do boss time de 24hrs

Eu não entendi muito o que quis dizer. Mas, crie um tópico novo para sua dúvida, pois ela é sobre TFS 0.4, que não é o caso do autor do tópico que é 1.2.

 

Cria um tópico novo, e explica direitinho o que quer que eu te ajudo.

Link para o comentário
Compartilhar em outros sites

  • 0
Em 29/08/2020 em 18:30, Yan18 disse:

Eu não entendi muito o que quis dizer. Mas, crie um tópico novo para sua dúvida, pois ela é sobre TFS 0.4, que não é o caso do autor do tópico que é 1.2.

 

Cria um tópico novo, e explica direitinho o que quer que eu te ajudo.

ok

Link para o comentário
Compartilhar em outros sites

  • 0

Desculpe por ter revivido o post mas eu preciso muito desse script e tô tendo esses erros

>> Boosted creature: Behemoth
>> Loading lua libs
[Warning - Action::loadFunction] Function "" does not exist.
[Warning - Action::loadFunction] Function "" does not exist.
[Warning - Action::loadFunction] Function "" does not exist.
[Warning - Action::loadFunction] Function "" does not exist.
[Warning - Action::loadFunction] Function "" does not exist.
[Warning - Action::loadFunction] Function "" does not exist.


Alguém tem como me ajudar? Editei tudo do jeito que eu queria, já coloquei no mapa editor os id's também, creio que tinha sido algo na hora de colar

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...