Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Szukam Odbugowanego Quest Wieza Demonów


Rekomendowane odpowiedzi

Opublikowano

 

 

quest deviltower_zone begin
    state start begin
	when login begin
	    if pc.get_map_index() == 66 then
		-- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
		-- ĽhĽĆ ˝dłň
		-- 1ĽÓ  88  577  236 737
		-- 2ĽÓ  91  343  238 504
		-- 3ĽÓ 104  107  248 269
		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 deviltower_man.chat."Wieża Demonów" begin
	    if pc.get_level() < 40 then
		say_koral("Strażnik Wieży Demonów: ")
		say_cialo(locale.deviltower_man_say_you_cant)
	    else
		say_koral("Strażnik Wieży Demonów: ")
		say_cialo(locale.deviltower_man_say)
		local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
		if s == 1 then
		    -- warp into!
		    pc.warp(216500,727000)
		end
	    end
	end
	when kill with npc.get_race() == 8015 and pc.get_map_index() == 66 begin
	    timer("devil_stone1_1", 6)
	end
	when devil_stone1_1.timer  begin
		local mapto7= pc.count_item(30302)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
		pc.remove_item(30302,mapto7)

		local boxto7= pc.count_item(30300)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
		pc.remove_item(30300,boxto7)

	    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_stone2.kill begin
	--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
	--end
	when devil_stone3.kill begin
	    --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
	    --d.set_exit_all_at_eliminate(6)
	    --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
	    --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
	    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()
	    --d.exit_all()
	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
	    --for i = 1, 7 do
	--	positions[i][1] = positions[i][1] * 100
	--	positions[i][2] = positions[i][2] * 100
	 --   end
	    return positions
	end
	when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    d.setf("level", 4)
	    -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
	    --d.regen_file("data/dungeon/deviltower4_regen.txt")
	    local positions = deviltower_zone.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("<Informacja> Brawo, Udało się Tobie");
	    d.notice("<Informacja> zniszczyc kamien metin!");
	    d.notice("<Informacja> Macie 15 minut zanim zostaniecie wylogowani.");
	    d.notice("<Informacja> Spieszcie się!");
	end

	when devil_stone4_fail1.server_timer begin
	    if d.select(get_server_timer_arg()) then
		d.notice("<Informacja> Pozostało 10 minut!")
		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("<Informacja> Pozostało 5 minut!")
		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("<Informacja> Nie udało się, zostaniecie wylogowani! ")
		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("<Informacja> To nie ten kamien! ");
			    end
			end
		    end
		else
		    --d.clear_regen()
		    --d.regen_file("data/dungeon/deviltower5_regen.txt")
		    server_timer("devil_stone4_end", 5, get_server_timer_arg())
		    d.notice("<Informacja> Udało się! Zabij wszystkie potwory na nastepnym");
		    d.notice("<Informacja> pietrze, aby zdobyc kamien otwarcia!")
		    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
		d.setf("level", 5)
		d.setf("stone_count", 5)
		d.notice("<Informacja> Brawo, jesteś na 5 piętrze!")
		d.notice("<Informacja> Aby przejść na 6 pietro musisz zabić ")
		d.notice("<Informacja> wszystkie potwory, zdobyć Kamień Otwarcia ")
		d.notice("<Informacja> i otworzyć pieczęcie przed końcem czasu! ")
		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())

		-- 5ĽÓÄ~Äň¦A˛{
		d.set_regen_file("data/dungeon/deviltower5_regen.txt")

		-- 5ĽÓ«Ę¦LĄŰ¦A˛{
		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("<Informacja> Pozostało 15 minut!")
		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("<Informacja> Pozostało 10 minut!")
		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("<Informacja> Pozostało 5 minut!")
		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("<Informacja> Nie udało się, zostaniecie wylogowani! ")
		d.exit_all()
	    end
	end

	--when devil_stone4.kill begin
	    --d.setf("level", 5)
	    --d.setf("stone_count", 4)
	    --d.clear_regen()
	    --d.regen_file("data/dungeon/deviltower5_regen.txt")
	    --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
	--end

	when kill with npc.get_race() == 1062 and pc.in_dungeon() and d.getf("level") == 5 begin
	    local KILL_COUNT_FOR_DROP_KEY = 50
	    --if is_test_server() then
		--KILL_COUNT_FOR_DROP_KEY = 1
	    --end
	    local n =d.getf("count") + 1
	    d.setf("count", n) 
	    if n == KILL_COUNT_FOR_DROP_KEY then
		-- ±Ľ¤UÂę°Í
		pc.give_item2(50084, 1)
		d.notice("<Informacja> "..pc.get_name().." podniósł Kamień Otwarcia. ")
		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("<Informacja> Brawo udało się! Jesteś na 6 piętrze! ")
		d.notice("<Informacja> Zabij wszystkie potwory! ")
		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("<Informacja> Pozostałe pieczęcie: "..d.getf("stone_count"))
	    end
	end

	when devil_stone6.kill begin
	    -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
	    -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
	    --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
	    d.kill_all()
	   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
	    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

	--------------------------------------
	-- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
	--------------------------------------

	when 20074.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
		say_koral(""..mob_name(20074).."")
		say_cialo("Zostaniesz przeniesiony")
		say_cialo("na 7 pietro Wieży Demonów!")
		say_cialo("Lecz uważaj...")
		say_cialo("Tam nie będzie tak łatwo jak wczesniej! ")
		wait()
		if pc.level >=75 then
			say_koral("Informacja: ")
			say_cialo("Kazdy z graczy zostanie przeniesiony! ")
			timer("devil_jump_7", 6)
			return
		end
		say_koral("Informacja: ")
		say_cialo("Mozesz przejsc dalej! ")
		say("")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20075.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
		say_koral(""..mob_name(20075).."")
		say_cialo("Zostaniesz przeniesiony ")
		say_cialo("na 7 pietro Wieży Demonów! ")
		say_cialo("Lecz uważaj... ")
		say_cialo("Tam nie będzie tak łatwo jak wczesniej! ")
		wait()
		if pc.level >=75 then
			say_koral("Informacja: ")
			say_cialo("Kazdy z graczy zostanie przeniesiony! ")
			timer("devil_jump_7", 6)
			return
		end
		say_koral("Informacja: ")
		say_cialo("Mozesz przejsc dalej! ")
		say("")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20076.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
		say_koral(""..mob_name(20076).."")
		say_cialo("Zostaniesz przeniesiony")
		say_cialo("na 7 pietro Wieży Demonów!")
		say_cialo("Lecz uważaj...")
		say_cialo("Tam nie będzie tak łatwo jak wczesniej!")
		wait()
		if pc.level >=75 then
			say_koral("Informacja: ")
			say_cialo("Kazdy z graczy zostanie przeniesiony! ")
			timer("devil_jump_7", 6)
			return
		end
		say_koral("Informacja: ")
		say_cialo("Mozesz przejsc dalej! ")
		say("")
		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 kill with npc.get_race() == 8018 and 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 kill with npc.get_race() == 8019 and 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
			-- ±Ľ¤UŻu¦aąĎ
			game.drop_item(30302, 1)
			d.clear_regen()
		else
			-- ±Ľ¤U°˛¦aąĎ
			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
		-- ¶Ç°e¨ě8ĽÓ
		say_koral("Informacja: ")
		say_cialo("Przeniesiesz się na 8 pietro! ")
		pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		d.kill_all()
		d.clear_regen()
	end
						
	--------------------------------------------
	-- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
	--------------------------------------------
	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)-- ®ř·ŔŻu¤`ĆF¶đ
		pc.remove_item(30302,_count)
		
	end

	when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 8 begin
		local pct1 = number(1, 5)
		if pct1 == 1 then
			local pct2 = number(1, 10)
			if pct2 == 1 then
				-- ±Ľ¤UŻuÂę°Í
				game.drop_item(30304, 1)
			else
				-- ±Ľ¤U°˛Âę°Í
				game.drop_item(30303, 1)
			end
		else
			return
		end
	end

	when 20366.take with item.vnum == 30304 begin
		-- 9ĽÓ«Ę¦L¸Ń°Ł
		d.notice("<Informacja> Zostaniecie przeniesieni na 9 pietro! ")
		npc.purge()
		d.kill_all()
		d.clear_regen()
		item.remove()
		timer("devil_jump_9", 6)
	end

	---------------------------------------------
	-- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
	---------------------------------------------
	when devil_jump_9.timer begin
		d.setf("level", 9)
		d.jump_all(2048+590, 6656+155)
		d.spawn_mob(1093, 608, 220)
		d.regen_file("data/dungeon/deviltower9_regen.txt")
	end

	when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.kill_all()
		d.notice("<Informacja> Zaraz przeniesiecie się na 10 piętro. ")
		timer("devil_end_jump", 30)
	end

	when devil_end_jump.timer begin
		d.setf("level", 10)
		d.jump_all(2048+590, 6656+155)
		pc.remove_item(30203, pc.count_item(30203))
		d.set_regen_file("data/dungeon/deviltower10_regen.txt")
		d.notice("<Informacja> Zdobądźcie 100 Kryształów z Metinów Zawiści, następnie przekażcie je na Pomnik Su. ")
		d.notice("<Informacja> Z jednego metina można zdobyć od 4 do 12 Kryształów! ")
	end
		
	when kill with npc.get_race() == 8040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		local st = math.random(4, 12)
		if pc.countitem(30203) < 100 then
			pc.give_item2(30203, st)
			d.notice("<Informacja> "..pc.get_name().." otrzymał zdobył Kryształy! Ilość: "..st)
		else
			d.notice("<Informacja> Posiadasz już 100 Kryształów!")
		end
	end
	when 20361.take with item.vnum == 30203 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		if pc.countitem(30203) < 100 then
			d.notice("<Informacja> Nie posiadasz 100 Kryształów! ")
		else
			d.kill_all()
			pc.remove_item(30203, pc.count_item(30203))
			d.jump_all(2048+590, 6656+403)
			d.regen_file("data/dungeon/deviltower11_regen.txt")
			d.notice("<Informacja> Witajcie na 11 piętrze! ")
			d.notice("<Informacja> Waszym ostatnim zadaniem jest zniszczenie Niebieskiej Śmierci. Powodzenia! ")
		end
	end
	when kill with npc.get_race() == 1095 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.kill_all()
		d.notice("<Informacja> Za 60 sekund zostaniecie wyrzuceni z Wieży! ")
		timer("devil_end_jumpx", 60)
	end
	
	when devil_end_jumpx.timer begin
		d.exit_all()
	end
end
end 

 

 

727881401622271220780.jpeg
Opublikowano

 

 

quest deviltower_zone begin
    state start begin
	when login begin
	    if pc.get_map_index() == 66 then
		-- ¨Ă«D¦b1ĽÓ®É, °eŞđĄ~­±.
		-- ĽhĽĆ ˝dłň
		-- 1ĽÓ  88  577  236 737
		-- 2ĽÓ  91  343  238 504
		-- 3ĽÓ 104  107  248 269
		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 deviltower_man.chat."Wieża Demonów" begin
	    if pc.get_level() < 40 then
		say_koral("Strażnik Wieży Demonów: ")
		say_cialo(locale.deviltower_man_say_you_cant)
	    else
		say_koral("Strażnik Wieży Demonów: ")
		say_cialo(locale.deviltower_man_say)
		local s = select(locale.deviltower_enter,locale.deviltower_no_enter)
		if s == 1 then
		    -- warp into!
		    pc.warp(216500,727000)
		end
	    end
	end
	when kill with npc.get_race() == 8015 and pc.get_map_index() == 66 begin
	    timer("devil_stone1_1", 6)
	end
	when devil_stone1_1.timer  begin
		local mapto7= pc.count_item(30302)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞşŻu¤`ĆF¶đ
		pc.remove_item(30302,mapto7)

		local boxto7= pc.count_item(30300)  -- ®ř·Ŕ¤ŁŞľ¬O§_¦s¦bŞş¤ŁŞľ¦WŞş˝c¤l
		pc.remove_item(30300,boxto7)

	    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_stone2.kill begin
	--d.jump_all_local(special.devil_tower[2][1], special.devil_tower[2][2])
	--end
	when devil_stone3.kill begin
	    --d.jump_all_local(special.devil_tower[3][1], special.devil_tower[3][2])
	    --d.set_exit_all_at_eliminate(6)
	    --d.set_warp_at_eliminate(6, d.get_map_index(), 100, 100)
	    --d.set_warp_at_eliminate(4, 65, 5376+532, 512+596+4)
	    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()
	    --d.exit_all()
	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
	    --for i = 1, 7 do
	--	positions[i][1] = positions[i][1] * 100
	--	positions[i][2] = positions[i][2] * 100
	 --   end
	    return positions
	end
	when kill with npc.get_race() == 8016 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    d.setf("level", 4)
	    -- ¦A˛{¤j¶q©ÇŞ«¤Î»słyŻuĄŰŔY©M°˛ĄŰŔY
	    --d.regen_file("data/dungeon/deviltower4_regen.txt")
	    local positions = deviltower_zone.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("<Informacja> Brawo, Udało się Tobie");
	    d.notice("<Informacja> zniszczyc kamien metin!");
	    d.notice("<Informacja> Macie 15 minut zanim zostaniecie wylogowani.");
	    d.notice("<Informacja> Spieszcie się!");
	end

	when devil_stone4_fail1.server_timer begin
	    if d.select(get_server_timer_arg()) then
		d.notice("<Informacja> Pozostało 10 minut!")
		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("<Informacja> Pozostało 5 minut!")
		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("<Informacja> Nie udało się, zostaniecie wylogowani! ")
		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("<Informacja> To nie ten kamien! ");
			    end
			end
		    end
		else
		    --d.clear_regen()
		    --d.regen_file("data/dungeon/deviltower5_regen.txt")
		    server_timer("devil_stone4_end", 5, get_server_timer_arg())
		    d.notice("<Informacja> Udało się! Zabij wszystkie potwory na nastepnym");
		    d.notice("<Informacja> pietrze, aby zdobyc kamien otwarcia!")
		    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
		d.setf("level", 5)
		d.setf("stone_count", 5)
		d.notice("<Informacja> Brawo, jesteś na 5 piętrze!")
		d.notice("<Informacja> Aby przejść na 6 pietro musisz zabić ")
		d.notice("<Informacja> wszystkie potwory, zdobyć Kamień Otwarcia ")
		d.notice("<Informacja> i otworzyć pieczęcie przed końcem czasu! ")
		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())

		-- 5ĽÓÄ~Äň¦A˛{
		d.set_regen_file("data/dungeon/deviltower5_regen.txt")

		-- 5ĽÓ«Ę¦LĄŰ¦A˛{
		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("<Informacja> Pozostało 15 minut!")
		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("<Informacja> Pozostało 10 minut!")
		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("<Informacja> Pozostało 5 minut!")
		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("<Informacja> Nie udało się, zostaniecie wylogowani! ")
		d.exit_all()
	    end
	end

	--when devil_stone4.kill begin
	    --d.setf("level", 5)
	    --d.setf("stone_count", 4)
	    --d.clear_regen()
	    --d.regen_file("data/dungeon/deviltower5_regen.txt")
	    --d.jump_all_local(special.devil_tower[4][1], special.devil_tower[4][2])
	--end

	when kill with npc.get_race() == 1062 and pc.in_dungeon() and d.getf("level") == 5 begin
	    local KILL_COUNT_FOR_DROP_KEY = 50
	    --if is_test_server() then
		--KILL_COUNT_FOR_DROP_KEY = 1
	    --end
	    local n =d.getf("count") + 1
	    d.setf("count", n) 
	    if n == KILL_COUNT_FOR_DROP_KEY then
		-- ±Ľ¤UÂę°Í
		pc.give_item2(50084, 1)
		d.notice("<Informacja> "..pc.get_name().." podniósł Kamień Otwarcia. ")
		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("<Informacja> Brawo udało się! Jesteś na 6 piętrze! ")
		d.notice("<Informacja> Zabij wszystkie potwory! ")
		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("<Informacja> Pozostałe pieczęcie: "..d.getf("stone_count"))
	    end
	end

	when devil_stone6.kill begin
	    -- ¶Ç°e¨ě·Ň¸t©Ň¦bŞş¦aąĎ
	    -- §_«hˇA¶}ł]¤@­Ó·s·Ň¸t
	    --d.jump_all(special.devil_tower[6][1], special.devil_tower[6][2])
	    d.kill_all()
	   -- d.set_warp_at_eliminate(3*60, 65, 5376+532, 512+596+4)
	    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

	--------------------------------------
	-- ĄŃ¶i¤J7ĽÓ¦Ü¨ěąF8ĽÓ¤§«e
	--------------------------------------

	when 20074.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
		say_koral(""..mob_name(20074).."")
		say_cialo("Zostaniesz przeniesiony")
		say_cialo("na 7 pietro Wieży Demonów!")
		say_cialo("Lecz uważaj...")
		say_cialo("Tam nie będzie tak łatwo jak wczesniej! ")
		wait()
		if pc.level >=75 then
			say_koral("Informacja: ")
			say_cialo("Kazdy z graczy zostanie przeniesiony! ")
			timer("devil_jump_7", 6)
			return
		end
		say_koral("Informacja: ")
		say_cialo("Mozesz przejsc dalej! ")
		say("")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20075.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
		say_koral(""..mob_name(20075).."")
		say_cialo("Zostaniesz przeniesiony ")
		say_cialo("na 7 pietro Wieży Demonów! ")
		say_cialo("Lecz uważaj... ")
		say_cialo("Tam nie będzie tak łatwo jak wczesniej! ")
		wait()
		if pc.level >=75 then
			say_koral("Informacja: ")
			say_cialo("Kazdy z graczy zostanie przeniesiony! ")
			timer("devil_jump_7", 6)
			return
		end
		say_koral("Informacja: ")
		say_cialo("Mozesz przejsc dalej! ")
		say("")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20076.chat."Chcę przejść dalej." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 6 begin
		say_koral(""..mob_name(20076).."")
		say_cialo("Zostaniesz przeniesiony")
		say_cialo("na 7 pietro Wieży Demonów!")
		say_cialo("Lecz uważaj...")
		say_cialo("Tam nie będzie tak łatwo jak wczesniej!")
		wait()
		if pc.level >=75 then
			say_koral("Informacja: ")
			say_cialo("Kazdy z graczy zostanie przeniesiony! ")
			timer("devil_jump_7", 6)
			return
		end
		say_koral("Informacja: ")
		say_cialo("Mozesz przejsc dalej! ")
		say("")
		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 kill with npc.get_race() == 8018 and 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 kill with npc.get_race() == 8019 and 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
			-- ±Ľ¤UŻu¦aąĎ
			game.drop_item(30302, 1)
			d.clear_regen()
		else
			-- ±Ľ¤U°˛¦aąĎ
			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
		-- ¶Ç°e¨ě8ĽÓ
		say_koral("Informacja: ")
		say_cialo("Przeniesiesz się na 8 pietro! ")
		pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		d.kill_all()
		d.clear_regen()
	end
						
	--------------------------------------------
	-- ĄŃ¶i¤J8ĽÓ¦Ü¨ěąF9ĽÓ¤§«e
	--------------------------------------------
	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)-- ®ř·ŔŻu¤`ĆF¶đ
		pc.remove_item(30302,_count)
		
	end

	when kill with npc.get_race() == 1040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("level") == 8 begin
		local pct1 = number(1, 5)
		if pct1 == 1 then
			local pct2 = number(1, 10)
			if pct2 == 1 then
				-- ±Ľ¤UŻuÂę°Í
				game.drop_item(30304, 1)
			else
				-- ±Ľ¤U°˛Âę°Í
				game.drop_item(30303, 1)
			end
		else
			return
		end
	end

	when 20366.take with item.vnum == 30304 begin
		-- 9ĽÓ«Ę¦L¸Ń°Ł
		d.notice("<Informacja> Zostaniecie przeniesieni na 9 pietro! ")
		npc.purge()
		d.kill_all()
		d.clear_regen()
		item.remove()
		timer("devil_jump_9", 6)
	end

	---------------------------------------------
	-- ĄŃ¶i¤J9ĽÓ¦Üµ˛§ô
	---------------------------------------------
	when devil_jump_9.timer begin
		d.setf("level", 9)
		d.jump_all(2048+590, 6656+155)
		d.spawn_mob(1093, 608, 220)
		d.regen_file("data/dungeon/deviltower9_regen.txt")
	end

	when kill with npc.get_race() == 1093 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.kill_all()
		d.notice("<Informacja> Zaraz przeniesiecie się na 10 piętro. ")
		timer("devil_end_jump", 30)
	end

	when devil_end_jump.timer begin
		d.setf("level", 10)
		d.jump_all(2048+590, 6656+155)
		pc.remove_item(30203, pc.count_item(30203))
		d.set_regen_file("data/dungeon/deviltower10_regen.txt")
		d.notice("<Informacja> Zdobądźcie 100 Kryształów z Metinów Zawiści, następnie przekażcie je na Pomnik Su. ")
		d.notice("<Informacja> Z jednego metina można zdobyć od 4 do 12 Kryształów! ")
	end
		
	when kill with npc.get_race() == 8040 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		local st = math.random(4, 12)
		if pc.countitem(30203) < 100 then
			pc.give_item2(30203, st)
			d.notice("<Informacja> "..pc.get_name().." otrzymał zdobył Kryształy! Ilość: "..st)
		else
			d.notice("<Informacja> Posiadasz już 100 Kryształów!")
		end
	end
	when 20361.take with item.vnum == 30203 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		if pc.countitem(30203) < 100 then
			d.notice("<Informacja> Nie posiadasz 100 Kryształów! ")
		else
			d.kill_all()
			pc.remove_item(30203, pc.count_item(30203))
			d.jump_all(2048+590, 6656+403)
			d.regen_file("data/dungeon/deviltower11_regen.txt")
			d.notice("<Informacja> Witajcie na 11 piętrze! ")
			d.notice("<Informacja> Waszym ostatnim zadaniem jest zniszczenie Niebieskiej Śmierci. Powodzenia! ")
		end
	end
	when kill with npc.get_race() == 1095 and pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.kill_all()
		d.notice("<Informacja> Za 60 sekund zostaniecie wyrzuceni z Wieży! ")
		timer("devil_end_jumpx", 60)
	end
	
	when devil_end_jumpx.timer begin
		d.exit_all()
	end
end
end 

 

 

Brak Mobów na 7 Piętrze 

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...