quest devilscatacomb begin
state start begin
when logout begin
pc.remove_item(30311, pc.count_item(30311))
pc.remove_item(30312, pc.count_item(30312))
pc.remove_item(30313, pc.count_item(30313))
end
when login begin
if pc.get_map_index() == 90 then
if devilscatacomb.getLevelByCord() > 1 or not next_time_is_now() then
pc.warp((5913)*100, (993)*100, 65) -- 5913x993 591374x
end
pc.set_warp_location(65, 5913, 993)
say("Du musst den Seelenkristall-Schlüssel droppen")
say("und dann auf die Statue des Kud ziehen, um in")
say("die 2. Ebene zu gelangen...")
say("")
say_item_vnum(30311)
say("")
elseif pc.get_map_index() >= (90 * 10000) then
pc.set_warp_location(65, 5913, 993)
end
end
when 20367.chat."The Devil's Catacomb" begin --Enter the Devil Catacomb
if pc.get_level() < 75 then
say_title(mob_name(npc.get_race()) ..":")
say("Du möchtest in die Katakomben des Teufels?")
say("")
say("So einfach geht das nicht, denn du hast")
say("nicht die nötige Erfahrung dazu.")
say("Komme am Besten wieder, wenn du Level 75")
say("erreicht hast... ")
else
say_title(mob_name(npc.get_race()) ..":")
say("Du möchtest in die Katakomben des Teufels?")
say("")
say("Ich kann dich gerne teleportieren, doch")
say("ich möchte dich warnen: Es sind schon viele")
say("eingetreten aber nicht mehr zurück gekommen!")
say("")
say("Soll ich dich ernsthaft teleportieren?")
say("")
local s = select("Ja","Nein")
if s == 2 then
return
elseif s == 1 then
pc.warp(315300, 1209200)
end
end
end
when kill with pc.get_map_index() == 90 and pc.countitem(30311) < 1 begin
local rnd = number(1,100)
if rnd == 6 then
game.drop_item_with_ownership(30311, 1)
end
end
when 30101.take with item.vnum == 30311 begin --Teleport to 2nd Stage with the passenger ticket
if party.is_party() then
if party.is_leader() then
say("Das Eingangsportal wurde geöffnet.")
say("Geh schnell hindurch!")
wait()
say("Hier beginnt das wahre Abenteuer! Du hast")
say("jedoch nur eine Stunde Zeit, um die Devil's")
say("Catacomb zu erforschen.")
item.remove()
sys_log(0, "DC create try by "..pc.get_name())
d.join(90)
else
say("Nur der Leiter der Gruppe darf bestimmen.")
end
else
say("Ohne Gruppe kommst du nicht weiter.")
end
end
when login with devilscatacomb.isInCatacomb() begin
say("Zerstöre das Siegel dieses Tores, um die 3. Ebene")
say("zu erreichen!")
say("Du hast noch 60 Minute(n) Zeit.")
d.spawn_mob(30103, 740, 227)
loop_timer("item_check", 10)
if party.is_leader() then
d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
d.regen_file("data/dungeon/dc/dc_doors.txt")
d.setf("level", 2)
server_timer("runtime", 6, pc.get_map_index())
elseif pc.is_gm() and not party.is_party() then
d.set_regen_file("data/dungeon/dc/dc_regen1.txt")
d.regen_file("data/dungeon/dc/dc_doors.txt")
d.setf("level", 2)
server_timer("runtime", 6, pc.get_map_index())
end
end
when item_check.timer with d.getf("level") == 3 begin
if pc.countitem(30319) >= 1 then
say("Du hast den Schrumpfkopf und wirst nun auf die")
say("3. Ebene teleportiert.")
pc.remove_item(30319, 1)
timer("item_check_end", 2)
else
d.exit_all()
end
end
when item_check_end.timer begin
cleartimer("item_check")
end
when runtime.server_timer begin
if d.select(get_server_timer_arg()) then
d.setf("time", get_time()+60*60*1)
devilscatacomb.getTimeLeft()
server_timer("runtime_end", 60*60, get_server_timer_arg())
end
end
when runtime_end.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Die Zeit ist um.")
d.exit_all()
end
end
when 30103.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 2 and npc.lock() begin
say("Während du den Stein genauer untersuchst, kannst")
say("du eine Gravur erkennen.")
wait()
say("Lediglich der Besitzer des Schrumpfkopfes")
say("darf eintreten, nachdem die Siegel dreier Türen")
say("aufgebrochen wurden.")
say("Wenn du dieses Relikt nicht bei dir trägst,")
say("wirst du aus der Devil's Catacomb teleportiert.")
say("")
wait()
local s = select("Ja, lass mich eintreten!", "Nein, ich möchte nicht eintreten.")
if s == 2 then
return
elseif s == 1 then
if pc.count_item(30319) >= 1 then
npc.purge()
d.setf("level", 3)
d.purge()
d.clear_regen()
timer("dc_jump_3", 6)
else
say("Du hast keinen Schrumpfkopf und wirst nun")
say("aus der Höhle teleportiert ...")
pc.warp(591374, 99325, 65)
end
end
end
when dc_jump_3.timer begin
d.set_regen_file("data/dungeon/dc/dc_regen2.txt")
d.notice("Suche den richtigen Metinstein und zerstöre ihn!")
devilscatacomb.getTimeLeft()
d.jump_all(4451, 12282)
local positions = devilscatacomb.get3FloorStonePositions()
for i = 1, 6 do
d.set_unique("fake" .. i , d.spawn_mob(8037, positions[i][1], positions[i][2]))
end
d.set_unique("real", d.spawn_mob(8037, positions[7][1], positions[7][2]))
server_loop_timer('dc_stone3_update', 10, pc.get_map_index())
end
when dc_stone3_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) < 30 then
if not d.is_unique_dead("fake" .. i) then
d.purge_unique("fake" .. i)
end
d.setf("fakedead" .. i, 1)
d.notice("Du hast den falschen Metinstein zerstört. Finde den richtigen!");
end
end
end
else
server_timer("dc_stone_end3", 5, get_server_timer_arg())
d.notice("Der richtige Metinstein wurde zerstört. Du darfst nun die 4. Ebene betreten.")
end
else
server_timer('dc_stone3_stop_timer', 1, get_server_timer_arg())
end
end
when dc_stone3_stop_timer.server_timer begin
clear_server_timer('dc_stone3_update', get_server_timer_arg())
end
when dc_stone_end3.server_timer begin
if d.select(get_server_timer_arg()) then
clear_server_timer('dc_stone3_update', get_server_timer_arg())
d.setf("level", 4)
d.jump_all(3347, 12810)
d.clear_regen()
d.set_regen_file("data/dungeon/dc/dc_regen3.txt")
d.regen_file("data/dungeon/dc/dc_warps.txt")
d.spawn_mob(30104, 500, 716)
end
end
when 30104.click with devilscatacomb.isInCatacomb() and devilscatacomb.getLevelByCord() == 4 and npc.lock() begin
npc.purge()
say_in_map(pc.get_map_index(),"Du hast es geschafft! Hier ist der Ausgang des[ENTER]Labyrinths. Steige nun in die 5. Ebene hinab.")
server_timer("dc4_enter", 6, pc.get_map_index())
end
when dc4_enter.server_timer begin
if d.select(get_server_timer_arg()) then
d.jump_all(3918, 12939)
d.set_regen_file("data/dungeon/dc/dc_regen4.txt")
d.spawn_mob(30102, 848, 739)
local mob_pos = { {1006, 649}, {979, 829}, {691, 822}, {714, 653}, {848, 593} }
local rnd = number(1, 5)
d.spawn_mob(2591, mob_pos[rnd][1], mob_pos[rnd][2])
server_timer("dc4_message", 3, get_server_timer_arg())
end
end
when dc4_message.server_timer begin
if d.select(get_server_timer_arg()) then
d.notice("Besiege die Dämonenwachen, um das Fratzen-Totem zu erhalten. Es dient dir als Schlüssel zur 6. Ebene.")
devilscatacomb.getTimeLeft()
end
end
when 30102.take with item.vnum == 30312 begin
say("Du hast das Fratze-Totem.")
say("Nun kannst du in die nächste Ebene!")
say("")
wait()
say("Viel Glück!")
item.remove()
npc.purge()
d.clear_regen()
timer("dc_level_5", 6)
end
when dc_level_5.timer begin
d.jump_all(4312, 12799)
timer("dc_level_5_start", 5)
end
when dc_level_5_start.timer begin
d.setf("level", 5)
d.notice("Besiege Charon und seine Schergen!")
devilscatacomb.getTimeLeft()
d.regen_file("data/dungeon/dc/dc_regen5.txt")
d.spawn_mob(2597, 1301, 699)
end
when kill begin
if devilscatacomb.isInCatacomb() then
if npc.race == 2597 then
if d.count_monster() < 1000 then
d.setf("level", 6)
d.clear_regen()
timer("dc_level_5_end", 12)
else
if d.getf("charon_spawns") < 4 then
d.spawn_mob(2597, 1301, 699)
d.setf("charon_spawns", d.getf("charon_spawns") + 1)
else
d.notice("Du hast versagt Charon hat dich mit seinen Schergen")
d.notice("überlistet. Du verlässt nun die Höhle")
local nextTime=get_time()+time_min_to_sec(1)
d.setqf("__NEXT_TIME__", nextTime)
d.exit_all()
end
end
end
if npc.race == 2598 and d.getf("level") == 6 then
clear_server_timer("runtime", pc.get_map_index())
clear_server_timer("runtime_end", pc.get_map_index())
notice_all(pc.get_name().." und "..tonumber(party.get_near_count()-1).." weitere Gruppenmitglieder haben Azrael besiegt!")
timer("glory_message", 6)
end
if npc.race == 2591 then
game.drop_item_with_ownership(30312, 1)
end
end
end
when dc_level_5_end.timer begin
say_in_map(pc.get_map_index(),"Du hast Charon besiegt! Nun wirst du[ENTER]zur letzten Ebene der Devil's Catacomb[ENTER]teleportiert.")
timer("dc_level_6", 3)
end
when dc_level_6.timer begin
d.jump_all(3145, 13187)
timer("dc_level_6_into", 3)
end
when dc_level_6_into.timer begin
d.regen_file("data/dungeon/dc/dc_regen6.txt")
d.spawn_mob(2598, 74, 1103)
d.notice("Besiege Azrael!")
end
when glory_message.timer begin
local text = "Azrael wurde besiegt. Endlich herrscht[ENTER]Frieden in der Devil's Catacomb. Du wirst nun[ENTER]an die Oberfläche teleportiert."
say_in_map(pc.get_map_index(), text)
timer("dc_end", 20)
end
when dc_end.timer begin
local nextTime=get_time()+time_min_to_sec(1)
d.setqf("__NEXT_TIME__", nextTime)
d.exit_all()
end
end
state _FUNC_ begin
function getLevelByCord()
if pc.get_local_x() > 30 and pc.get_local_y() > 45 and pc.get_local_x() < 450 and pc.get_local_y() < 450 then
return 1
elseif pc.get_local_x() > 540 and pc.get_local_y() > 39 and pc.get_local_x() < 1000 and pc.get_local_y() < 462 then
return 2
elseif pc.get_local_x() > 1048 and pc.get_local_y() > 35 and pc.get_local_x() < 1455 and pc.get_local_y() < 458 then
return 3
elseif pc.get_local_x() > 31 and pc.get_local_y() > 541 and pc.get_local_x() < 564 and pc.get_local_y() < 1058 then
return 4
elseif pc.get_local_x() > 650 and pc.get_local_y() > 540 and pc.get_local_x() < 1050 and pc.get_local_y() < 955 then
return 5
elseif pc.get_local_x() > 1175 and pc.get_local_y() > 576 and pc.get_local_x() < 1420 and pc.get_local_y() < 810 then
return 6
else
return 0
end
end
function isInCatacomb()
if pc.get_map_index() >= (90 * 10000) and pc.in_dungeon() then
return true
else
return false
end
end
function get3FloorStonePositions()
local positions =
{
{1365, 352}, {1349, 150}, {1133, 167}, {1151, 364},
{1234, 136}, {1255, 371}, {1132, 245},
}
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
function getTimeLeft()
local secondsLeft = (d.getf("time") - get_time())
local minutesLeft = math.ceil(secondsLeft / 60)
d.notice("Du hast noch "..minutesLeft.." Minute(n) Zeit.")
end
end
end
Ez kellene nekem magyarba, nincs valakinél véletlen el veszve a homályban?
És nem kutatná fel nekem?
Tessék: http://translate.google.hu/?hl=hu#de/hu/%3EIde%20m%C3%A1sold%20be%20a%20sz%C3%B6veget!%3C
Biztos helyes is lesz, de te legalább egy válaszra méltattál.:)
Csatoltam két fájlt. A devilscatacomb.quest amit kértél, a másik csak 30k vagy újabb game fájllal működik. Mindkettő magyar.
Köszönöm!!!!