Cerere Quest DT

Închis
Avatar utilizator
w00dy
Nivel 2

Nivel 2
Mesaje: 195
Membru din: 14 Aug 2016, 00:15
Server: n-am
Regat: Chunjo
Aprecieri: 150  
Mulţumiri: 3  
  Rezolvări prob.: 3
Medalii

Salutare, as dori si eu un Quest pt DT cel clasic cu 9 etaje daca aveti, ce am gasit pe net pana acum nu era bun, mersi anticipat.
Avatar utilizator
Kiro
Nivel 4

Nivel 4
Mesaje: 719
Membru din: 30 Noi 2015, 20:53
Server: metin2vargos
Regat: Jinno
Aprecieri: 183  
Mulţumiri: 878  
Discord: Copiază ID
 Contact:
Medalii

w00dy scrie: ↑01 Apr 2020, 23:32 Salutare, as dori si eu un Quest pt DT cel clasic cu 9 etaje daca aveti, ce am gasit pe net pana acum nu era bun, mersi anticipat.
Incearca-l pe asta:

Cod: Selectaţi tot

--------------------------------
--  Copyright @ Pro-Area.com  --
--------------------------------
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() >= 66 and pc.get_map_index() < 67 then
     
    pc.set_warp_location(65, 5376+532, 512+596+4)
   
   end
   
  end
  
 ------------------------------------------------------
 -- Paznicul demonilor : Intrare în turnul demonilor --
 ------------------------------------------------------
  when deviltower_man.chat.locale.deviltower_man_chat with pc.get_map_index() == 65 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
     
     pc.warp(216500,727000)
     
    elseif s == 2 then
    
     return
    
    end
    
   end
   
  end
 ------------------------------------------------------
 -- Paznicul demonilor : Ieºire din turnul demonilor --
 ------------------------------------------------------
  when deviltower_man.chat."Ieºire din turn" with pc.get_map_index() == 66 begin
   
   say_title("Gardianul turnului:")
   say("Eºti de acord sã pãrãseºti Turnul Demonilor?")
   local b =select("Da!","Mai stau..")
   if b == 1 then
    say_title("Gardianul turnului:")
    say("O decizie foarte bunã. Este prea periculos")
    say("pentru tine sã mai rãmâi acolo. Ai grijã.")
    
    wait()
    
    pc.warp(590500, 110500)
    
   end
   
  end
  
  ------------------------------------
  -- Turnul Demonilor : Fix iteme   --
  ------------------------------------
  when login or logout with pc.get_map_index() == 66 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  
  when login or logout with pc.in_dungeon() and pc.get_map_index() == 66 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  when login or logout with pc.get_map_index() >= 66 and pc.get_map_index() < 67 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  when login or logout with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 67 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  when logout with pc.get_map_index() == 66 begin
  
   pc.warp(590500, 110500)
   
  end
 ------------------------------------
 -- Turnul Demonilor : Parter      --
 ------------------------------------
  when devil_stone1.kill begin
  
   timer("devil_stone1_1", 6)
   
  end
 -------------------------------
 -- Turnul Demonilor : Etaj 2 --
 -------------------------------
  
  when devil_stone1_1.timer begin
   
   pc.remove_item(30302, pc.count_item(30302))
   pc.remove_item(30300, pc.count_item(30300))
   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
 ----------------------------------------------
 -- Turnul Demonilor : Etaj 3 : Regele Demon --
 ----------------------------------------------
  when devil_stone3.kill begin
  
   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()
  
  end
 ------------------------------------------------
 -- Turnul Demonilor : Etaj 4 : Pietrele Metin --
 ------------------------------------------------
  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 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
  
   d.setf("level", 4)
   
   d.notice("Te afli la poarta sigilatã de la etajul 3.")
   d.notice("Multe pietre false te aºteaptã pentru a te")
   d.notice("induce în eroare ºi numai una dintre ele")
   d.notice("este Piatra Metin cu adevãrat importantã.")
   d.notice("Trebuie sã o distrugi în 15 minute sau nu")
   d.notice("vei putea trece prin poartã.")
   
   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())
  end
  when devil_stone4_fail1.server_timer begin
  
   if d.select(get_server_timer_arg()) then
   
    d.notice("Minute rãmase: 10")
    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("Minute rãmase: 5")
    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("Timpul a expirat.")
    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("Pietrele metin false dispar ...")
        
       end
       
      end
      
     end
     
    else
    
     server_timer("devil_stone4_end", 5, get_server_timer_arg())
     
     d.notice("Ai dovedit un auz excelent ºi un instinct bun, ºi")
     d.notice("ai distrus adevãrata piatrã metin.")
     d.notice("Vei ajunge de îndatã la etajul 4.")
     
     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
 -------------------------------------------------
 -- Turnul Demonilor : Etaj 5 : Sigiliile vechi --
 -------------------------------------------------
  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("Acum eºti la poarta sigilatã de la etajul 4.")
    d.notice("Trebuie sã deschizi cele cinci Sigilii Antice")
    d.notice("pentru a trece la etajul urmãtor. Drumul este")
    d.notice("plin de creaturi care te vor ataca.")
    d.notice("Unele dintre ele au niste chei. Strânge destule")
    d.notice("Pietre Chei, sã deschizi toate cele cinci Sigilii")
    d.notice("Antice ºi sã treci la etajul 5.")
    d.notice("Dar ai grijã: Ai timp numai 20 de minute!")
  
    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())
    d.set_regen_file("data/dungeon/deviltower5_regen.txt")
    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("Minute rãmase: 15")
    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("Minute rãmase: 10")
    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("Minute rãmase: 5")
    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("Timpul a expirat.")
    d.exit_all()
    
   end
   
  end
  when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
  
   local KILL_COUNT_FOR_DROP_KEY = 50
   local n =d.getf("count") + 1
   
   d.setf("count", n) 
   
   if n == KILL_COUNT_FOR_DROP_KEY then
   
    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("Ai rupt sigiliul Cheii de Piatra ºi poþi sa")
    d.notice("intri în etajul 5. Regele Demon Mândru este de")
    d.notice("asemenea la acest etaj. Distruge toate creaturile")
    d.notice("întâlnite acolo.")
    d.notice("Ucide toþi monºtrii de la etajul 6!")   
    
    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("Ai deschis pecetea! Mai rãmân "..d.getf("stone_count")..".")
    
   end
   
  end
  
 -----------------------------------------------------
 -- Turnul Demonilor : Etaj 6 : Regele Demon Mândru --
 -----------------------------------------------------
  when devil_stone6.kill begin
  
   d.kill_all()
   d.kill_all()
   d.kill_all()
   d.kill_all()
   
   d.check_eliminated()
   
   d.notice("Ai omorât toate creaturile. Acum mergi la Fierar")
   d.notice("ºi alege recompensa - îþi va îmbunãtãþi un obiect")
   d.notice("la alegerea ta. pentru a face asta, pune")
   d.notice("obiectul care vrei sã îl îmbunãtãþeºti pe fierar.")
   
   local reward_alchemist = {20074, 20075, 20076}
   d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
   d.setqf("can_refine", 1)
   
  end
 -------------------------------------------
 -- Turnul Demonilor : Etajele superioare --
 -------------------------------------------
  when 20074.chat."Etajele superioare .." with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   npc.lock()
   
   say_title(""..mob_name(20074).."")
   say("Vrei sa mergi la etajul 6 al turnului?")
   say("E nevoie de multe competenþe ºi multa")
   say("dibacie pentru a învinge acest etaj.")
   say("Doar daca ai atins nivelul 75 te pot")
   say("teleporta acolo!")
   
   wait()
   
   if pc.level >=75 then
    
    say_title(""..mob_name(20074).."")
    say("Ai experienþa necesara deci ai o ºansa buna")
    say("sa supravieþuieºti etajelor superioare.")
    say("Poþi intra acum!")
    
    npc.purge()
    timer("devil_jump_7", 6)
    
    return
    
   end
            
   say_title(""..mob_name(20074)..":")
   say("Ai nevoie de nivelul 75 pentru a urca!")
   say("Revino când eºti mai puternic, aici cei slabi pier în faþa demonilor..")
   say("Acum te voi teleporta în faþa turnului, doar pentru siguranþa ta.")
   say("")
   
   wait()
   
   pc.warp(590500, 110500)
  
   return
  
  end
  when 20075.chat."Etajele superioare .." with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   npc.lock()
   
   say_title(""..mob_name(20075).."")
   say("Vrei sa mergi la etajul 6 al turnului?")
   say("E nevoie de multe competenþe ºi multa")
   say("dibacie pentru a învinge acest etaj.")
   say("Doar daca ai atins nivelul 75 te pot")
   say("teleporta acolo!")
   
   wait()
   
   if pc.level >=75 then
    
    say_title(""..mob_name(20075).."")
    say("Ai experienþa necesara deci ai o ºansa buna")
    say("sa supravieþuieºti etajelor superioare.")
    say("Poþi intra acum!")
    npc.purge()
    timer("devil_jump_7", 6)
    
    return
    
   end
   
   say("Ai nevoie de nivelul 75 pentru a urca!")
   say("Revino când eºti mai puternic, aici cei slabi pier în faþa demonilor..")
   say("Acum te voi teleporta în faþa turnului, doar pentru siguranþa ta.")
   say("")
   
   wait()
   
   pc.warp(590500, 110500)
   
   return
  
  end
  
  when 20076.chat."Etajele superioare .." with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   npc.lock()
   say_title(""..mob_name(20076).."")
   say("Vrei sa mergi la etajul 6 al turnului?")
   say("E nevoie de multe competenþe ºi multa")
   say("dibacie pentru a învinge acest etaj.")
   say("Doar daca ai atins nivelul 75 te pot")
   say("teleporta acolo!")
   
   wait()
   
   if pc.level >=75 then
   
    say_title(""..mob_name(20076).."")
    say("Ai experienþa necesara deci ai o ºansa buna")
    say("sa supravieþuieºti etajelor superioare.")
    say("Poþi intra acum!")
    
    npc.purge()
    timer("devil_jump_7", 6)
    
    return
    
   end
   
   say("Ai nevoie de nivelul 75 pentru a urca!")
   say("Revino când eºti mai puternic, aici cei slabi pier în faþa demonilor..")
   say("Acum te voi teleporta în faþa turnului, doar pentru siguranþa ta.")
   say("")
   
   wait()
   
   pc.warp(590500, 110500)
   
   return
  
  end
 -------------------------------------------
 -- Turnul Demonilor : Etaj 7 : Planurile --
 -------------------------------------------
  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)
   
   d.notice("Harta Turnului Zin-Sa-Gui deschide calea cãtre")
   d.notice("urmãtorul etaj. Le poþi gãsi distrugând Pietrele")
   d.notice("Metin.")
   
  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() >= 66 and pc.get_map_index() < 670000 begin
   -- Cutie de fier necunoscutã
   game.drop_item(30300, 1)
   
  end
  when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   pc.remove_item("30300", 1)
   local pct = number(1,10)
   if pct == 1 then
    -- Hartã Zin-Sa-Gui (Adevãrat)
    game.drop_item(30302, 1)
    d.clear_regen()
    
   else
    -- Hartã Sa-Gui (Fals)
    game.drop_item(30301, 1)
    
   end
   
  end
  when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   say_title("Informaþie:")
   say("Aceastã hart te teleporteazã la etajul 7 al")
   say("Turnului Demonilor")
   pc.remove_item("30302", 1)
   timer("devil_jump_8", 6)
   d.clear_regen()
   
  end
 ----------------------------------------
 -- Turnul Demonilor : Etaj 8 : Cheile --
 ----------------------------------------
  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)
   pc.remove_item(30302,_count)
   
   d.notice("Gãseºte cheia potrivitã.")
   d.notice("Ai nevoie de cheia Zin-Bong-In pentru a")
   d.notice("deschide Pecetea Sa-Soein ºi a ajunge la")
   d.notice("etajul urmãtor.")
   
  end
  when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 66 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
     -- Cheie Zin-Bong (Adevãrat)
     game.drop_item(30304, 1)
     
    else
    
     -- Cheie Bong-In (Fals)
     game.drop_item(30303, 1)
     
    end
    
   else
    return
   
   end
   
  end
  when 20366.take with item.vnum == 30304 begin
   
   npc.purge()
   item.remove()
   timer("devil_jump_9", 6)
   
   d.notice("Ucide conducãtorul demonilor.")
   
  end
 --------------------------------------------------
 -- Turnul Demonilor : Etaj 9 : Îngerul cu coasã --
 --------------------------------------------------
  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() >= 66 and pc.get_map_index() < 670000 begin
   
   d.kill_all()
   d.kill_all()
   d.kill_all()
   
   d.notice("Ai îndeplinit sarcina cu succes ºi vei")
   d.notice("fi teleportat afarã în puþine minute.")
   timer("devil_end_jump", 60)
   
  end
  when devil_end_jump.timer begin
  
   d.exit_all()
   
  end
  
 end
 
