Official Kırmızı Ejderha Kulesi Quest ( Ücretsiz ) - Pelin Melek Aslan

  • Konbuyu başlatan Konbuyu başlatan Admin
  • Başlangıç tarihi Başlangıç tarihi
  • Cevaplar Cevaplar 0
  • Görüntüleme Görüntüleme 66

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba arkadaşlar Kırmızı Ejderha Kulesi Questini ücretsiz olarak sizlerle paylaşiyorum.


Kod:
quest flame_dungeon begin     state start begin            when 20394.click with pc.get_level() >= 90 begin             pc.give_item2(71175, 1)             set_state(run)         end     end       state run begin           function setting()         return         {         ["bossroom_entry_pos"] = {8109,6867},         ["boss_pos"] = {686,637},         ["doors_pos"] = {             {320,394},             {293,359},             {333,321},             {378,320},             {400,355},             {394,401}         },         ["idoors_pos"] = {             {268,447},             {234,359},             {300,264},             {454,217},             {470,355},             {467,469}         },         ["doors_dir"] = {135,90,210,152,90,223},         ["idoors_dir"] = {135,90,210,135,90,239},         ["dungeon_entry_pos"] = {7766, 6719},-- ??? ?? ???? ?         ["DUNGEON_MAN_bpos"] = {690,722},         ["DUNGEON_MAN_pos"] = {354,362},         ["LEVEL2_STONE_pos"] = {195,352},         ["LEVEL4_TARGET_pos"] = {470,175},         ["LEVEL5_STONE_pos"] = {                 {486, 345},                 {511, 336},                 {525, 349},                 {521, 365},                 {503, 372},                 {486, 365},                 {500, 354}         },         ["LEVEL6_TARGET_pos"] = {511,480},         ["outside_entry_pos"] = {5980,7075}, --??????? ??? ?                   }     end     function is_flamed(idx) -- ???? ??? ??          return idx >= 351 * 10000 and idx < (351 + 1) *10000     end     function make_dungeon() -- ?? ???         local setting = flame_dungeon.setting()         d.new_jump_party(351, setting.dungeon_entry_pos[1], setting.dungeon_entry_pos[2])         d.regen_file("data/dungeon/flame_dungeon/npc.txt")         d.setf("level",0)         for i=1,6 do             d.set_unique("door"..i, d.spawn_mob_ac_dir(20387, setting.doors_pos[i][1], setting.doors_pos[i][2],setting.doors_dir[i]))         end         for i=1,6 do             d.set_unique("idoor"..i, d.spawn_mob_ac_dir(20388, setting.idoors_pos[i][1], setting.idoors_pos[i][2],setting.idoors_dir[i]))         end         d.setf("clear_count",0)         d.setf("started",0)         d.setf("dungeon_enter",0) -- ????? ?????? // ??? : 0 ?? : 1 // ??? ??????? ?? ??         d.setf("counter_11", 180)         d.setf("counter_13", 180)     end     function go_boss() -- ??? ??          local setting = flame_dungeon.setting()         if pc.get_level() < 104 then --????             say("Sizin seviyeniz devam etmek için yeterli değil.[ENTER]104.Seviyeye ulaştığınız zaman tekrar gelin.")             return         else             --if pc.getf("main_quest_flame_lv103", "__status")==main_quest_flame_lv103.__COMPLETE__ then -- ????? ??                 say("Será que você quer avançar[ENTER]para conhecer o seu destino?")                 local warp = select("Avançar","Talvez mais tarde")                 if warp == 1 then                     d.setf("level",17)                     d.jump_all(setting.bossroom_entry_pos[1],setting.bossroom_entry_pos[2])                     d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_fild_boss.txt")                     d.spawn_mob(6091,setting.boss_pos[1],setting.boss_pos[2])                 end             --else             --    say("Pode apenas avançar quando tiver[ENTER]concluído a missão de nível 103.")             --    return             --end         end     end     function level_clear() -- ?? ???, ?????, ?????         d.setf("level",0)         d.clear_regen()         d.purge_area(750000,620000,817400,689400) -- ??? -- d.purge() ????     end     function clear_timer(inx) -- ??? ????         clear_server_timer ("flame_dungeon_0m_left_timer", inx)         clear_server_timer ("flame_dungeon_1m_left_timer", inx)         clear_server_timer ("flame_dungeon_5m_left_timer", inx)         clear_server_timer ("flame_dungeon_10m_left_timer", inx)         clear_server_timer ("flame_dungeon_15m_left_timer", inx)         clear_server_timer ("flame_dungeon_30m_left_timer", inx)         clear_server_timer ("flame_dungeon_45m_left_timer", inx)         clear_server_timer ("flame_dungeon_ticket_remove", inx)      end               when login begin             local idx = pc.get_map_index()             local setting = flame_dungeon.setting()             if idx == 351 then                 --pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)             elseif flame_dungeon.is_flamed(idx) then -- ?? ??, ??? ?? ??             ------------------------------------------------------------------------------------------------------------------------------------------------------             --??? ??? ???? ???? ???? ?????? ?? ?? ??? ????. ???? ??? ?? ???? ???? ?? ?? ??? ??? ??.             --???? ???? ?? ?? ?? ??? ??? ??, ???? ??? ??? ????? ?? ??? ????? ???? ??? ??? ??? ??.             ------------------------------------------------------------------------------------------------------------------------------------------------------                 --pc.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2]) -- ?? ??? ? ??? ????                 local ticketGroup = {71175, 1}                 if d.getf("dungeon_enter") == 0 then -- ???? ???                     local canPass = false                     for i=1, table.getn(ticketGroup),2 do                         if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then                             canPass = true                             break                         end                     end                       if get_global_time() - pc.getf("flame_dungeon","exit_time") < 30 * 60 then -- ??????? ????                         notice_multiline(" İçeriye giriş yapabilmek için henüz süreniz dolmamış.[ENTER]Lütfen sürenizin dolmasını bekleyiniz.",d.notice)                         say(" İçeriye giriş yapabilmek için henüz süreniz dolmamış.[ENTER]Lütfen sürenizin dolmasını bekleyiniz.")                         timer("flame_dungeon_warp_timer", 5)                     elseif not canPass then                         notice_multiline("Bir grup ile Kızıl Ejder Kalesi'ne girebilirsiniz.[ENTER]Ve buna ek olarak, giriş için izin olmalıdır.",d.notice)                         say("Eu posso deixar você entrar se[ENTER]você tiver em posse de um passe.")                         timer("flame_dungeon_warp_timer", 5)                     elseif pc.get_level() < 100 then                         notice_multiline("Grubun tüm üyelerinin 100.seviyede[ENTER]olması gereklidir.Aksi takdirde[ENTER]devam edemezsiniz.",d.notice)                         say("Devam edebilmek için tüm grup üyelerinin,[ENTER]100.Seviye'ye ulaşmış olması gerekli.")                         timer("flame_dungeon_warp_timer", 5)                     end                 elseif pc.getf("flame_dungeon","ticket_delete") == 0 then -- ????? ??? ???????                                           for i=1, table.getn(ticketGroup),2 do                         if pc.count_item(ticketGroup[i]) >= ticketGroup[i+1] then                             pc.remove_item(ticketGroup[i], ticketGroup[i+1])                             break                         end                     end                     pc.setf("flame_dungeon","ticket_delete",1)                 end             else                 pc.setf("flame_dungeon","ticket_delete",0)             end         end         when flame_dungeon_warp_timer.timer begin             local setting = flame_dungeon.setting()             pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)         end         when logout begin             local idx = pc.get_map_index()             if flame_dungeon.is_flamed(idx) then                  if d.getf("dungeon_enter") == 1 then -- ???? ?? ?? ? ????                     pc.setf("flame_dungeon","exit_time",get_global_time()) -- ???? ???? ??? ??? ??, ?? ???? ??? or ?? ???? ???                 end                                 end         end         when 20394.chat."Kırmızı Ejderha Kulesi" begin                       local setting = flame_dungeon.setting()             if party.is_party() then                 local party_check = 0                 if d.find(party.getf("dungeon_index")) then                     party_check = (d.getf_from_map_index("party_leader_pid", party.getf("dungeon_index")) == party.get_leader_pid())                 end                                   if d.find(party.getf("dungeon_index")) and party_check then                     if get_global_time() - pc.getf("flame_dungeon","exit_time") < 5 * 60 then -- ?? ?? 5? ??                         local dungeon_level = d.getf_from_map_index("level", party.getf("dungeon_index"))                         if dungeon_level == 17 then -- ??                             pc.warp(setting.bossroom_entry_pos[1] * 100, setting.bossroom_entry_pos[2] * 100, party.getf("dungeon_index"))                         else                             pc.warp(setting.dungeon_entry_pos[1] * 100, setting.dungeon_entry_pos[2] * 100, party.getf("dungeon_index"))                         end                     else -- 5? ???? ? ?? ??                         say_title(mob_name(20394))                         say(" Kırmızı Ejderha Kulesi'nin dışarısında[ENTER]5 dakikadan uzun süredir duruyorsunuz.[ENTER]Şimdi içeriye giremezsiniz.")                     end                 else                     local pids = {party.get_member_pids()}                     local noTicketMembers = {}                     local notEnoughLevelMembers = {}                     local ticketCheck = true                     local levelCheck = true                     local ticketGroup = {71175, 1}                     for i, pid in next, pids, nil do                         q.begin_other_pc_block(pid)                         local canPass = false                         for idx=1, table.getn(ticketGroup),2 do                             if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then                                 canPass = true                                 break                             end                         end                                                   if not canPass then                             table.insert(noTicketMembers, pc.get_name())                             ticketCheck = false                         end                         if pc.level < 100 then                             table.insert(notEnoughLevelMembers, pc.get_name())                             levelCheck = false                         end                         q.end_other_pc_block()                     end                       if not ticketCheck then                         say_title(mob_name(20394))                         say("Uyarı! Kırmızı Ejderha Kulesi'ne girebilmek için,[ENTER]bütün grup üyelerinin[ENTER]geçiş biletine sahip olması gereklidir.[ENTER]Geçiş kartı olmayan üyeler:")                         for i, name in next, noTicketMembers, nil do                             say(color(1,1,0), "    "..name)                         end                         if levelCheck then                             return                         else                             wait()                         end                     end                       if not levelCheck then                         say_title(mob_name(20394))                         say("Uyarı! Kırmızı Ejderha Kulesi'ne girebilmek için,[ENTER]bütün grup üyelerinin[ENTER]100.Seviye'ye ulaşmış olması gereklidir.[ENTER]Gerekli seviyede olmayan üyeler:")                         for i, name in next, notEnoughLevelMembers, nil do                             say(color(1,1,0), "    "..name)                         end                         return                     end                       if party.is_leader() then                         say("Kırmızı Ejderha Kulesi'ne girmek için emin misin?")                         local warp = select("Evet.","Belki daha sonra...")                         if warp == 1 then                             if party.is_map_member_flag_lt("exit_time", get_global_time() - 30 * 60 ) then                                 flame_dungeon.make_dungeon()                             else                                 say("Kırmızı Ejderha Kulesi'ne giriş yapabilmek için[ENTER]henüz süreniz dolmamış.")                             end                         end                                                   party.setf("flame_dungeon_boss_kill_count", 0)                                               else                         say("Sadece grup liderleri giriş izninde bulunabilir.")                     end                 end             else                 say("Cesaretini takdir ediyorum.[ENTER]Fakat, Kırmızı Ejderha Kulesi'ne tek başına giremezsin.[ENTER]Güçlü bir grup kur ve daha sonra tekrar gel.")             end         end         when 20394.chat."Test : Işınla " with pc.is_gm() begin -- ????             local setting = flame_dungeon.setting()             pc.setf("flame_dungeon","fdRtest",1)             pc.warp( setting.dungeon_entry_pos[1]*100, setting.dungeon_entry_pos[2]*100, 351)         end                             when 20394.chat."TEST : Süreyi değiştir " with pc.is_gm() begin -- ????             pc.setf("flame_dungeon","exit_time",get_global_time()-1800)             say("Geri")         end         when 20385.chat."Test : Bilgi" with pc.is_gm() begin -- ????             say("canavarlar_11 : "..d.getf("counter_11"))             say("canavarlar_13 : "..d.getf("counter_13"))             say("server saati : "..get_server_timer_arg())             say("toplam canavar sayısı : "..d.count_monster())             say("level : "..d.getf("level"))             say("Dmap index : "..d.get_map_index())             say("Pmap index : "..pc.get_map_index())             say("erişim süresi : "..pc.getf("flame_dungeon","exit_time"))             say("gerçek zaman : "..get_global_time())             if flame_dungeon.is_flamed(d.get_map_index()) then                 say("in dungeon") -- is_flamed ?? ??             end             if d.is_unique_dead("stone1") then                 say("taş 1 öldü ")             else                 say("taş 1 yaşıyor")             end         end         when 20385.chat." Örnegi etkinleştir " with pc.is_gm() begin -- ????             say("??? ???")             flame_dungeon.clear_timer(d.get_map_index())             flame_dungeon.make_dungeon()         end         when 20385.chat."Test : Patron odası " with pc.is_gm() begin -- ????             flame_dungeon.go_boss()         end                   when 20385.chat."Test et" with pc.is_gm() begin -- ???? ??? ?? ? ?? ???             local setting = flame_dungeon.setting()             say("??? ????????")             local warp = select("Evet","Hayır")             if warp == 1 then                 pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)             end         end         when flame_dungeon_45m_left_timer.timer begin             notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 45),d.notice)             notice_multiline("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)             timer("flame_dungeon_30m_left_timer", 15*60)         end         when flame_dungeon_30m_left_timer.timer begin             notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 30),d.notice)             notice_multiline("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)             timer("flame_dungeon_15m_left_timer", 15*60)         end         when flame_dungeon_15m_left_timer.timer begin             notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 15),d.notice)              notice_multiline("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)             timer("flame_dungeon_5m_left_timer", 10*60)         end         when flame_dungeon_5m_left_timer.timer begin             notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 5),d.notice)             notice_multiline("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)             timer("flame_dungeon_1m_left_timer", 4*60)         end         when flame_dungeon_1m_left_timer.timer begin             notice_multiline(string.format("Kalan zaman: %d dakika(lar)", 1),d.notice)             notice_multiline("Süre bitince grup olarak kale'nin dışına atılacaksınız.",d.notice)             timer("flame_dungeon_0m_left_timer", 60)         end         when flame_dungeon_0m_left_timer.timer begin             local setting = flame_dungeon.setting()             notice_multiline("Size ayırılan süre doldu.10 Saniye[ENTER]içinde kale'nin kapıları sizin için açılacak.",d.notice)             notice_multiline("10 Saniye içinde herkes ışınlanacak.",d.notice)             timer("exit_dungeon",10)             end             when 20385.chat." Am-heh Uyanış " with npc.lock() begin -- '0x'? x?? ?? ??? ?? ? ?? ?? , '1x'? x?? ?? ??? ???             local setting = flame_dungeon.setting()             if d.getf("started") == 0 then                 say("Am-heh Uyandı!")                 say("Kızıl Ejderha Kale'si bir saat boyunca[ENTER]başkalarına kapatıldı.")                 wait()                 d.setf("started",1)                 timer("flame_dungeon_45m_left_timer",15*60)                 notice_multiline("Kalan zaman: 60 Dakika(lar) ",d.notice)                 notice_multiline("Süre dolduğunda bütün grup üyeleri dışarıya atılır.",d.notice)                                   local pids = {party.get_member_pids()}                 local ticketGroup = {71175, 1}                 for i, pid in next, pids, nil do                     q.begin_other_pc_block(pid)                     local canPass = false                     for idx=1, table.getn(ticketGroup),2 do                         if pc.count_item(ticketGroup[idx]) >= ticketGroup[idx+1] then                             canPass = true                             pc.remove_item(ticketGroup[idx], ticketGroup[idx+1])                             break                         end                     end                                           if not canPass then                         pc.warp(setting.outside_entry_pos[1]*100, setting.outside_entry_pos[2] * 100, 62)                     end                     q.end_other_pc_block()                 end                 d.setqf2("flame_dungeon","ticket_delete",1)                 d.setf("dungeon_enter",1)                                   party.setf("dungeon_index", d.get_map_index())                 d.setf("party_leader_pid", party.get_leader_pid())             end             if d.getf("level") < 7 then --???? ???                 if d.getf("clear_count") == 6 then -- ? ??? ??? ???                     d.setf("level",7)                 else                     local rand = number(1,6)--???? ????? ?? ???? ?? ?? ?????? ???                     local setlev = 0                     d.setf("level",7) -- ?? ?? ??? ?? ??? ?????? ??? ????? ????                     for i=1,50 do                         setlev = setlev + 1                         if setlev > 6 then                             setlev = 1                         end                         if not d.is_unique_dead("door"..setlev) then                             rand = rand - 1                             if rand == 0 then                                 d.setf("level",setlev)                                 d.setf("clear_count",d.getf("clear_count")+1)                                 break                             end                         end                     end                 end             end                 if d.getf("level") == 1 then                     say("Missão: Aventure-se no anel de demônios[ENTER]e surja como vencedor.")                     notice_multiline("Bilgilendirme: Savaşçılar ve Ejderha kral arasındaki ayaklanma birazdan başlayacak.",d.notice)                     d.kill_unique("door1")                     d.kill_unique("idoor1")                     d.setf("level",11)                     local counter_11 = 180                     d.regen_file ("data/dungeon/flame_dungeon/".."fd_a.txt")                 elseif d.getf("level") == 11 then                     say("Bütün şeytanlar yenilmedi.")                     say_title("Kalan: ", counter_11)                 elseif d.getf("level") == 2 then                         say("Tarefa: Encontre a engrenagem de ouro,[ENTER]substituindo o mecanismo oculto[ENTER]na estela de Isfet.")                         notice_multiline("Tarefa: Encontre a engrenagem de ouro, substituindo [ENTER] o mecanismo oculto na estela de Isfet.",d.notice)                         d.spawn_mob(20386, setting.LEVEL2_STONE_pos[1], setting.LEVEL2_STONE_pos[2]) -- ??? ??                         d.kill_unique("door2")                         d.kill_unique("idoor2")                         d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_b.txt")                         d.setf("level",12)                 elseif d.getf("level") == 12 then                     say("O mecanismo na estela de Isfet só pode ser[ENTER]acionado com a roda de engrenagem de ouro.[ENTER]Volta quando a tarefa foi cumprida.")                 elseif d.getf("level") == 3 then                     say("Missão: Aventure-se no anel de demônios e[ENTER]surja como vencedor.")                     notice_multiline("Missão: Aventure-se no anel de demônios e[ENTER]surja como vencedor.",d.notice)                     d.kill_unique("door3")                     d.kill_unique("idoor3")                     d.setf("level",13)                     local counter_13 = 180                     d.regen_file ("data/dungeon/flame_dungeon/".."fd_c.txt")                 elseif d.getf("level") == 13 then                     say("Não foram derrotados todos os demônios.")                     say_title("Restantes: ", counter_13)                 elseif d.getf("level") == 4 then -- 474 178                     say("Tarefa: Derrote Ignator, guarda das brasas.")                     notice_multiline("Tarefa: Derrote Ignator, guarda das brasas.",d.notice)                     d.setf("level",14)                     d.kill_unique("door4")                     d.kill_unique("idoor4")                     d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_d.txt")                     d.spawn_mob(6051,setting.LEVEL4_TARGET_pos[1],setting.LEVEL4_TARGET_pos[2] ) -- ????? ??                 elseif d.getf("level") == 14 then                     say("Ignator ainda não foi derrotado.[ENTER]Fortaleça-se ou receberá a condenação eterna.[ENTER]Volte se a tarefa for cumprida.")                 elseif d.getf("level") == 5 then -- 510 355                     say("Missão: Procurar as Pedras de Maat e coloca-as[ENTER]na ordem correta nas 7 estelas de Isfet.")                     say("Se usares a Pedra de Maat na estela errada,[ENTER]a pedra irá partir-se.")                     notice_multiline("Missão: Procurar as Pedras de Maat e coloca-as[ENTER]na ordem correta nas 7 estelas de Isfet.",d.notice)                     notice_multiline("Se usares a Pedra de Maat na estela errada,[ENTER]a pedra irá partir-se.",d.notice)                     d.kill_unique("door5")                     d.kill_unique("idoor5")                     d.setf("level",15)                     d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                     local vis = { 0,0,0,0,0,0,0}                     for i=1,7 do                         vis[i] = 0                     end                     for i = 1, 7 do -- ???? ???                         local ran = number(1,7)                         local st = 0                         for j = 1, 50 do                             st = st + 1                             if st > 7 then                                 st = 1                             end                             if vis[st] == 0 then                                 ran = ran - 1                                 if ran == 0 then                                     vis[st] = 1                                     d.set_unique("stone5_"..st, d.spawn_mob(20386, setting.LEVEL5_STONE_pos[i][1], setting.LEVEL5_STONE_pos[i][2]))                                     break                                 end                             end                         end                     end                  elseif d.getf("level") == 15 then                     say("Errar é humano! Portanto, escolha com sabedoria[ENTER]para resolver o mistério. Volte se a tarefa[ENTER]for cumprida.")                 elseif d.getf("level") == 6 then -- 507 490                     say("Tarefa: Só quem não tem medo do calor abrasador,[ENTER]irá destruir a Metin do purgatório.")                     notice_multiline("Tarefa: Só quem não tem medo do calor abrasador,[ENTER]irá destruir a Metin do purgatório.",d.notice)                     d.setf("level",16)                     d.kill_unique("door6")                     d.kill_unique("idoor6")                     d.set_regen_file ("data/dungeon/flame_dungeon/".."fd_f.txt")                     d.spawn_mob(8057, setting.LEVEL6_TARGET_pos[1],setting.LEVEL6_TARGET_pos[2]) -- ?????? ??                 elseif d.getf("level") == 16 then                     say(" ")                     say("Vamos colocar a Metin do purgatório em cinzas.[ENTER]Volta se a tarefa for cumprida.")                 elseif d.getf("level") == 7 then                     flame_dungeon.go_boss()                 else                     say(" ")                 end             npc.unlock()                 end               when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 11 begin -- 2?? ??? ?? ??             if d.getf("counter_11") == 0 then -- 1?? ??? ???                 notice_multiline("Bütün şeytanları yendiniz,",d.notice)                 notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)                 flame_dungeon.level_clear()             else                 d.setf("counter_11",d.getf("counter_11")-1)             end         end           when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 13 begin -- 2?? ??? ?? ??             if d.getf("counter_13") == 0 then -- 1?? ??? ???                 notice_multiline("Bütün şeytanları yendiniz,",d.notice)                 notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)                 flame_dungeon.level_clear()             else                 d.setf("counter_13",d.getf("counter_13")-1)             end         end           when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 12 begin -- 2?? ??? ?? ??             local i = number(1, 100) -- 100?? 1 ??? ????             if i == 1 then                 game.drop_item (30329, 1)             end         end         when 20386.take with flame_dungeon.is_flamed(pc.get_map_index()) and item.vnum == 30329 and d.getf("level") == 12 begin -- 2?? ?? ????             local i = number(1, 5) -- 5?? 1 ??? ?? ??             if i == 1 then                 npc.purge()                 item.remove()                 notice_multiline("Bütün şeytanları yendiniz,",d.notice)                 notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)                 flame_dungeon.level_clear()             else                 item.remove()                 say("Esta peça é falsa e foi destruida.[ENTER]Procura a original.")             end         end           when 6051.kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 14 begin                 notice_multiline("Bütün şeytanları yendiniz,",d.notice)                 notice_multiline("Yeni görev için Am-heh ile görüşün...",d.notice)             flame_dungeon.level_clear()         end           when kill with flame_dungeon.is_flamed(pc.get_map_index()) and d.getf("level") == 15 begin -- 5?? ??? ?? ??             local i = number(1, 30) -- 30?? 1 ??? ????             if i == 1 then                 game.drop_item (30330, 1)             end         end         when 20386.take with flame_dungeon.is_flamed(d.get_map_index()) and item.vnum == 30330 and d.getf("level") == 15 begin -- 5?? ???? ????             local setting = flame_dungeon.setting()             if npc.get_vid() == d.get_unique_vid("stone5_1") then -- ??? ?? ????? ? ?? ????? ???? ????                 npc.purge()                 item.remove()                 say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")                 d.setf("stonekill",2) -- 2? ?? ???                 if d.count_monster() < 100 then                     d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                 end             elseif npc.get_vid() == d.get_unique_vid("stone5_2") then                  if d.getf("stonekill") == 2 then -- 2??? ?? ??? 2???? ??? ??? ?                     npc.purge()                     item.remove()                     say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")                     d.setf("stonekill",3)                     if d.count_monster() < 100 then                         d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                     end                 else                     item.remove()                     say("Ordem errada. A Pedra de Maat foi destruída.")                 end             elseif npc.get_vid() == d.get_unique_vid("stone5_3") then                 if d.getf("stonekill") == 3 then                     npc.purge()                     item.remove()                     say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")                     d.setf("stonekill",4)                     if d.count_monster() < 100 then                         d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                     end                 else                     item.remove()                     say("Ordem errada. A Pedra de Maat foi destruída.")                 end             elseif npc.get_vid() == d.get_unique_vid("stone5_4") then                 if d.getf("stonekill") == 4 then                     npc.purge()                     item.remove()                     say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")                     d.setf("stonekill",5)                     if d.count_monster() < 100 then                         d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                     end                 else                     item.remove()                     say("Ordem errada. A Pedra de Maat foi destruída.")                 end             elseif npc.get_vid() == d.get_unique_vid("stone5_5") then                 if d.getf("stonekill") == 5 then                     npc.purge()                     item.remove()                     say("Essa foi uma escolha sábia.[ENTER]Destrua agora a próxima estela.")                     d.setf("stonekill",6)                     if d.count_monster() < 100 then                         d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                     end                 else                     item.remove()                     say("Ordem errada. A Pedra de Maat foi destruída.")                 end             elseif npc.get_vid() == d.get_unique_vid("stone5_6") then                 if d.getf("stonekill") == 6 then                     npc.purge()                     item.remove()                     say("Essa foi uma escolha sábia. Destrua agora a última[ENTER]estela e Maat triunfará sobre Isfet.")                     d.setf("stonekill",7)                     if d.count_monster() < 100 then                         d.regen_file ("data/dungeon/flame_dungeon/".."fd_e.txt")                     end                 else                     item.remove()                     say("Ordem errada. A Pedra de Maat foi destruída.")                 end             else                 if d.getf("stonekill") == 7 then                     npc.purge()                     item.remove()                     notice_multiline("A estela de Isfet foi destruída.",d.notice)                     notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)                     flame_dungeon.level_clear()                 else                     item.remove()                     say("Ordem errada. A Pedra de Maat foi destruída.")                 end             end         end           when 8057.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==16 begin -- ??? ???? ?             notice_multiline("A Metin do purgatório foi destruída.",d.notice)             notice_multiline("Fala com Am-heh para abrir um novo destino.",d.notice)             flame_dungeon.level_clear()         end           when 6091.kill with flame_dungeon.is_flamed(d.get_map_index()) and d.getf("level") ==17 begin -- ?? ????             notice_multiline("Razador foi destruído.",d.notice)             notice_multiline("Todos os lutadores seram teleportados[ENTER]em um minuto do Templo do Dragão.",d.notice)             timer("exit_dungeon", 60)             flame_dungeon.level_clear()                           if party.is_party() then                 party.setf("flame_dungeon_boss_kill_count", 1)             end                       end                   when exit_dungeon.timer begin             local setting = flame_dungeon.setting()             flame_dungeon.clear_timer(d.get_map_index())             d.set_warp_location(62, setting.outside_entry_pos[1] , setting.outside_entry_pos[2])             d.exit_all()             d.setf("party_leader_pid", 0)         end               end end

