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

[Problem]Nowe DT,


Rekomendowane odpowiedzi

Opublikowano

poszukaj tam w temacie lub tu

http://www.mpcforum.pl/topic/223876-pisanie-poprawa-questw/

moze juz ktos je poprawial

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.locale.deviltower_man_chat begin
	    if pc.get_level() < 40 then
		    say(locale.deviltower_man_say_you_cant)
	    else
		    say(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 devil_stone1.kill 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 8016.kill with 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("Brawo, udalo sie Tobie");
	    d.notice("zniszczyc kamien metin!");
	    d.notice("Macie 15 minut na nastepnym pietrze[ENTER] zanim zostaniecie wylogowani.");
	    d.notice("Spieszcie sie!");
    end
    when devil_stone4_fail1.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Pozostalo 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("Pozostalo 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("Nie udalo sie, zostaniecie wylogowany!")
		    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("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("Udalo sie! Zabij wszystkie potwory na nastepnym");
			    d.notice("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("Brawo, jestes na 5 pietrze!")
		    d.notice("Aby przejsc na 6 pietro musisz zabic")
		    d.notice("wszystkie potwory tutaj, zdobyc kamien")
		    d.notice("otwarcia i otworzyc pieczecie przed czasem!")
		    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("Pozostalo 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("Pozostalo 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("Pozostalo 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("Nie udalo sie, zostaniesz wylogowany!")
		    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 1062.kill with 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Âę°Í
		    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("Brawo udalo sie! jestes na 6 pietrze!")
		    d.notice("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("Do otwarcia posostały "..d.getf("stone_count").." pieczęcie")
	    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."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		    say(""..mob_name(20074).."")
		    say("Zostaniesz przeniesiony")
		    say("na 7 pietro Wiezy Demonow!")
		    say("Lecz uwazaj...")
		    say("Tam nie bedzie tak latwo jak wczesniej!")
		    wait()
		    if pc.level >=75 then
				    say("Kazdy z graczy zostanie przeniesiony!")
				    timer("devil_jump_7", 6)
				    return
		    end
		    say("Mozesz przejsc dalej!")
		    say("")
		    say("")
		    wait()
		    pc.warp(590500, 110500)
		    return
   end
    when 20075.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		    say(""..mob_name(20075).."")
		    say("Zostaniesz przeniesiony")
		    say("na 7 pietro Wiezy Demonow!")
		    say("Lecz uwazaj...")
		    say("Tam nie bedzie tak latwo jak wczesniej!")
		    wait()
		    if pc.level >=75 then
				    say("Kazdy z graczy zostanie przeniesiony!")
				    timer("devil_jump_7", 6)
				    return
		    end
		    say("Mozesz przejsc dalej!")
		    say("")
		    say("")
		    wait()
		    pc.warp(590500, 110500)
		    return
   end
    when 20076.chat."Chce przejsc dalej" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		    say(""..mob_name(20076).."")
		    say("Zostaniesz przeniesiony")
		    say("na 7 pietro Wiezy Demonow!")
		    say("Lecz uwazaj...")
		    say("Tam nie bedzie tak latwo jak wczesniej!")
		    wait()
		    if pc.level >=75 then
				    say("Kazdy z graczy zostanie przeniesiony!")
				    timer("devil_jump_7", 6)
				    return
		    end
		    say("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 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
				    -- ?Ľ¤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("Przeniesiesz sie na 8 pietro!")
		    pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		    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 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 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("Zostaniecie przeniesieni na 9 pietro!")
		    npc.purge()
		    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.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
		    d.kill_all()
		    notice_all(pc.get_name().." zabil Umarlego Rozpruwacza!")
		    timer("devil_end_jump", 60)
    end
    when devil_end_jump.timer begin
	    d.exit_all()
    end

    when login begin
		    if pc.get_map_index() == 65 then
				    if pc.getqf("priv_dt") > 0 then
						    pc.setqf("priv_dt", 0)
				    end
		    end
	    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 deviltower_man.chat."Wejdź do Wieży Wygnańców" with party.is_leader() begin
		    say_title("Strażnik Wieży Wygnańców:")
		    if party.get_near_count() < 5 then
				    say("Wybacz, musisz mieć ze sobą 5 osób w grupie.")
				    party.chat("Wasza grupa posiada zbyt mało członków.")
				    return
		    end
	    if pc.get_level() < 110 then
		    say("Wybacz, mogę wpuszczać tylko soby od 110 poziomu.")
		    party.chat("Lider grupy nie posiada 110 poziomu.")
	    else
		    say("Spełniasz wszystkie warunki..")
		    say("Czy aby na pewno chcesz wejść do Wieży?")
		    say("Czeka tam na Ciebie i Twoich znajomych ogromne")
		    say("niebezpieczeństwo.. Jesteś tego pewien?")
		    local s = select("Wejdź!","Nie wchodzę..")

		    if s == 1 then
				    pc.setqf("priv_dt", 1)
			    -- join into map!
			    d.join(66)
		    end
	    end
    end

    when login with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
				    --local i = nie ważne..
				    --chat("i: "..i) -- for test
				    if party.is_leader() == true and pc.getqf("priv_dt") > 0 then
						    pc.setqf("priv_dt", 0)
						    d.regen_file("data/dungeon/wygnancy.txt")
						    d.notice("Witajcie, w Wieży Wygnańców!")
						    d.notice("Zniszczie Metin Morderstwa, by przedostać się dalej.")
						    d.spawn_mob(8024, 195, 690)
				    end
    end


    when 8024.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    timer("wieza", 6)
		    chat(special.devil_tower[1][1].." "..special.devil_tower[1][2])
    end
    when wieza.timer begin
	    d.new_jump_all(66, special.devil_tower[1][1], special.devil_tower[1][2])
	    d.regen_file("data/dungeon/wygnancy2.txt")
	    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[2][1], special.devil_tower[2][2], "data/dungeon/wygnancy3.txt")
    end
    when 1903.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    d.set_warp_at_eliminate(4, d.get_map_index(), special.devil_tower[3][1], special.devil_tower[3][2], "data/dungeon/wygnancy4.txt")
	    d.check_eliminated()
		    d.notice("Elit. Dziewięć Ogonów został pokonany!")
    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 8025.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    d.setf("levels", 4)
	    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(8026, positions[i][1], positions[i][2]))
	    end
	    chat(positions[7][1], positions[7][2])
	    local vid = d.spawn_mob(8026, positions[7][1], positions[7][2])
	    chat(vid)
	    d.set_unique("real", vid)
	    server_loop_timer('devil_stone4_updates', 10, pc.get_map_index())
	    server_timer('devil_stone4_fail1s', 5*60, pc.get_map_index())
	    d.notice("Brawo, udało się Tobie zniszczyć Metin Ma-An.");
	    d.notice("Musicie teraz znaleźć prawdziwy Kamień Metin,");
	    d.notice("by dostać się na kolejne piętro.");
	    d.notice("Macie na to 5 minut zanim zostaniecie wylogowani !");
	    d.notice("Śpieszcie się!");
    end
    when devil_stone4_fail1s.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Pozostało 10 minut!")
		    server_timer('devil_stone4_fail2s', 5*60, get_server_timer_arg())
	    end
    end
    when devil_stone4_fail2s.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Pozostało 5 minut!")
		    server_timer('devil_stone4_fails', 5*60, get_server_timer_arg())
	    end
    end
    when devil_stone4_fails.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Nie udalo sie, zostaniecie wylogowany!")
		    d.exit_all()
		    clear_server_timer('devil_stone4_updates', get_server_timer_arg())
	    end
    end
    when devil_stone4_updates.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("To nie ten kamień!");
					    end
				    end
			    end
		    else
			    server_timer("devil_stone4_ends", 5, get_server_timer_arg())
			    d.notice("Udało się wam zniszczyć prawdziwy Kamień Metin!");
			    d.notice("Zostaniecie przeniesieni na kolejne piętro.")
			    clear_server_timer('devil_stone4_fail1s', get_server_timer_arg())
			    clear_server_timer('devil_stone4_fail2s', get_server_timer_arg())
			    clear_server_timer('devil_stone4_fails', get_server_timer_arg())
		    end
	    else
		    server_timer('devil_stone4_stop_timers', 1, get_server_timer_arg())
	    end
    end
    when devil_stone4_stop_timers.server_timer begin
	    clear_server_timer('devil_stone4_updates', get_server_timer_arg())
    end
    when devil_stone4_ends.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.setf("levels", 5)
		    d.setf("stone_counts", 5)
		    d.notice("Świetnie.. Przechodzicie na 5 piętro!")
		    d.notice("Aby przejść na kolejne musicie zabić wszystkie potwory.")
		    d.notice("Poczym podnieść Kamień Otwarcia i otworzyć,")
		    d.notice("wszystkie pięć pieczęci przed czasem!")
		    d.jump_all(special.devil_tower[4][1], special.devil_tower[4][2])
		    server_timer('devil_stone5_fail1s', 5*60, get_server_timer_arg())
		    clear_server_timer('devil_stone4_updates', get_server_timer_arg())
		    -- 5ĽÓÄ~Äň?A˛{
		    d.set_regen_file("data/dungeon/wygnancy5.txt")
		    -- 5ĽÓ?Ę?LĄŰ?A˛{
		    d.spawn_mob(20353, 421, 452)
		    d.spawn_mob(20353, 380, 460)
		    d.spawn_mob(20353, 428, 414)
		    d.spawn_mob(20353, 398, 392)
		    d.spawn_mob(20353, 359, 426)
	    end
    end
    when devil_stone5_fail1s.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Do Końca pozostało 15 minut.")
		    server_timer('devil_stone5_fail2s', 5*60, get_server_timer_arg())
	    end
    end
    when devil_stone5_fail2s.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Do Końca pozostało 10 minut.")
		    server_timer('devil_stone5_fail3s', 5*60, get_server_timer_arg())
	    end
    end
    when devil_stone5_fail3s.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Do Końca pozostało 5 minut.")
		    server_timer('devil_stone5_fails', 5*60, get_server_timer_arg())
	    end
    end
    when devil_stone5_fails.server_timer begin
	    if d.select(get_server_timer_arg()) then
		    d.notice("Niestety... Nie udało się! Zostaniecie wylogowani.")
		    d.exit_all()
	    end
    end
    when 2412.kill with pc.in_dungeon() and d.getf("levels") == 5 begin
	    local KILL_COUNT_FOR_DROP_KEYs = 50
	    local n =d.getf("counts") + 1
	    d.setf("counts", n)
	    if n == KILL_COUNT_FOR_DROP_KEYs then
		    pc.give_item2(50084, 1)
		    d.notice(pc.get_name().." Podniósł Kamień Otwarcia!")
		    d.setf("counts", 0)
	    end
    end
    when 20353.take with item.vnum == 50084 and d.getf("levels") == 5 begin
	    npc.purge()
	    item.remove()
	    d.setf("stone_counts", d.getf("stone_counts") - 1)
	    if d.getf("stone_counts") <= 0 then
		    d.setf("levels", 6)
		    d.clear_regen()
		    d.regen_file("data/dungeon/wygnancy6.txt")
		    d.notice("Brawo, udało się! Jesteście na 6 piętrze!")
		    d.notice("Zabijcie wszystkie potwory!")
		    d.jump_all(special.devil_tower[5][1], special.devil_tower[5][2])
		    timer("mob",6)
		    clear_server_timer('devil_stone5_fail1s', get_server_timer_arg())
		    clear_server_timer('devil_stone5_fail2s', get_server_timer_arg())
		    clear_server_timer('devil_stone5_fail3s', get_server_timer_arg())
		    clear_server_timer('devil_stone5_fails', get_server_timer_arg())
	    else
						    d.notice("Do otwarcia pozostały "..d.getf("stone_counts").." pieczęcie.")
	    end
    end

    when mob.timer begin
		    d.spawn_mob(1304, 425, 216);
    end
    when 1306.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("levels") == 6 begin
	    d.kill_all()
	    d.check_eliminated()
	    local reward_alchemists = {20074, 20075, 20076}
	    d.spawn_mob(reward_alchemists[number(1,3)], 425, 216);
	    d.setqf("can_refine", 2)
    end

    --------------------------------------
    -- ĄŃ?i¤J7ĽÓ?ܨěąF8ĽÓ¤§?e
    --------------------------------------
    when 20074.chat."Chce przejść dalej (smok)" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("levels") == 6 begin
		    say_title(""..mob_name(20074).."")
		    say("Możesz przejsć na 7 piętro Wieży Wygnańców?")
		    say("Lecz uważaj..")
		    say("Tam wyżej nie będzie tak łatwo jak wcześniej!")
		    wait()
		    if pc.level >=110 then
				    say_title(""..mob_name(20074).."")
				    say("Posiadasz odpowiedni level.")
				    say("Zostaniesz przeniesiony na 7 piętro.")
				    timer("devil_jump_7s", 6)
				    return
		    end
		    say_title(""..mob_name(20074).."")
		    say("Wybacz.. nie posiadasz 110 poziomu")
		    say("Nie mogę Cię przenieść na kolejne piętro.")
		    wait()
		    pc.warp(590500, 110500)
		    return
   end
    when 20075.chat."Chce przejść dalej (smok)" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("levels") == 6 begin
		    say_title(""..mob_name(20074).."")
		    say("Możesz przejsć na 7 piętro Wieży Wygnańców.")
		    say("Lecz uważaj..")
		    say("Tam wyżej nie będzie tak łatwo jak wcześniej!")
		    wait()
		    if pc.level >=110 then
				    say_title(""..mob_name(20074).."")
				    say("Posiadasz odpowiedni level.")
				    say("Zostaniesz przeniesiony na 7 piętro.")
				    timer("devil_jump_7s", 6)
				    return
		    end
		    say_title(""..mob_name(20074).."")
		    say("Wybacz.. nie posiadasz 110 poziomu")
		    say("Nie mogę Cię przenieść na kolejne piętro.")
		    wait()
		    pc.warp(590500, 110500)
		    return
   end
    when 20076.chat."Chce przejść dalej (smok)" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 and d.getf("levels") == 6 begin
		    say_title(""..mob_name(20074).."")
		    say("Możesz przejsć na 7 piętro Wieży Wygnańców.")
		    say("Lecz uważaj..")
		    say("Tam wyżej nie będzie tak łatwo jak wcześniej!")
		    wait()
		    if pc.level >=110 then
				    say_title(""..mob_name(20074).."")
				    say("Posiadasz odpowiedni level.")
				    say("Zostaniesz przeniesiony na 7 piętro.")
				    timer("devil_jump_7s", 6)
				    return
		    end
		    say_title(""..mob_name(20074).."")
		    say("Wybacz.. nie posiadasz 110 poziomu")
		    say("Nie mogę Cię przenieść na kolejne piętro.")
		    wait()
		    pc.warp(590500, 110500)
		    return
   end
  when devil_jump_7s.timer begin
		    d.clear_regen()
		    d.spawn_mob(1095, 617, 676)
		    d.setf("levels", 7)
		    d.regen_file("data/dungeon/wygnancy7.txt")
		    d.jump_all(2048+590, 6656+638)
    end
    ---------------------------------------------
    -- Niebieska Śmierć
    ---------------------------------------------
    when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		    timer("devil_jump_8S", 30)
		    d.clear_regen()
		    d.notice("Pokonaliście Niebieską Śmierć!")
		    d.notice("Zostaniecie przeniesieni na piętro smoka!")
    end

    ---------------------------------------------
    -- Niebiański Smok
    ---------------------------------------------
    when devil_jump_8S.timer begin
		    d.setf("levels", 8)
		    d.jump_all(2048+590, 6656+155)
		    d.spawn_mob(2493,630,195)
    end
    when 2493.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		    d.kill_all()
		    local m_sex = pc.get_sex()
							    if m_sex == 0 then
		    notice_all(pc.get_name().." zabił Niebiańskiego Smoka!")
				    else
		    notice_all(pc.get_name().." zabiła Niebiańskiego Smoka!")
						    end
		    timer("devil_end_jumps", 60)
    end
    when devil_end_jumps.timer begin
	    d.exit_all()
    end
end
state __GOOD__ begin
end
end

Opublikowano

@colvitz Takie coś to w spoiler...

 

			when deviltower_man.chat."Wejdź do Wieży Wygnańców" with party.is_leader() begin
						say_title("Strażnik Wieży Wygnańców:")
						if party.get_near_count() < 5 then
										say("Wybacz, musisz mieć ze sobą 5 osób w grupie.")
										party.chat("Wasza grupa posiada zbyt mało członków.")
										return
						end

 

To właśnie odpowiada za pt...

To:

if party.get_near_count() < 5 then

 

Zmień na:

if party.get_near_count() < 2 then

 

I jak zrobisz pt z jedną osobą to będziesz widział.

 

Ale i tak nie zadziała Ci quest, jeśli nie wgrałeś regenów do "data/dungeon" ;)

  • 2 tygodnie później...

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...