antiblock
https://i.imgur.com/aJ17bf7.gif
  • Chatbox

    You don't have permission to chat.
    Load More
Sign in to follow this  
M2Kingdoms

Dungeon 2x2 simples

5 posts in this topic

Olá boa noite. Eu já pedi ajuda noutro fórum, no qual o Paci ajudou-me ao dar uma quest simples para criar uma dungeon. 

 

Mas porém não é por falta de vontade que não consiga entender a maioria das coisas e o que eu quero é bastante simples:

Entrar na dungeon, exemplo:

Primeira Ronda

-matar 10 javalis

Segunda Ronda

- Matar 10 Ursos

Terceira Ronda

- Mata os boss's

 

Queria que a quest, verifica-se:

- Se estão aptos para a próxima ronda e começar a outra rodada 

- Se quando os moobs estão mortos verificar (isto é o menos pq tem este comando: d.kill_all())

- Se quando acabar a dungeon, todos vão para as suas cidades

 

Só queria isso, saber entender um pouco sobre dungeon, há muitas quests que requer uma linguagem muito avançada, para uns é simples, para outros, umas horas assim como o meu caso. 

 

Já estou a muitas horas mesmo a tentar, a tirar de outras dungeons, a tentar entender e torna-se muito complicado deixar o projecto em pausa mas como eu sou teimoso gosto de ir até ao fim.

 

Eu odeio pedir ajuda, acreditem nisso, mas se temos uma comunidade, há que ajudar uns aos outros, um dia secalhar tu vais andar a procura da mesma coisa que eu e vais encontrar aqui (caso me ajudarem)

 

A minha Quest:

quest dungeon_lynm2 begin
	state start begin

		function setting()
			return {
				["MAP_INDEX"] = 355,
				["ENTRY_POS"] = {369, 430},
				["FLOORS"] = {
					{369, 430}, -- 1
					{369, 430}, -- 2
					-- etc
				},
				["TASKS"] = {
					{101, 20},
					{101, 20},
					-- etc
				},
				-- etc
			}
		end

		function in_dungeon()
			local dunMapIdx = dungeon_lynm2.setting().MAP_INDEX
			return pc.get_map_index() >= dunMapIdx * 10000 and pc.get_map_index() < (dunMapIdx + 1) * 10000
		end

		function join()
			local setting = dungeon_lynm2.setting()

			if party.is_party() then
				d.new_jump_party(setting.MAP_INDEX, setting.ENTRY_POS[1], setting.ENTRY_POS[2])
			else
				d.join(setting.MAP_INDEX)
			end
		end

		when 20060.chat."Dungeon" begin
			say("Entrar?")

			if select("Y", "N") == 2 then
				return
			end

			dungeon_lynm2.join()
		end

		when login with dungeon_lynm2.in_dungeon() begin
			local setting = dungeon_lynm2.setting()

			if d.getf("level") == 0 then
				d.regen_file("data/lynm2/regen_1.txt")
				d.spawn_mob(101, 359, 441) -- vnum, x, y
				d.notice("Mata "..setting.TASKS[1][2].." "..mob_name(setting.TASKS[1][1]))
				d.setf("level", 1)
			end

		end

		when kill with not npc.is_pc() and dungeon_lynm2.in_dungeon() begin
			local level = d.getf("level")
			local tasks = dungeon_lynm2.setting().TASKS

			if npc.get_race() ~= tasks[level][1] then
				return
			end

			local killCount = d.getf("kill_count") + 1

			if killCount < tasks[level][2] then
				d.setf("kill_count", killCount)
				return
			end

			d.notice("Nivel "..level.." completo. 5 segundos para subir.")
			d.setf("kill_count", 0)
			server_timer("my_simple_dungeon_jump_timer", 5, d.get_map_index())
		end

		when my_simple_dungeon_jump_timer.server_timer with d.select(get_server_timer_arg()) begin
			local setting = dungeon_lynm2.setting()
			local nextLevel = d.getf("level") + 1
			local task = setting.TASKS[nextLevel]

			d.setf("level", nextLevel)
			d.kill_all()
			d.clear_regen()
			d.notice("Mata "..task[2].." "..mob_name(task[1]))
			d.regen_file("data/lynm2/regen_2.txt")
			d.spawn_mob(101, 375, 433) -- vnum, x, y
			d.jump_all(setting.FLOORS[nextLevel][1], setting.FLOORS[nextLevel][2])
						d.setf("level", 2)
		end

	end
end

 

 

Obrigado!!! 

Share this post


Link to post
Share on other sites
antiblock
Elveron
6 minutos atrás, LynM2 disse:

Olá boa noite. Eu já pedi ajuda noutro fórum, no qual o Paci ajudou-me ao dar uma quest simples para criar uma dungeon. 

 

Mas porém não é por falta de vontade que não consiga entender a maioria das coisas e o que eu quero é bastante simples:

Entrar na dungeon, exemplo:

Primeira Ronda

-matar 10 javalis

Segunda Ronda

- Matar 10 Ursos