Kod:
quest flame_dungeon_leave begin     state start begin            when login or enter begin             set_state(leave)         end     end           state leave begin         when letter begin             if pc.get_map_index() == 351 then                 send_letter("Bölgeden çık")             end         end           when button or info begin             say_title("Kırmızı Ejderha Kalesi")             say("Kırmızı Ejderha Kalesi'nden") say("çıkmak mı istiyorsun?")             local warp =  select("Evet","Hayır")             if warp == 1 then                 clear_letter()                 q.done()                 pc.warp(5980*100, 7075*100, 62)             else                 say("İyi şanslar!")             end         end                   when logout begin             clear_letter()             q.done()         end     end end

Bir Teşekkür Yeterli.
Official Kırmızı Ejderha Kulesi Quest (Ücretsiz) - Pelin Melek Aslan

Metin2Lobby olarak Metin2 sunucularında kullanılabilen yüksek kaliteli ve özgün quest sistemleri sunmaya devam ediyoruz. Bu yazımızda sizlere Official Kırmızı Ejderha Kulesi adlı özel questin detaylarını, nasıl çalıştığını ve neden kullanmaya değer olduğunu anlatıyoruz. Ayrıca bu questin ücretsiz olarak erişilebilir olduğunu belirtmek isteriz.

Quest Hakkında Genel Bilgiler

