Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- quest deviltower_zone 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 20348.chat."Wieża Demonów" begin
- if pc.get_level() < 40 then
- say_title_pomaranczowy("Strażnik Wieży Demonów:")
- say_zloty("Nie masz odpowiedniego poziomu.")
- say_zloty("Aby wejść potrzebujesz przynajmniej 40.")
- else
- say_title_pomaranczowy("Strażnik Wieży Demonów:")
- say_zloty("Wieża demonów jest pełna dzikich")
- say_zloty("potworów zesłannych z piekieł.")
- say_zloty("Musisz być bardzo odważny!")
- say_zloty("")
- say_reward("Czy chcesz wejść do Wieży Demonów?")
- local s = select("Tak", "Nie")
- if s == 1 then
- -- warp into!
- pc.warp(216500,727000)
- end
- end
- end
- when devil_stone1.kill begin
- timer("devil_stone1_1", 5)
- 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("Zniszcz Prawdziwego Metina!");
- d.notice("");
- d.notice("Macie 15 minut, aby to dokonać ");
- d.notice("W innym przypadku, wszyscy zostaną wylogowani.");
- end
- when devil_stone4_fail1.server_timer begin
- if d.select(get_server_timer_arg()) then
- d.notice("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("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("Czas się skończył.")
- 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("Ten Kamień był fałszywy....");
- 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("Udało wam się zniszczyć prawdziwego metina!");
- d.notice("Zostaniecie teleportowani na 5 piętro.")
- 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
- ---------------------------------------------
- -- Pietro 5
- ---------------------------------------------
- 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("Jesteś na 5 piętrze!")
- d.notice("Waszym zadaniem jest otworzyć wszystkie Starożytne Pieczęci")
- d.notice("Kamieniami Otwarcia, które lecą z demonów!")
- d.notice("Macie na to 15 minut!")
- d.notice("Powodzenia!")
- 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("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("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("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("Czas się skończył!")
- 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("Otworzono ostatnią pieczęć!")
- d.notice("Wszyscy zostaną teleportowani na 6 piętro!")
- 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("Pozostało jeszcze "..d.getf("stone_count").." pieczęci do otwarcia!")
- end
- end
- ---------------------------------------------
- -- Pietro 6
- ---------------------------------------------
- when devil_stone6.kill begin
- -- Geschickt, um eine Karte, wo die Verfeinerung St.
- -- Ansonsten ˇĽfnen Sie ein neues Lian Sheng
- -- 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.notice("Elitarny Król Demonów został zabity!")
- d.notice("Jeden z trzech kowalów zaraz się pojawi!")
- timer("schmied_spawn",10)
- --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 schmied_spawn.timer begin
- 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."Chcę iść dalej!" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000begin
- npc.lock()
- say_title_pomaranczowy("Brońmistrz Wieży Demonów:")
- say_zloty("Dobrze, więc chcesz iść dalej..")
- say("Musisz posiadać równy lub wyższy poziom")
- say("niż 75.")
- say("Więc zobaczmy czy masz taki...")
- wait()
- if pc.level >=75 then
- say_title_pomaranczowy("Brońmistrz Wieży Demonów:")
- say_zloty("Okey masz, mogę Cię przenieść.")
- say("")
- say("")
- say_reward("Zostaniecie teleportowani!")
- npc.purge()
- timer("devil_jump_7", 6)
- return
- end
- say_title_pomaranczowy("Brońmistrz Wieży Demonów:")
- say_zloty("Nie posiadasz 75 poziomu!")
- say("Teleportacja nie jest możliwa!")
- say("Może ktoś inny na tym piętrze")
- say("ma 75 poziom?")
- say("")
- wait()
- pc.warp(590500, 110500)
- return
- end
- when 20075.chat."Chcę iść dalej!" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
- npc.lock()
- say_title_pomaranczowy("Płatneż Wieży Demonów:")
- say_zloty("Dobrze, więc chcesz iść dalej..")
- say("Musisz posiadać równy lub wyższy poziom")
- say("niż 75.")
- say("Więc zobaczmy czy masz taki...")
- wait()
- if pc.level >=75 then
- say_title_pomaranczowy("Płatneż Wieży Demonów:")
- say_zloty("Okey masz, mogę Cię przenieść.")
- say("")
- say("")
- say_reward("Zostaniecie teleportowani!")
- npc.purge()
- timer("devil_jump_7", 6)
- return
- end
- say_title_pomaranczowy("Płatneż Wieży Demonów:")
- say_zloty("Nie posiadasz 75 poziomu!")
- say("Teleportacja nie jest możliwa!")
- say("Może ktoś inny na tym piętrze")
- say("ma 75 poziom?")
- say("")
- wait()
- pc.warp(590500, 110500)
- return
- end
- when 20076.chat."Chcę iść dalej!" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
- npc.lock()
- say_title_pomaranczowy("Jubiler Wieży Demonów:")
- say_zloty("Dobrze, więc chcesz iść dalej..")
- say("Musisz posiadać równy lub wyższy poziom")
- say("niż 75.")
- say("Więc zobaczmy czy masz taki...")
- wait()
- if pc.level >=75 then
- say_title_pomaranczowy("Jubiler Wieży Demonów:")
- say_zloty("Okey masz, mogę Cię przenieść.")
- say("")
- say("")
- say_reward("Zostaniecie teleportowani!")
- npc.purge()
- timer("devil_jump_7", 6)
- return
- end
- say_title_pomaranczowy("Jubiler Wieży Demonów:")
- say_zloty("Nie posiadasz 75 poziomu!")
- say("Teleportacja nie jest możliwa!")
- say("Może ktoś inny na tym piętrze")
- say("ma 75 poziom?")
- say("")
- wait()
- pc.warp(590500, 110500)
- return
- end
- ---------------------------------------------
- -- Pietro 7
- ---------------------------------------------
- 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
- --------------------------------------------
- -- Pietro 8
- --------------------------------------------
- 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¸Ń°Ł
- npc.purge()
- item.remove()
- d.kill_all()
- timer("devil_jump_9", 6)
- end
- ---------------------------------------------
- -- Pietro 8
- ---------------------------------------------
- when devil_jump_9.timer begin
- d.setf("level", 9)
- d.jump_all(2048+590, 6656+155)
- d.clear_regen()
- 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.notice("Zabiłeś Przywódce Demonów!")
- d.notice("Gratulacje! Teraz możesz się wylogować!")
- d.kill_all()
- end
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement