Quest Turnul Demonilor 11 etaje

Avatar utilizator
Elyps
Deţinător Server

Deţinător Server
Mesaje: 96
Membru din: 02 Oct 2013, 11:51
Regat: Jinno
Aprecieri: 43  
Mulţumiri: 17  
Medalii

Am decis sa postez si quest-ul pentru Turnul Demonilor cu 11 etaje :). Il aveti mai jos . Modificati voi la sfarsit ce sa va ofere Ingerul cu Coasa si Moartea Albastra :) , sau puteti pune orice alt mob doriti. O zi buna .

Cod: Selectaţi tot

quest turnul_demonilor begin
    state start begin
        when login begin
            if pc.get_map_index() == 66 then
                if pc.get_x() < 2048+88 or pc.get_y() < 6656+577 or pc.get_x() > 2048+236 or pc.get_y() > 6656+737 then
                    pc.warp((5376+532)*100, (512+596+4)*100, 65)
                end
                pc.set_warp_location(65, 5376+532, 512+596+4)
            elseif pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 then
                pc.set_warp_location(65, 5376+532, 512+596+4)
            end
        end

		when logout begin
			pc.remove_item(30300, pc.count_item(30300))
			pc.remove_item(30301, pc.count_item(30301))
			pc.remove_item(30302, pc.count_item(30302))
		end
	when deviltower_man.chat.locale.deviltower_man_chat begin
                if pc.get_level() < 40 then
                        say_title("Gardianul Turnului:")
                        say("")
                        ---                                                   l
                        say("Acest turn este plin de demoni.")
                        say("Doar cei puternici pot supravietui.")
                        say("Ce sa-ti spun..cine a intrat")
                        say("nu a mai iesit in viata.")
                        say("Nu poti sa intri pentru ca nu")
                        say("ai level 40 inca.")
                else
                        say_title("Gardianul Turnului:")
                        say("")
                        ---                                                   l
                        say("Acest turn este plin de demoni.")
                        say("Doar cei puternici pot supravietui.")
                        say("Ce sa-ti spun..cine a intrat")
                        say("nu a mai iesit in viata.")
                        say("Vrei sa intri in Turnul Demonilor?")
                        say("")
                        local s = select("Da.", "Nu.")
                        if s == 1 then
                                -- warp into!
                                pc.warp(216500,727000)
                        end
            end
        end
        when devil_stone1.kill begin
            timer("devil_stone1_1", 6)
        end
        when devil_stone1_1.timer begin
            d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
            d.regen_file("data/dungeon/deviltower2_regen.txt")
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/deviltower3_regen.txt")
        end
        when devil_stone3.kill begin
            d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/deviltower4_regen.txt")
            d.check_eliminated()
        end
        function get_4floor_stone_pos()
	    local positions = 
			{
				{368, 629}, {419, 630}, {428, 653}, {422, 679},
				{395, 689}, {369, 679}, {361, 658},
			}
            for i = 1, 6 do
                local j = number(i, 7)
                if i != j then
                    local t = positions[i];
                    positions[i] = positions[j];
                    positions[j] = t;
                end
            end
            return positions
        end
        when 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
            d.setf("level", 4)
            local positions = turnul_demonilor.get_4floor_stone_pos()
            for i = 1, 6 do
                chat(positions[i][1], positions[i][2])
                d.set_unique("fake" .. i , d.spawn_mob(8017, positions[i][1], positions[i][2]))
            end
            chat(positions[7][1], positions[7][2])
            local vid = d.spawn_mob(8017, positions[7][1], positions[7][2])
            chat(vid)
            d.set_unique("real", vid)
	    server_loop_timer('devil_stone4_update', 10, pc.get_map_index())
	    server_timer('devil_stone4_fail1', 5*60, pc.get_map_index())

            d.notice("Ai ajuns la etajul 3.");
            d.notice("Multe pietre Metin false va irita ochii si urechile.");
            d.notice("Gaseste piatra Metin corecta si distruge-o in 15 minute");
            d.notice("Aceasta este singura modalitate de a trece acest etaj.");
            d.notice("");
        end

        when devil_stone4_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Minute ramase: 10")
		server_timer('devil_stone4_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Minute ramase: 5")
		server_timer('devil_stone4_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone4_fail.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Timpul a expirat.")
                d.exit_all()
		clear_server_timer('devil_stone4_update', get_server_timer_arg())
            end
        end

        when devil_stone4_update.server_timer begin
            if d.select(get_server_timer_arg()) then
                if not d.is_unique_dead("real") then
                    for i = 1, 6 do
                        if d.getf("fakedead" .. i) == 0 then
                            if d.unique_get_hp_perc("fake" .. i) < 50 then
                                d.purge_unique("fake" .. i)
                                d.setf("fakedead" .. i, 1)
                                d.notice("Pietrele Metin false dispar...");
                            end
                        end
                    end
                else
                    server_timer("devil_stone4_end", 5, get_server_timer_arg())
                    d.notice("Ai dovedit ca ai un instinct bun.");
                    d.notice("Ai distrus piatra Metin corecta.")
		    clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
		    clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
		    clear_server_timer('devil_stone4_fail', get_server_timer_arg())
                end
            else
		server_timer('devil_stone4_stop_timer', 1, get_server_timer_arg())
            end
        end

        when devil_stone4_stop_timer.server_timer begin
	    clear_server_timer('devil_stone4_update', get_server_timer_arg())
        end

        when devil_stone4_end.server_timer begin
            if d.select(get_server_timer_arg()) then
			clear_server_timer('devil_stone4_update', get_server_timer_arg())
			clear_server_timer('devil_stone4_fail1', get_server_timer_arg())
			clear_server_timer('devil_stone4_fail2', get_server_timer_arg())
			clear_server_timer('devil_stone4_fail', get_server_timer_arg())

                d.setf("level", 5)
                d.setf("stone_count", 5)
                d.notice("Ai ajuns la Poarta cu numarul 5.")
                d.notice("La acest etaj multi monstrii pazesc Sigilile de Piatra,")
                d.notice("ce te vor ajuta sa treci la etajul 6.")
                d.notice("Unii monstrii au cheia ce te ajuta")
                d.notice("sa deschizi Sigiliul de Piatra.")
                d.notice("Deschide-le in cel mult 20 minute")
                d.notice("pentru a avansa la etajul 6.")
                d.notice("")
                d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
		server_timer('devil_stone5_fail1', 5*60, get_server_timer_arg())
		clear_server_timer('devil_stone4_update', get_server_timer_arg())

                d.set_regen_file("data/dungeon/deviltower5_regen.txt")

                d.spawn_mob(20073, 421, 452)
                d.spawn_mob(20073, 380, 460)
                d.spawn_mob(20073, 428, 414)
                d.spawn_mob(20073, 398, 392)
                d.spawn_mob(20073, 359, 426)
            end
        end
        when devil_stone5_fail1.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Minute ramase: 15")
		server_timer('devil_stone5_fail2', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail2.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Minute ramase: 10")
		server_timer('devil_stone5_fail3', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail3.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Minute ramase: 5")
		server_timer('devil_stone5_fail', 5*60, get_server_timer_arg())
            end
        end

        when devil_stone5_fail.server_timer begin
            if d.select(get_server_timer_arg()) then
                d.notice("Timpul a expirat.")
                d.exit_all()
            end
        end

        when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
            local KILL_COUNT_FOR_DROP_KEY = 50
            local n =d.getf("count") + 1
            d.setf("count", n)
            if n == KILL_COUNT_FOR_DROP_KEY then
                game.drop_item(50084, 1)
                d.setf("count", 0)
            end
        end
        when devil_stone5.take with item.vnum == 50084 begin
            npc.purge()
            item.remove()
            d.setf("stone_count", d.getf("stone_count") - 1)
            if d.getf("stone_count") <= 0 then
                d.setf("level", 6)
                d.clear_regen()
                d.regen_file("data/dungeon/deviltower6_regen.txt")

                d.notice("Ai deschis toate portile.")
                d.notice("Vei fi teleportat la etajul 6.")
                d.notice("Distruge toti monstrii din acest etaj,")
                d.notice("Si apoi Regele Demon.")
                d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
		clear_server_timer('devil_stone5_fail1', get_server_timer_arg())
		clear_server_timer('devil_stone5_fail2', get_server_timer_arg())
		clear_server_timer('devil_stone5_fail3', get_server_timer_arg())
		clear_server_timer('devil_stone5_fail', get_server_timer_arg())
            else
                d.notice("Ai deschis Sigiliu! Mai ai inca "..d.getf("stone_count").."de deschis:")
            end
        end

        when devil_stone6.kill begin
            d.kill_all()
            d.check_eliminated()
            local reward_alchemist = {20074, 20075, 20076}
            d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
            d.setqf("can_refine", 1)
        end

   when 20074.chat."Despre ultimul etaj al Turnul Demonilor.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
          say(""..mob_name(20074)..":")
          say("Fierari din Turnul Demonilor")
          say("Au gasit calea de a urca la etajul 7.")
          say("Este necesar un status si o abilitate buna de a urca.")
          say("Hmmmm...")
          say("Dupa ce am analizat starea voastra.....")
          wait()
          if pc.level >=75 then
          say(""..mob_name(20074)..":")
              say("Esti puternic pentru a urca.")
              say("Te voi lasa sa stii drumul..")
              timer("devil_jump_7", 6)
              npc.unlock()
              d.purge()
              return
          end
          say(""..mob_name(20074)..":")
          say("Ai nevoie de mai mult antrenament")
          say("pentru a merge acolo....")
          say("Intoarce-te cand ai destula experienta.")

		say("")
		wait()
		pc.warp(590500, 110500)
		return
	    end
   when 20075.chat."Despre ultimul etaj al Turnul Demonilor.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
		   say(""..mob_name(20075)..":")
		  say("Fierari din Turnul Demonilor")
          say("Au gasit calea de a urca la etajul 7.")
          say("Este necesar un status si o abilitate buna de a urca.")
          say("Hmmmm...")
          say("Dupa ce am analizat starea voastra.....")
          wait()
          if pc.level >=75 then
               say(""..mob_name(20075)..":") 
              say("Esti puternic pentru a urca.")
              say("Te voi lasa sa stii drumul..")
              timer("devil_jump_7", 6)
              npc.unlock()
              d.purge()
              return
          end
		   say(""..mob_name(20075)..":") 
          say("Ai nevoie de mai mult antrenament")
          say("pentru a merge acolo....")
          say("Intoarce-te cand ai destula experienta.")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
   when 20076.chat."Despre ultimul etaj al Turnul Demonilor.." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and npc.lock() begin
		   say(""..mob_name(20076)..":")
          say("Fierari din Turnul Demonilor")
          say("Au gasit calea de a urca la etajul 7.")
          say("Este necesar un status si o abilitate buna de a urca.")
          say("Hmmmm...")
          say("Dupa ce am analizat starea voastra.....")
          wait()
          if pc.level >=75 then
               say(""..mob_name(20076)..":") 
              say("Esti puternic pentru a urca.")
              say("Te voi lasa sa stii drumul..")
              timer("devil_jump_7", 6)
              npc.unlock()
              d.purge()
              return
          end
		   say(""..mob_name(20076)..":") 
          say("Ai nevoie de mai mult antrenament")
          say("pentru a merge acolo....")
          say("Intoarce-te cand ai destula experienta.")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
	    end

   when devil_jump_7.timer begin
		d.clear_regen()

		d.spawn_mob(8018, 639, 658)
		d.spawn_mob(8018, 611, 637)
		d.spawn_mob(8018, 596, 674)
		d.spawn_mob(8018, 629, 670)

		d.setf("level", 7)

		d.jump_all(2048+590, 6656+638)
	end
	
	when 8018.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		local cont = d.getf("7_stone_kill") + 1
		d.setf("7_stone_kill", cont)

		if cont >= 4 then
			d.setf("7_stone_kill", 0)
			d.set_regen_file("data/dungeon/deviltower7_regen.txt")
        end
	end

	when 8019.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		game.drop_item(30300, 1)
	end

	when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		pc.remove_item("30300", 1)

		local pct = number(1,10)

		if pct == 1 then
			game.drop_item(30302, 1)
			d.clear_regen()
		else
			game.drop_item(30301, 1)
			
		end
	end

	when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		-- 8ÃþÀ¸·Î ¿öÇÁ

			if d.getf( "level" ) != 7 then
				pc.remove_item( "30302", 1)
				return
			end
			
		say("Cu aceasta mapa poti urca mai sus!")
		pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		d.clear_regen()
	end
						
	--------------------------------------------
	-- 8Ãþ ÁøÀÔºÎÅÍ 9Ãþ ±îÁö
	--------------------------------------------
	when devil_jump_8.timer begin
		d.setf("level", 8)
		d.jump_all(2048+590, 6656+403)
		d.set_regen_file("data/dungeon/deviltower8_regen.txt")
		d.spawn_mob(20366, 640, 460)
		local _count= pc.count_item(30302)-- Áø »ç±ÍŸ¿ö Áö¿ì±â
		pc.remove_item(30302,_count)
		
	end

	when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		local pct1 = number(1, 5)

		if pct1 == 1 and d.getf("level") == 8 then
			local pct2 = number(1, 10)
			if pct2 == 1 then
				-- ÁøÂ¥ ¿­¼è µå·Ó
				game.drop_item(30304, 1)
			else
				-- °¡Â¥ ¿­¼è µå·Ó
				game.drop_item(30303, 1)
			end
		else
			return
		end
	end

	when 20366.take with item.vnum == 30304 begin
		-- ºÀÀÎ ÇØÃ¼ 9Ãþ ¤¡¤¡
		npc.purge()
		item.remove()
		timer("devil_jump_9", 6)
	end

	---------------------------------------------
	-- 9Ãþ ÁøÀÔºÎÅÍ ¿Ï·á±îÁö
	---------------------------------------------
	when devil_jump_9.timer begin
		d.setf("level", 9)
		d.jump_all(2048+590, 6656+155)
		d.regen_file("data/dungeon/deviltower9_regen.txt")
	end

	when 1093.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		chat("Ingerul a fost ucis")
		notice_all(""..pc.get_name().." a omorat Ingerul cu Coasa.")
		say_title("Bravo!")
		say("Felicitari,ai ucis diavolul.")
		say("O sa iti dau o recompensa : ")
		say_item(30319)
		pc.give_item2(30319)
		pc.give_item2(30319)
		pc.give_item2(30319)
		pc.give_item2(30319)
		d.kill_all()
		timer("devil_end_jump", 10)
	end
	
	when devil_end_jump.timer begin
		d.setf("level", 7)
		d.jump_all(2048+590, 6656+638)
		d.clear_regen()
		d.spawn_mob(1094, 639, 658)
	end
		
	when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.notice("Felicitari!")
		d.notice("Ai ucis soldatii regelui demon!")
		d.notice("Acum, veti ajunge la etajul urmator, Moartea Albastra!")
		d.kill_all()
		timer("devil_end_jump_schmied", 10)
		end

	when devil_end_jump_schmied.timer begin
		d.setf("level", 9)
		d.jump_all(2048+590, 6656+155)
		d.clear_regen()
		d.spawn_mob(1095, 605, 178)
	end
		
	when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		notice_all(""..pc.get_name().." a omorat Moartea Albastra.")
		d.notice("Ai ucis Moartea Albastra!")
		d.notice("Ca o recompensa îti vor aparea toti cei 3 fierari din acest turn!")
		pc.give_item2(30320)
		pc.give_item2(30320)
		pc.give_item2(30320)
		end
	end
	end
Tutorial instalare quest:
1. Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu rasplata.quest .
2. Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
3. Îl puneţi acolo (să fie .quest) şi da-ţi permisiuni 777.
4. Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest apoi ./qc rasplata.quest
5. Intraţi pe server şi scrieţi /reload q .
6. Testaţi quest-ul .
Ultima oară modificat 23 Apr 2016, 23:41 de către Ankhed, modificat 1 dată în total.
Motiv: .
Pentru acest mesaj, Elyps for the post:
marsavu123
Un nou server PvM 24/7
Noi oferim longitudinea si calitatea
Alege Imagineby [Elyps]
Afișează semnătura
Avatar utilizator
Awas
Nou Venit

Nou Venit
Mesaje: 33
Membru din: 05 Oct 2013, 18:33
Aprecieri: 35  
Mulţumiri: 0
Medalii

L-am pus ... acum să îl testez .
Avatar utilizator
Varanus
Nivel 4

Nivel 4
Mesaje: 678
Membru din: 04 Aug 2013, 17:17
Server: Metin2 BT
Regat: Jinno
Aprecieri: 0
Mulţumiri: 31  
Medalii

Sper sa mearga. :)
Spune STOP fumatului, spune DA vietii!
Imagine
Afișează semnătura
Avatar utilizator
Elyps
Deţinător Server

Deţinător Server
Mesaje: 96
Membru din: 02 Oct 2013, 11:51
Regat: Jinno
Aprecieri: 43  
Mulţumiri: 17  
Medalii

Mie imi merge perfect. Verificati intai de unde se seteaza respawn-ul la fiecare etaj :). adica regen file :P folderu exact.
Un nou server PvM 24/7
Noi oferim longitudinea si calitatea
Alege Imagineby [Elyps]
Afișează semnătura
Avatar utilizator
deVice
Nivel 6

Nivel 6
Mesaje: 1010
Membru din: 06 Aug 2013, 13:59
Regat: Jinno
Aprecieri: 35  
Mulţumiri: 3  
Discord: Copiază ID
 Contact:
Medalii

Foarte folositor :ymhug: De mult il cautam
Imagine
Afișează semnătura
Avatar utilizator
WorldOfMetin2
Nou Venit

Nou Venit
Mesaje: 20
Membru din: 15 Oct 2013, 19:26
Server: www.metin2.co.nz
Regat: Shinsoo
Aprecieri: 0
Mulţumiri: 0
Medalii

nu am mai vazut asta pana acum
Avatar utilizator
Varanus
Nivel 4

Nivel 4
Mesaje: 678
Membru din: 04 Aug 2013, 17:17
Server: Metin2 BT
Regat: Jinno
Aprecieri: 0
Mulţumiri: 31  
Medalii

Este doar quest ? Nu ar trebui sa fie si altceva cand implementez ? Si mai am o intrebare , eu am DT bugat , cand bag acest quest , il bag peste questul meu ?
Ultima oară modificat 28 Dec 2020, 17:10 de către Sathyr, modificat 1 dată în total.
Motiv: Cuvinte corectate!
Spune STOP fumatului, spune DA vietii!
Imagine
Afișează semnătura
Avatar utilizator
Elyps
Deţinător Server

Deţinător Server
Mesaje: 96
Membru din: 02 Oct 2013, 11:51
Regat: Jinno
Aprecieri: 43  
Mulţumiri: 17  
Medalii

Salut , da este doar quest-ul , fisierele din data/dungeon orice serverfiles le are..deci nu avea rost sa le mai pun si pe acelea. Referitor la quest-ul tau , logic ca o sa-l dezinstalezi pe al tau dupa il instalezi pe al meu , reload q sau reboot si il incerci.
Un nou server PvM 24/7
Noi oferim longitudinea si calitatea
Alege Imagineby [Elyps]
Afișează semnătura
Avatar utilizator
Varanus
Nivel 4

Nivel 4
Mesaje: 678
Membru din: 04 Aug 2013, 17:17
Server: Metin2 BT
Regat: Jinno
Aprecieri: 0
Mulţumiri: 31  
Medalii

[DeSire] scrie:Salut , da este doar quest-ul , fisierele din data/dungeon orice serverfiles le are..deci nu avea rost sa le mai pun si pe acelea. Referitor la quest-ul tau , logic ca o sa-l dezinstalezi pe al tau dupa il instalezi pe al meu , reload q sau reboot si il incerci.
Pai , pur si simplu inlocuiesc datele din questul meu , cu al tau si va merge cu 11 etaje ? Data si dungeon sigur sunt pentru 11 etaje ? Eu daca am de ex pentru 9 ?
Spune STOP fumatului, spune DA vietii!
Imagine
Afișează semnătura
Avatar utilizator
SkyMetin2
Nivel 2

Nivel 2
Mesaje: 257
Membru din: 22 Oct 2013, 02:13
Server: SkyMetin2
Regat: Jinno
Aprecieri: 3  
Mulţumiri: 7  
 Contact:
Medalii

Pare inutil, parerea mea !
Va recomandam http://skymetin2.ro
Afișează semnătura
Răspunde
Răspunsuri
6
Vizualizări
877
Răspunsuri
3
Vizualizări
83

Înapoi la “Quest-uri”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 5 vizitatori