Bu quest, Pelin Melek Aslan karakteri üzerinden başlatılan ve oyunculara hem eğlenceli hem de ödüllendirici bir deneyim sunan bir yapıya sahiptir. Metin2 quest sistemlerinde özgün bir yere sahip olan bu quest, lua tabanlıdır ve sunucuya entegre edilmesi oldukça kolaydır. Questin amacı, oyuncuların Kırmızı Ejderha Kulesi'ne gitmesi ve içerideki görevleri tamamlayarak özel ödüller kazanmasıdır.

Questin Özellikleri

- Metin2 quest script yapısı sayesinde yüksek performanslı ve hafif çalışır.
- Lua quest formatında yazılmıştır ve kolayca düzenlenebilir.
- Metin2 quest reward sistemi ile oyunculara özel itemler verilir.
- NPC etkileşimleri sayesinde görsellik artırılmıştır.
- Timer ve trigger mekanizmaları ile oyun içi zamanlama yapılabilmektedir.
- Flag ve state yönetimi sayesinde quest durumları takip edilebilir.

Teknik Detaylar

Metin2 quest geliştirme sürecinde dikkat edilmesi gereken bazı önemli unsurlar vardır. Bu questte özellikle quest begin ve quest end komutları kullanılarak başlatma ve bitirme işlemleri sağlanmıştır. Ayrıca quest chain sistemi sayesinde birden fazla görevin birbiriyle bağlantılı olarak çalışması sağlanmıştır. Metin2 quest dosyası formatında sunulan bu içerik, geliştiricilerin kolayca test edebileceği ve üzerinde değişiklik yapabileceği bir yapıya sahiptir.