Terceira Ronda

- Mata os boss's

 

Queria que a quest, verifica-se:

- Se estão aptos para a próxima ronda e começar a outra rodada 

- Se quando os moobs estão mortos verificar (isto é o menos pq tem este comando: d.kill_all())

- Se quando acabar a dungeon, todos vão para as suas cidades

 

Só queria isso, saber entender um pouco sobre dungeon, há muitas quests que requer uma linguagem muito avançada, para uns é simples, para outros, umas horas assim como o meu caso. 

 

Já estou a muitas horas mesmo a tentar, a tirar de outras dungeons, a tentar entender e torna-se muito complicado deixar o projecto em pausa mas como eu sou teimoso gosto de ir até ao fim.

 

Eu odeio pedir ajuda, acreditem nisso, mas se temos uma comunidade, há que ajudar uns aos outros, um dia secalhar tu vais andar a procura da mesma coisa que eu e vais encontrar aqui (caso me ajudarem)

 

A minha Quest:


quest dungeon_lynm2 begin
	state start begin

		function setting()
			return {
				["MAP_INDEX"] = 355,
				["ENTRY_POS"] = {369, 430},
				["FLOORS"] = {
					{369, 430}, -- 1
					{369, 430}, -- 2
					-- etc
				},
				["TASKS"] = {
					{101, 20},
					{101, 20},
					-- etc
				},
				-- etc
			}
		end

		function in_dungeon()
			local dunMapIdx = dungeon_lynm2.setting().MAP_INDEX
			return pc.get_map_index() >= dunMapIdx * 10000 and pc.get_map_index() < (dunMapIdx + 1) * 10000
		end

		function join()
			local setting = dungeon_lynm2.setting()

			if party.is_party() then
				d.new_jump_party(setting.MAP_INDEX, setting.ENTRY_POS[1], setting.ENTRY_POS[2])
			else
				d.join(setting.MAP_INDEX)
			end
		end

		when 20060.chat."Dungeon" begin
			say("Entrar?")

			if select("Y", "N") == 2 then
				return
			end

			dungeon_lynm2.join()
		end

		when login with dungeon_lynm2.in_dungeon() begin
			local setting = dungeon_lynm2.setting()

			if d.getf("level") == 0 then
				d.regen_file("data/lynm2/regen_1.txt")
				d.spawn_mob(101, 359, 441) -- vnum, x, y
				d.notice("Mata "..setting.TASKS[1][2].." "..mob_name(setting.TASKS[1][1]))
				d.setf("level", 1)
			end

		end

		when kill with not npc.is_pc() and dungeon_lynm2.in_dungeon() begin
			local level = d.getf("level")
			local tasks = dungeon_lynm2.setting().TASKS

			if npc.get_race() ~= tasks[level][1] then
				return
			end

			local killCount = d.getf("kill_count") + 1

			if killCount < tasks[level][2] then
				d.setf("kill_count", killCount)
				return
			end

			d.notice("Nivel "..level.." completo. 5 segundos para subir.")
			d.setf("kill_count", 0)
			server_timer("my_simple_dungeon_jump_timer", 5, d.get_map_index())
		end

		when my_simple_dungeon_jump_timer.server_timer with d.select(get_server_timer_arg()) begin
			local setting = dungeon_lynm2.setting()
			local nextLevel = d.getf("level") + 1
			local task = setting.TASKS[nextLevel]

			d.setf("level", nextLevel)
			d.kill_all()
			d.clear_regen()
			d.notice("Mata "..task[2].." "..mob_name(task[1]))
			d.regen_file("data/lynm2/regen_2.txt")
			d.spawn_mob(101, 375, 433) -- vnum, x, y
			d.jump_all(setting.FLOORS[nextLevel][1], setting.FLOORS[nextLevel][2])
						d.setf("level", 2)
		end

	end
end

 

 

Obrigado!!! 

 

Queres por exemplo 1 piso 10 javalis

Outro piso 10 ursos e outro piso Boss ?

Share this post


Link to post
Share on other sites

Tipo em relação a quantidade de moobs ou o moob em critério não tem problema porque eu conheço bem, o problema é ele da ronda 1, passar para 2, da 2 para a 3 e finalizar e todos serem teleportados daqui a 1 minuto exemplo 

Share this post


Link to post
Share on other sites
3 minutos atrás, LynM2 disse:

Tipo em relação a quantidade de moobs ou o moob em critério não tem problema porque eu conheço bem, o problema é ele da ronda 1, passar para 2, da 2 para a 3 e finalizar e todos serem teleportados daqui a 1 minuto exemplo 

Oque estas a dizer que queres passar todos os moobs para outras ronda mas teres um boss na ultima certo ?

Edited by [SA]Power (see edit history)

Share this post


Link to post
Share on other sites

cada ronda tem moobs diferentes e tal tens que matar os moobs citados para passares pras proximas rondas. Depois de finalizar a dungeon, serem teleportados para a cidade mano

Share this post


Link to post
Share on other sites
Sign in to follow this