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]wieża demonów


Rekomendowane odpowiedzi

Opublikowano

Masz tu są na pewno porwane warpy

 

quest deviltower_zone begin

state start begin

when login begin

if pc.get_map_index() == 66 then

-- ¨A?D?b1LÓ?É, °eSdA~­?.

-- LhLC ?dln

-- 1LÓ 88 577 236 737

-- 2LÓ 91 343 238 504

-- 3LÓ 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) -- ?r?R¤LSl?O§_?s?bSsZu¤`CF?d

pc.remove_item(30302,mapto7)

 

local boxto7= pc.count_item(30300) -- ?r?R¤LSl?O§_?s?bSs¤LSl?WSs?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;

positions = positions[j];

positions[j] = t;

end

end

--for i = 1, 7 do

-- positions[1] = positions[1] * 100

-- positions[2] = positions[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?¤Î?slyZuAURY?M°?AURY

--d.regen_file("data/dungeon/deviltower4_regen.txt")

local positions = deviltower_zone.get_4floor_stone_pos()

for i = 1, 6 do

chat(positions[1], positions[2])

d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[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![ENTER]Tenma tu byl...")

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())

 

-- 5LÓÄ~Än?A?{

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

 

-- 5LÓ?E?LAU?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

-- ?L¤UÂe°Í

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("Nie wiem1"..d.getf("stone_count").."Nie wiem 2")

end

end

 

when devil_stone6.kill begin

-- ?ǰe¨e?N¸t?N?bSs?aaD

-- §_?h?A?}l]¤@­Ó?s?N¸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

 

--------------------------------------

-- AN?i¤J7LÓ?ܨeaF8LÓ¤§?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

ssay("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

-- ?L¤UZu?aaD

game.drop_item(30302, 1)

d.clear_regen()

else

-- ?L¤U°??aaD

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¨e8LÓ

say("Przeniesiesz sie na 8 pietro!")

pc.remove_item("30302", 1)

timer("devil_jump_8", 6)

d.clear_regen()

end

 

--------------------------------------------

-- AN?i¤J8LÓ?ܨeaF9LÓ¤§?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)-- ?r?RZu¤`CF?d

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

-- ?L¤UZuÂe°Í

game.drop_item(30304, 1)

else

-- ?L¤U°?Âe°Í

game.drop_item(30303, 1)

end

else

return

end

end

 

when 20366.take with item.vnum == 30304 begin

-- 9LÓ?E?L¸N°L

d.notice("Zostaniecie przeniesieni na 9 pietro!")

npc.purge()

item.remove()

timer("devil_jump_9", 6)

end

 

---------------------------------------------

-- AN?i¤J9LÓ?Ü??§ô

---------------------------------------------

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!")

d.notice("Zostaniecie przeniesieni na 10 pietro!")

timer("devil_end_jump", 6)

end

 

when devil_end_jump.timer begin

d.jump_all(2048+590, 6656+403)

d.spawn_mob(1095, 640, 460)

end

when 1095.kill with pc.in_dungeon() begin

--d.exit_all()

notice_all(pc.get_name().." zabil Niebieska Smierc!")

timer("devil_jump_10", 6)

end

when devil_jump_10.timer begin

d.exit_all()

end

end

end

 

 

5jw512.jpg

Opublikowano

nie

tutaj quest

 

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;

positions = positions[j];

positions[j] = t;

end

end

--for i = 1, 7 do

-- positions[1] = positions[1] * 100

-- positions[2] = positions[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[1], positions[2])

d.set_unique("fake" .. i , d.spawn_mob(8017, positions[1], positions[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;

positions = 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[1], positions[2])

d.set_unique("fake" .. i , d.spawn_mob(8026, positions[1], positions[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

fraktal2j_rrxpeqq.jpg

Zarchiwizowany

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

×
×
  • Dodaj nową pozycję...