Hata Ayıklama ve Debug

Metin2 quest hata yönetimi oldukça kritik bir konudur. Bu questte debug işlemleri önceden yapılmış olup, olası sorunlar için gerekli önlemler alınmıştır. Geliştiriciler, Metin2 quest debug süreçlerini daha hızlı gerçekleştirebilmek için bu.quest dosyasını örnek alabilirler.

Özel NPC ve Mob Tanımlamaları

Metin2 quest npc tanımlamaları sayesinde oyuncular, Pelin Melek Aslan karakteriyle etkileşime girerek questi başlatırlar. Ayrıca quest kapsamında özel mob tanımlamaları da yer alır. Bu sayede oyuncular, kulede belirli canavarları yendikçe ilerleme kaydederler. Her bir mob ile yapılan mücadele, questin devam etmesi için gereklidir.

Daily Quest ve Sunucu Uyumluğu

Metin2 daily quest sistemlerine entegre edilebilecek bu quest, aynı zamanda özel sunucularda da sorunsuz çalışmaktadır. Metin2 quest server yapılarında test edilmiş olup, farklı sunucu tiplerine uyumluluğu sağlanmıştır. Metin2dev quest veya martysama quest gibi popüler yapılarla da uyumlu çalışır.

Sonuç

Official Kırmızı Ejderha Kulesi Quest, Metin2 sunucularında oynanabilirlik ve eğlenceyi artırmak için ideal bir çözümdür. Metin2 özel quest arayan geliştiriciler için harika bir başlangıç noktası teşkil eder. Ücretsiz olarak erişilebilen bu quest, Metin2Lobby tarafından sunulmuştur. Siz de sunucunuza eklemek için hemen indirip test edebilirsiniz.