end 
sau asta:

Cod: Selectaţi tot

quest deviltower_zone begin
    state start begin
	when login begin
	    if pc.get_map_index() == 66 then
		-- Nicht in einer Etage, die wieder nach drau¡¼n .
		-- Layer Range 
		-- 1F   88  577  236 737
		-- 2F   91  343  238 504
		-- 3F  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)  -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms 
		pc.remove_item(30302,mapto7)

		local boxto7= pc.count_item(30300)  -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld 
		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)
	    -- Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine 
	    --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("Aici este al 4-lea etaj");
	    d.notice("gaseste adevarata piatra.");
	    d.notice("in terment de maxim 15 minute.");
	end

	when devil_stone4_fail1.server_timer begin
	    if d.select(get_server_timer_arg()) then
		d.notice("10 minute!")
		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("5 minute!")
		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("Timpul a expirat!")
		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("Piatra metin dispare.");
			    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("Felicitari a-ti reusit!");
		    d.notice("Trece-ti la etajul urmator!")
		    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("Etajul 5!")
		d.notice("Omoara toti monstrii, iar de la acestia pica niste chei!")
		d.notice("Gaseste cheia cea buna pentru a trece la nivelul urmator!")
		d.notice("Cu ajutorul acestor chei vei putea ajunge la nivelul 6!(ai 20 de minute)")
		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. Stock, weiter zu reproduzieren 
		d.set_regen_file("data/dungeon/deviltower5_regen.txt")

		-- 5. Stock, Seal Stone Reproduktion 
		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("15 minute!")
		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("10 minute!")
		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("5 minute!")
		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("Timpul a expirat!")
		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
		-- Falling Tasten 
		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("Felicitari!")
		d.notice("Vei urca la etajul urmator.")
		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("Coloana eliminate ... mai ai"..d.getf("stone_count").."Mult noroc!")
	    end
	end

	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.check_eliminated()
	    local reward_alchemist = {20074, 20075, 20076}
	    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
	    d.setqf("can_refine", 1)
	end

	--------------------------------------
	-- 7 D kommt man aus dem Zugriff vor dem 8. Stock 
	--------------------------------------

	when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		say(""..mob_name(20074).."")
		say("Doriti sa trece-ti mai departe?")
		say("")
		say("Eu unul voi ramane aici!")
		say("")
		wait()
		if pc.level >=75 then
			say("Sunteti cel putin suficient de mare in level.")
			say("Dar sunteti, de asemenea, suficient de curajos?")
			say("Exista o singura metoda de a afla acest lucru!")
			timer("devil_jump_7", 6)
			return
		end
		say("Sunteti din pacate, nu înca")
		say("suficient de mari sa creasca în continuare")
		say("Exercitarea un pic si apoi se întoarce.")
		say("Mult noroc in calatoria voastra.")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20075.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		say(""..mob_name(20075).."")
		say("Doriti sa trece-ti mai departe?")
		say("")
		say("Eu voi ramane aici!")
		say("")
		wait()
		if pc.level >=75 then
			say("Sunteti cel putin suficient de mare in level.")
			say("Dar sunteti, de asemenea, suficient de curajos?")
			say("Exista o singura metoda de a afla acest lucru!")
			timer("devil_jump_7", 6)
			return
		end
		say("Sunteti din pacate, nu înca")
		say("suficient de mari sa creasca în continuare")
		say("Exercitarea un pic si apoi se întoarce.")
		say("Mult noroc in calatoria voastra.")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20076.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		say(""..mob_name(20076).."")
		say("Doriti sa trece-ti mai departe?")
		say("")
		say("Eu voi ramane aici!")
		say("")
		wait()
		if pc.level >=75 then
			say("Sunteti cel putin suficient de mare in level.")
			say("Dar sunteti, de asemenea, suficient de curajos?")
			say("Exista o singura metoda de a afla acest lucru!")
			timer("devil_jump_7", 6)
			return
		end
		say("Sunteti din pacate, nu înca")
		say("suficient de mari sa creasca în continuare")
		say("Exercitarea un pic si apoi se întoarce.")
		say("Mult noroc in calatoria voastra.")
		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
			-- Fall wahr Karte
			game.drop_item(30302, 1)
			d.clear_regen()
		else
			-- Fall wahr Karte
			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
		-- An der 8th Floor 
		say("Vei fi teleportat in pestera Zin.Mult noroc in continuare!")
		pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		d.clear_regen()
	end
						
	--------------------------------------------
	-- Von 8 F vor der Ankunft geben Sie die 9 F 
	--------------------------------------------
	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)-- True Tilgung Dead Turm 
		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
				-- Fall wahre Schl¡¼sel 
				game.drop_item(30304, 1)
			else
				-- Keys fiel 
				game.drop_item(30303, 1)
			end
		else
			return
		end
	end

	when 20366.take with item.vnum == 30304 begin
		-- 9 F-Zeichen aufgehoben 
		npc.purge()
		item.remove()
		timer("devil_jump_9", 6)
	end

	---------------------------------------------
	-- 9 F ein Ende, indem Sie 
	---------------------------------------------
	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()
		timer("devil_end_jump", 10)
		d.notice("Felicitari!")
		d.notice("Ai ucis pe Grim Reaper!")
		d.notice("Acum, veti ajunge la stagiul urmator, ucide demon rege!")
	end

	when devil_end_jump.timer begin
	    d.setf("level", 7)
		d.jump_all(2048+590, 6656+638)
		d.clear_regen()
		d.spawn_mob(1094, 639, 658)
	end
	
	when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.notice("Felicitari!")
		d.notice("Ai ucis soldatii regelui demon!")
		d.notice("Acum, veti ajunge la etajul urmator, Demon albastru!")
		d.kill_all()
		timer("devil_end_jump_schmied", 10)
	end

	when devil_end_jump_schmied.timer begin
		d.setf("level", 9)
		d.jump_all(2048+590, 6656+155)
		d.clear_regen()
		d.spawn_mob(1095, 605, 178)
	end
	
	when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    notice_all("".. pc.get_name() .." Felicitari ai ucis demonul!")
        notice_all("Felicitari inca odata!")
		d.notice("")
		d.notice("Ai ucis Demonul Albastru!")
		d.notice("Ca o recompensa iti va aparea toti cei 3 fierari din acest turn!")
		d.check_eliminated()
	    local reward_alchemist = {20074, 20075, 20076}
	    d.spawn_mob(20074, 609, 179);
		d.spawn_mob(20075, 609, 172);
		d.spawn_mob(20076, 609, 185);
		d.spawn_mob(9012, 619, 170);
		d.setqf("can_refine", 1)
	end
end
end
Instalare quest:

1. Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu nume_quest.quest .
2. Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
3. Îl puneţi acolo (să fie .quest) şi da-ţi permisiuni 777.
4. Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest apoi ./qc nume_quest.quest
5. Intraţi pe server şi scrieţi /reload q .
6. Testaţi quest-ul .
Avatar utilizator
w00dy
Nivel 2

Nivel 2
Mesaje: 195
Membru din: 14 Aug 2016, 00:15
Server: n-am
Regat: Chunjo
Aprecieri: 150  
Mulţumiri: 3  
  Rezolvări prob.: 3
Medalii

Kiro scrie: ↑03 Apr 2020, 00:10
w00dy scrie: ↑01 Apr 2020, 23:32 Salutare, as dori si eu un Quest pt DT cel clasic cu 9 etaje daca aveti, ce am gasit pe net pana acum nu era bun, mersi anticipat.
Incearca-l pe asta:

Cod: Selectaţi tot

--------------------------------
--  Copyright @ Pro-Area.com  --
--------------------------------
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() >= 66 and pc.get_map_index() < 67 then
     
    pc.set_warp_location(65, 5376+532, 512+596+4)
   
   end
   
  end
  
 ------------------------------------------------------
 -- Paznicul demonilor : Intrare în turnul demonilor --
 ------------------------------------------------------
  when deviltower_man.chat.locale.deviltower_man_chat with pc.get_map_index() == 65 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
     
     pc.warp(216500,727000)
     
    elseif s == 2 then
    
     return
    
    end
    
   end
   
  end
 ------------------------------------------------------
 -- Paznicul demonilor : Ieºire din turnul demonilor --
 ------------------------------------------------------
  when deviltower_man.chat."Ieºire din turn" with pc.get_map_index() == 66 begin
   
   say_title("Gardianul turnului:")
   say("Eºti de acord sã pãrãseºti Turnul Demonilor?")
   local b =select("Da!","Mai stau..")
   if b == 1 then
    say_title("Gardianul turnului:")
    say("O decizie foarte bunã. Este prea periculos")
    say("pentru tine sã mai rãmâi acolo. Ai grijã.")
    
    wait()
    
    pc.warp(590500, 110500)
    
   end
   
  end
  
  ------------------------------------
  -- Turnul Demonilor : Fix iteme   --
  ------------------------------------
  when login or logout with pc.get_map_index() == 66 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  
  when login or logout with pc.in_dungeon() and pc.get_map_index() == 66 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  when login or logout with pc.get_map_index() >= 66 and pc.get_map_index() < 67 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  when login or logout with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 67 begin
  
   pc.remove_item(30302, pc.count_item(30302)) -- Hartã pentru pestera Zin
   
   pc.remove_item(22010, pc.count_item(22010)) -- Pergamentul Orasului
   pc.remove_item(30300, pc.count_item(30300)) -- Ladã veche necunoscutã
   
   pc.remove_item(50084, pc.count_item(50084)) -- Piatrã Cheie
   
   pc.remove_item(30304, pc.count_item(30304)) -- Cheie Zin-Bong-In
   
   
  end
  
  when logout with pc.get_map_index() == 66 begin
  
   pc.warp(590500, 110500)
   
  end
 ------------------------------------
 -- Turnul Demonilor : Parter      --
 ------------------------------------
  when devil_stone1.kill begin
  
   timer("devil_stone1_1", 6)
   
  end
 -------------------------------
 -- Turnul Demonilor : Etaj 2 --
 -------------------------------
  
  when devil_stone1_1.timer begin
   
   pc.remove_item(30302, pc.count_item(30302))
   pc.remove_item(30300, pc.count_item(30300))
   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
 ----------------------------------------------
 -- Turnul Demonilor : Etaj 3 : Regele Demon --
 ----------------------------------------------
  when devil_stone3.kill begin
  
   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()
  
  end
 ------------------------------------------------
 -- Turnul Demonilor : Etaj 4 : Pietrele Metin --
 ------------------------------------------------
  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 8016.kill with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
  
   d.setf("level", 4)
   
   d.notice("Te afli la poarta sigilatã de la etajul 3.")
   d.notice("Multe pietre false te aºteaptã pentru a te")
   d.notice("induce în eroare ºi numai una dintre ele")
   d.notice("este Piatra Metin cu adevãrat importantã.")
   d.notice("Trebuie sã o distrugi în 15 minute sau nu")
   d.notice("vei putea trece prin poartã.")
   
   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())
  end
  when devil_stone4_fail1.server_timer begin
  
   if d.select(get_server_timer_arg()) then
   
    d.notice("Minute rãmase: 10")
    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("Minute rãmase: 5")
    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("Timpul a expirat.")
    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("Pietrele metin false dispar ...")
        
       end
       
      end
      
     end
     
    else
    
     server_timer("devil_stone4_end", 5, get_server_timer_arg())
     
     d.notice("Ai dovedit un auz excelent ºi un instinct bun, ºi")
     d.notice("ai distrus adevãrata piatrã metin.")
     d.notice("Vei ajunge de îndatã la etajul 4.")
     
     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
 -------------------------------------------------
 -- Turnul Demonilor : Etaj 5 : Sigiliile vechi --
 -------------------------------------------------
  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("Acum eºti la poarta sigilatã de la etajul 4.")
    d.notice("Trebuie sã deschizi cele cinci Sigilii Antice")
    d.notice("pentru a trece la etajul urmãtor. Drumul este")
    d.notice("plin de creaturi care te vor ataca.")
    d.notice("Unele dintre ele au niste chei. Strânge destule")
    d.notice("Pietre Chei, sã deschizi toate cele cinci Sigilii")
    d.notice("Antice ºi sã treci la etajul 5.")
    d.notice("Dar ai grijã: Ai timp numai 20 de minute!")
  
    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())
    d.set_regen_file("data/dungeon/deviltower5_regen.txt")
    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("Minute rãmase: 15")
    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("Minute rãmase: 10")
    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("Minute rãmase: 5")
    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("Timpul a expirat.")
    d.exit_all()
    
   end
   
  end
  when 1062.kill with pc.in_dungeon() and d.getf("level") == 5 begin
  
   local KILL_COUNT_FOR_DROP_KEY = 50
   local n =d.getf("count") + 1
   
   d.setf("count", n) 
   
   if n == KILL_COUNT_FOR_DROP_KEY then
   
    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("Ai rupt sigiliul Cheii de Piatra ºi poþi sa")
    d.notice("intri în etajul 5. Regele Demon Mândru este de")
    d.notice("asemenea la acest etaj. Distruge toate creaturile")
    d.notice("întâlnite acolo.")
    d.notice("Ucide toþi monºtrii de la etajul 6!")   
    
    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("Ai deschis pecetea! Mai rãmân "..d.getf("stone_count")..".")
    
   end
   
  end
  
 -----------------------------------------------------
 -- Turnul Demonilor : Etaj 6 : Regele Demon Mândru --
 -----------------------------------------------------
  when devil_stone6.kill begin
  
   d.kill_all()
   d.kill_all()
   d.kill_all()
   d.kill_all()
   
   d.check_eliminated()
   
   d.notice("Ai omorât toate creaturile. Acum mergi la Fierar")
   d.notice("ºi alege recompensa - îþi va îmbunãtãþi un obiect")
   d.notice("la alegerea ta. pentru a face asta, pune")
   d.notice("obiectul care vrei sã îl îmbunãtãþeºti pe fierar.")
   
   local reward_alchemist = {20074, 20075, 20076}
   d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
   d.setqf("can_refine", 1)
   
  end
 -------------------------------------------
 -- Turnul Demonilor : Etajele superioare --
 -------------------------------------------
  when 20074.chat."Etajele superioare .." with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   npc.lock()
   
   say_title(""..mob_name(20074).."")
   say("Vrei sa mergi la etajul 6 al turnului?")
   say("E nevoie de multe competenþe ºi multa")
   say("dibacie pentru a învinge acest etaj.")
   say("Doar daca ai atins nivelul 75 te pot")
   say("teleporta acolo!")
   
   wait()
   
   if pc.level >=75 then
    
    say_title(""..mob_name(20074).."")
    say("Ai experienþa necesara deci ai o ºansa buna")
    say("sa supravieþuieºti etajelor superioare.")
    say("Poþi intra acum!")
    
    npc.purge()
    timer("devil_jump_7", 6)
    
    return
    
   end
            
   say_title(""..mob_name(20074)..":")
   say("Ai nevoie de nivelul 75 pentru a urca!")
   say("Revino când eºti mai puternic, aici cei slabi pier în faþa demonilor..")
   say("Acum te voi teleporta în faþa turnului, doar pentru siguranþa ta.")
   say("")
   
   wait()
   
   pc.warp(590500, 110500)
  
   return
  
  end
  when 20075.chat."Etajele superioare .." with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   npc.lock()
   
   say_title(""..mob_name(20075).."")
   say("Vrei sa mergi la etajul 6 al turnului?")
   say("E nevoie de multe competenþe ºi multa")
   say("dibacie pentru a învinge acest etaj.")
   say("Doar daca ai atins nivelul 75 te pot")
   say("teleporta acolo!")
   
   wait()
   
   if pc.level >=75 then
    
    say_title(""..mob_name(20075).."")
    say("Ai experienþa necesara deci ai o ºansa buna")
    say("sa supravieþuieºti etajelor superioare.")
    say("Poþi intra acum!")
    npc.purge()
    timer("devil_jump_7", 6)
    
    return
    
   end
   
   say("Ai nevoie de nivelul 75 pentru a urca!")
   say("Revino când eºti mai puternic, aici cei slabi pier în faþa demonilor..")
   say("Acum te voi teleporta în faþa turnului, doar pentru siguranþa ta.")
   say("")
   
   wait()
   
   pc.warp(590500, 110500)
   
   return
  
  end
  
  when 20076.chat."Etajele superioare .." with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   npc.lock()
   say_title(""..mob_name(20076).."")
   say("Vrei sa mergi la etajul 6 al turnului?")
   say("E nevoie de multe competenþe ºi multa")
   say("dibacie pentru a învinge acest etaj.")
   say("Doar daca ai atins nivelul 75 te pot")
   say("teleporta acolo!")
   
   wait()
   
   if pc.level >=75 then
   
    say_title(""..mob_name(20076).."")
    say("Ai experienþa necesara deci ai o ºansa buna")
    say("sa supravieþuieºti etajelor superioare.")
    say("Poþi intra acum!")
    
    npc.purge()
    timer("devil_jump_7", 6)
    
    return
    
   end
   
   say("Ai nevoie de nivelul 75 pentru a urca!")
   say("Revino când eºti mai puternic, aici cei slabi pier în faþa demonilor..")
   say("Acum te voi teleporta în faþa turnului, doar pentru siguranþa ta.")
   say("")
   
   wait()
   
   pc.warp(590500, 110500)
   
   return
  
  end
 -------------------------------------------
 -- Turnul Demonilor : Etaj 7 : Planurile --
 -------------------------------------------
  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)
   
   d.notice("Harta Turnului Zin-Sa-Gui deschide calea cãtre")
   d.notice("urmãtorul etaj. Le poþi gãsi distrugând Pietrele")
   d.notice("Metin.")
   
  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() >= 66 and pc.get_map_index() < 670000 begin
   -- Cutie de fier necunoscutã
   game.drop_item(30300, 1)
   
  end
  when 30300.use with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   pc.remove_item("30300", 1)
   local pct = number(1,10)
   if pct == 1 then
    -- Hartã Zin-Sa-Gui (Adevãrat)
    game.drop_item(30302, 1)
    d.clear_regen()
    
   else
    -- Hartã Sa-Gui (Fals)
    game.drop_item(30301, 1)
    
   end
   
  end
  when 30302.use with pc.in_dungeon() and pc.get_map_index() >= 66 and pc.get_map_index() < 670000 begin
   
   say_title("Informaþie:")
   say("Aceastã hart te teleporteazã la etajul 7 al")
   say("Turnului Demonilor")
   pc.remove_item("30302", 1)
   timer("devil_jump_8", 6)
   d.clear_regen()
   
  end
 ----------------------------------------
 -- Turnul Demonilor : Etaj 8 : Cheile --
 ----------------------------------------
  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)
   pc.remove_item(30302,_count)
   
   d.notice("Gãseºte cheia potrivitã.")
   d.notice("Ai nevoie de cheia Zin-Bong-In pentru a")
   d.notice("deschide Pecetea Sa-Soein ºi a ajunge la")
   d.notice("etajul urmãtor.")
   
  end
  when 1040.kill with pc.in_dungeon() and pc.get_map_index() >= 66 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
     -- Cheie Zin-Bong (Adevãrat)
     game.drop_item(30304, 1)
     
    else
    
     -- Cheie Bong-In (Fals)
     game.drop_item(30303, 1)
     
    end
    
   else
    return
   
   end
   
  end
  when 20366.take with item.vnum == 30304 begin
   
   npc.purge()
   item.remove()
   timer("devil_jump_9", 6)
   
   d.notice("Ucide conducãtorul demonilor.")
   
  end
 --------------------------------------------------
 -- Turnul Demonilor : Etaj 9 : Îngerul cu coasã --
 --------------------------------------------------
  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() >= 66 and pc.get_map_index() < 670000 begin
   
   d.kill_all()
   d.kill_all()
   d.kill_all()
   
   d.notice("Ai îndeplinit sarcina cu succes ºi vei")
   d.notice("fi teleportat afarã în puþine minute.")
   timer("devil_end_jump", 60)
   
  end
  when devil_end_jump.timer begin
  
   d.exit_all()
   
  end
  
 end
 