Official Red Dragon Tower Quest (Free) - Pelin Angel Lion

Metin2Lobby continues to provide high-quality and original quest systems for Metin2 servers. In this article, we will explain the details of the special quest called Official Red Dragon Tower, how it works, and why it is worth using. Additionally, we would like to emphasize that this quest is available free of charge.

General Information About the Quest

This quest features an original place within Metin2 quest systems and offers players both fun and rewarding gameplay through the character Pelin Angel Lion. Based on lua, this quest is easy to integrate into your server. The objective is for players to enter the Red Dragon Tower, complete tasks inside, and earn exclusive rewards.

Features of the Quest

- Lightweight and high-performance thanks to its Metin2 quest script structure.
- Written in lua quest format and easily customizable.
- Provides special items to players via Metin2 quest reward system.
- Visual appeal enhanced with NPC interactions.
- In-game timing enabled through timer and trigger mechanisms.
- Quest states are trackable via flag and state management.

Technical Details

Certain key elements must be considered during Metin2 quest development. In this quest, quest begin and quest end commands have been used to initiate and finalize the quest. Furthermore, the quest chain system ensures multiple quests work in conjunction. This content, provided in Metin2 quest file format, is structured for developers to easily test and modify.

Error Handling and Debugging

Metin2 quest error management is a critical aspect. Debugging processes have already been implemented in this quest, and necessary precautions have been taken against potential issues. Developers can use this .quest file as a reference to speed up their Metin2 quest debug processes.

Custom NPC and Mob Definitions

Through Metin2 quest npc definitions, players interact with the character Pelin Angel Lion to start the quest. Additionally, special mob definitions are included for the quest. Thus, as players defeat certain monsters inside the tower, they progress through the quest. Each battle with a mob is required to continue the quest.

Daily Quest and Server Compatibility

Compatible with Metin2 daily quest systems, this quest also works seamlessly on private servers. Tested on Metin2 quest server structures, it has been ensured to be compatible with various server types. It is also compatible with popular frameworks such as Metin2dev quest and martysama quest.

Conclusion

The Official Red Dragon Tower Quest is an ideal solution to enhance playability and entertainment in Metin2 servers. It serves as a great starting point for developers seeking Metin2 custom quests. Available free of charge, this quest is provided by Metin2Lobby. You can download and test it on your server right away.​
 

Şuan Bu Konuyu Görüntüleyen Kullanıcılar (Toplam : 0, Üye : 0, Misafir : 0)

Geri
Üst Alt