end 
sau asta:

Cod: Selectaţi tot

quest deviltower_zone begin
    state start begin
	when login begin
	    if pc.get_map_index() == 66 then
		-- Nicht in einer Etage, die wieder nach drau¡¼n .
		-- Layer Range 
		-- 1F   88  577  236 737
		-- 2F   91  343  238 504
		-- 3F  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)  -- Ich weiß nicht, das wahre Tilgung der die Existenz der Seele des Turms 
		pc.remove_item(30302,mapto7)

		local boxto7= pc.count_item(30300)  -- Beseitigung des unbekannten weiß nicht, ob es sich um ein Feld 
		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)
	    -- Reproduzieren eine gro¡¼ Anzahl von Monstern und Herstellung von wahr und falsch Steine Steine 
	    --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("Aici este al 4-lea etaj");
	    d.notice("gaseste adevarata piatra.");
	    d.notice("in terment de maxim 15 minute.");
	end

	when devil_stone4_fail1.server_timer begin
	    if d.select(get_server_timer_arg()) then
		d.notice("10 minute!")
		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("5 minute!")
		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("Timpul a expirat!")
		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("Piatra metin dispare.");
			    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("Felicitari a-ti reusit!");
		    d.notice("Trece-ti la etajul urmator!")
		    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("Etajul 5!")
		d.notice("Omoara toti monstrii, iar de la acestia pica niste chei!")
		d.notice("Gaseste cheia cea buna pentru a trece la nivelul urmator!")
		d.notice("Cu ajutorul acestor chei vei putea ajunge la nivelul 6!(ai 20 de minute)")
		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. Stock, weiter zu reproduzieren 
		d.set_regen_file("data/dungeon/deviltower5_regen.txt")

		-- 5. Stock, Seal Stone Reproduktion 
		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("15 minute!")
		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("10 minute!")
		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("5 minute!")
		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("Timpul a expirat!")
		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
		-- Falling Tasten 
		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("Felicitari!")
		d.notice("Vei urca la etajul urmator.")
		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("Coloana eliminate ... mai ai"..d.getf("stone_count").."Mult noroc!")
	    end
	end

	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.check_eliminated()
	    local reward_alchemist = {20074, 20075, 20076}
	    d.spawn_mob(reward_alchemist[number(1,3)], 425, 216);
	    d.setqf("can_refine", 1)
	end

	--------------------------------------
	-- 7 D kommt man aus dem Zugriff vor dem 8. Stock 
	--------------------------------------

	when 20074.chat."Die Oberen Stockwerke" with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		say(""..mob_name(20074).."")
		say("Doriti sa trece-ti mai departe?")
		say("")
		say("Eu unul voi ramane aici!")
		say("")
		wait()
		if pc.level >=75 then
			say("Sunteti cel putin suficient de mare in level.")
			say("Dar sunteti, de asemenea, suficient de curajos?")
			say("Exista o singura metoda de a afla acest lucru!")
			timer("devil_jump_7", 6)
			return
		end
		say("Sunteti din pacate, nu înca")
		say("suficient de mari sa creasca în continuare")
		say("Exercitarea un pic si apoi se întoarce.")
		say("Mult noroc in calatoria voastra.")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20075.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		say(""..mob_name(20075).."")
		say("Doriti sa trece-ti mai departe?")
		say("")
		say("Eu voi ramane aici!")
		say("")
		wait()
		if pc.level >=75 then
			say("Sunteti cel putin suficient de mare in level.")
			say("Dar sunteti, de asemenea, suficient de curajos?")
			say("Exista o singura metoda de a afla acest lucru!")
			timer("devil_jump_7", 6)
			return
		end
		say("Sunteti din pacate, nu înca")
		say("suficient de mari sa creasca în continuare")
		say("Exercitarea un pic si apoi se întoarce.")
		say("Mult noroc in calatoria voastra.")
		say("")
		wait()
		pc.warp(590500, 110500)
		return
    end
	when 20076.chat."Mit Bezug auf den oberen Turm .." with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		say(""..mob_name(20076).."")
		say("Doriti sa trece-ti mai departe?")
		say("")
		say("Eu voi ramane aici!")
		say("")
		wait()
		if pc.level >=75 then
			say("Sunteti cel putin suficient de mare in level.")
			say("Dar sunteti, de asemenea, suficient de curajos?")
			say("Exista o singura metoda de a afla acest lucru!")
			timer("devil_jump_7", 6)
			return
		end
		say("Sunteti din pacate, nu înca")
		say("suficient de mari sa creasca în continuare")
		say("Exercitarea un pic si apoi se întoarce.")
		say("Mult noroc in calatoria voastra.")
		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
			-- Fall wahr Karte
			game.drop_item(30302, 1)
			d.clear_regen()
		else
			-- Fall wahr Karte
			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
		-- An der 8th Floor 
		say("Vei fi teleportat in pestera Zin.Mult noroc in continuare!")
		pc.remove_item("30302", 1)
	    timer("devil_jump_8", 6)
		d.clear_regen()
	end
						
	--------------------------------------------
	-- Von 8 F vor der Ankunft geben Sie die 9 F 
	--------------------------------------------
	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)-- True Tilgung Dead Turm 
		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
				-- Fall wahre Schl¡¼sel 
				game.drop_item(30304, 1)
			else
				-- Keys fiel 
				game.drop_item(30303, 1)
			end
		else
			return
		end
	end

	when 20366.take with item.vnum == 30304 begin
		-- 9 F-Zeichen aufgehoben 
		npc.purge()
		item.remove()
		timer("devil_jump_9", 6)
	end

	---------------------------------------------
	-- 9 F ein Ende, indem Sie 
	---------------------------------------------
	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()
		timer("devil_end_jump", 10)
		d.notice("Felicitari!")
		d.notice("Ai ucis pe Grim Reaper!")
		d.notice("Acum, veti ajunge la stagiul urmator, ucide demon rege!")
	end

	when devil_end_jump.timer begin
	    d.setf("level", 7)
		d.jump_all(2048+590, 6656+638)
		d.clear_regen()
		d.spawn_mob(1094, 639, 658)
	end
	
	when 1094.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
		d.notice("Felicitari!")
		d.notice("Ai ucis soldatii regelui demon!")
		d.notice("Acum, veti ajunge la etajul urmator, Demon albastru!")
		d.kill_all()
		timer("devil_end_jump_schmied", 10)
	end

	when devil_end_jump_schmied.timer begin
		d.setf("level", 9)
		d.jump_all(2048+590, 6656+155)
		d.clear_regen()
		d.spawn_mob(1095, 605, 178)
	end
	
	when 1095.kill with pc.in_dungeon() and pc.get_map_index() >= 660000 and pc.get_map_index() < 670000 begin
	    notice_all("".. pc.get_name() .." Felicitari ai ucis demonul!")
        notice_all("Felicitari inca odata!")
		d.notice("")
		d.notice("Ai ucis Demonul Albastru!")
		d.notice("Ca o recompensa iti va aparea toti cei 3 fierari din acest turn!")
		d.check_eliminated()
	    local reward_alchemist = {20074, 20075, 20076}
	    d.spawn_mob(20074, 609, 179);
		d.spawn_mob(20075, 609, 172);
		d.spawn_mob(20076, 609, 185);
		d.spawn_mob(9012, 619, 170);
		d.setqf("can_refine", 1)
	end
end
end
Instalare quest:

1. Salvaţi conţinutul quest-ului într-un fişier text numit de exemplu nume_quest.quest .
2. Vă conectaţi la filezilla / winscp şi întrati în /usr/home/game/share/locale/germany/quest (depinde ce server aveţi).
3. Îl puneţi acolo (să fie .quest) şi da-ţi permisiuni 777.
4. Te loghezi în FreeBSD / putty şi scrii în felul următor: cd /usr/home/game/share/locale/germany/quest apoi ./qc nume_quest.quest
5. Intraţi pe server şi scrieţi /reload q .
6. Testaţi quest-ul .
Le am incercat ambele nu ma teleporteaza de la Etajul 1 cand sparg piatra, o sparg si nu se intampla nimic.
Avatar utilizator
Frank
Nivel 4

Nivel 4
Mesaje: 667
Membru din: 12 Mar 2015, 22:59
Server: ---
Regat: Chunjo
Aprecieri: 44  
Mulţumiri: 28  
 Contact:
Medalii

Arhiva.
Imagine
Afișează semnătura
Închis

Înapoi la “Arhivă”

  • Informaţie
  • Cine este conectat

    Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 25 vizitatori