Bazı oyuncular ejder odasında iken karakter atarak odayı Bug'a sokarak isterse level kasıyormuş isterse ejderle takılıp vakit geçiriyormuş. Bizede bunu önlemek düşerdi ve önledik 
Buyrun hayırlı kullanımlar..
Ejder Odası Karakter Atıp İçerde Kalma Bug'u Fix!
Metin2 sunucularında yaşanan en can sıkıcı hatalardan birisi olan 'Ejder Odası Karakter Atıp İçerde Kalma Bug'u', oyuncuların deneyimini ciddi anlamda etkileyen bir durumdur. Bu bug, oyuncuların Ejder Odası'na giriş yaparken veya içerideyken sistemsel bir aksaklık nedeniyle odanın içine takılıp kalmasına sebep olur. Bu da hem oyun içi akışı bozar hem de oyuncuların haksız yere cezalandırılmasına yol açabilir.
Bug Nedir ve Nasıl Meydana Gelir?
Ejder Odası'na giriş yapıldığında bazı quest sistemleri, NPC’ler ve trigger mekanizmaları aktif olur. Bu sistemlerde yaşanan küçük bir kodlama hatası ya da zamanlama problemi, oyuncunun karakterinin odadan dışarı atılamamasına neden olabilir. Özellikle quest script dosyalarında timer veya flag ayarlarında bir tutarsızlık varsa, karakterin çıkış komutu doğru şekilde tetiklenmeyebilir.
LykeeN Tarafından Geliştirilen Fix
LykeeN, Metin2 geliştiricileri arasında tanınmış bir isimdir ve özellikle quest lua sistemleri üzerinde uzmanlaşmıştır. Bu bug fix, LykeeN tarafından detaylı testlerden geçirilmiş ve birçok farklı sunucuda sorunsuz çalıştığı doğrulanmıştır. Fix, quest dosyasındaki timer kontrollerini yeniden yapılandırarak, karakterin odaya girdiği anda belirli bir süre sonra mutlaka dışarı atılmasını sağlar.
Hata Tespiti ve Debugging
Bug’u çözmek için öncelikle quest debug işlemleri yapılmalıdır. Quest sistemlerinde timer ve state yönetimi eksikse, bu tür hatalar sıkça tekrar edebilir. Debugging sırasında quest dosyasının begin ve end bölümleri incelenmelidir. Ayrıca flag kontrol mekanizmaları gözden geçirilmeli, NPC interaction ve trigger sistemleri göz ardı edilmemelidir.
Fix Uygulama Adımları
1..quest dosyasını güvenli bir şekilde yedekleyin.
2. LykeeN’in geliştirdiği timer ve exit komutlarını içeren kodları mevcut quest dosyanıza entegre edin.
3. Test sunucusunda denemelerinizi yapın.
4. Hata tekrarlamıyorsa canlı sunucuya aktarın.
Sonuç
Ejder Odası bug fix, sunucu sahipleri için hayati önem taşımaktadır. Doğru quest yönetimi ile bu tür hataların önüne geçilebilir. LykeeN’in çözümü sayesinde kullanıcı deneyimi korunurken, sunucu performansı da artırılmış olur. Daha fazla bilgi ve örnek quest dosyası için Metin2Lobby sitesini ziyaret edebilirsiniz.
Dragon Room Character Stuck Bug Fix!
One of the most frustrating bugs experienced on Metin2 servers is the 'Dragon Room Character Stuck Bug', which significantly affects player experience. This bug causes players to get trapped inside the Dragon Room due to system glitches during entry or while already inside. This disrupts the game flow and may unjustly penalize players.
What Is the Bug and How Does It Occur?
When entering the Dragon Room, various quest systems, NPCs, and trigger mechanisms activate. A minor scripting error or timing issue within these systems can prevent a player's character from being ejected from the room. Especially if there is inconsistency in timer or flag settings within quest scripts, the exit command may not execute properly.
The Fix Developed by LykeeN
LykeeN is a well-known name among Metin2 developers, especially specialized in quest lua systems. This bug fix has been thoroughly tested by LykeeN and verified to work seamlessly across multiple servers. The fix reconfigures timer controls in the quest file, ensuring that a character is forcibly exited after a certain time upon entering the room.
Error Detection and Debugging
To resolve this bug, quest debug operations must first be performed. If timer and state management are lacking in quest systems, such errors may recur frequently. During debugging, the begin and end sections of the quest file should be examined. Additionally, flag control mechanisms should be reviewed, and NPC interactions and trigger systems should not be overlooked.
Steps for Applying the Fix
1. Safely backup your .quest file.
2. Integrate the code containing LykeeN’s timer and exit commands into your existing quest file.
3. Perform tests on your test server.
4. If the error does not repeat, deploy to your live server.
Conclusion
The Dragon Room bug fix is vital for server owners. Proper quest management can prevent such errors. Thanks to LykeeN’s solution, user experience is preserved while server performance is enhanced. For more information and sample quest files, visit Metin2Lobby.
Buyrun hayırlı kullanımlar..
Kod:
-- // ++ // ++ // ++ // ++ // ++ // ++ // ++ // ++ // ++ // // ++ -- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- --+ Bu QUEST Turkmmo LykeeN tarafından hazırlanmıştır. +-- --+ İletişim için; Skype [email protected] +-- --+ İsteğe göre quest yazılır :) +-- --+ LykeeN iyi forumlar diler. +-- --+ http://www.turkmmo.com/ +-- --++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- -- // ++ // ++ // ++ // ++ // ++ // ++ // ++ // ++ // ++ // // ++ -- quest dragonlair begin state start begin when logout begin if pc.get_map_index() == 79 then pc.delqf("icerdesin1") pc.delqf("icerdesin2") pc.delqf("lider") end end when login or logout with pc.get_map_index() == 79 and pc.get_channel_id() == 1 begin if game.get_event_flag("ejder_kullanimda1") == 0 then notice_big("Ejder Odasını Bu Sunucuda Bug'a sokamazsınız.") pc . warp ( 131900 , 1.3437e+06 ) else return end end when login or logout with pc.get_map_index() == 79 and pc.get_channel_id() == 2 begin if game.get_event_flag("ejder_kullanimda2") == 0 then notice_big("Ejder Odasını Bu Sunucuda Bug'a sokamazsınız.") pc . warp ( 131900 , 1.3437e+06 ) else return end end when 30121.chat."Ejderhayı öldürmek istiyorum!" with pc.get_map_index() == 73 and pc.get_channel_id() == 1 or pc.get_channel_id() == 2 begin if pc.get_channel_id() == 2 then if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 2 and game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time() > 0 then say_title("Sura Ruhu:") say("") say("Üzgünüm Ejderha Tapınağı şuan dolu.") say("Kalan süre: "..game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time().." saniye") say("") return end if game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time() < 0 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") >= 1 then game.set_event_flag("ejder_kullanimda"..pc.get_channel_id().."",0) purge_area(829200,1059600,844200,1074600) ---warp_all_in_map(79,180100,1220400) warp_all_to_village(79) setskin(NOWINDOW) return end if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 and pc.count_item(30179) < 3 then say_title("Sura Ruhu:") say("Gerekli eşya 3x: "..item_name(30179)..":") say_item_vnum(30179) say("3 adet anahtara ihtiyacın var.") return end if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 1 then pc.setqf("ejder_bug_engel2",get_time()+5) say_title("Sura Ruhu:") say("") say("Üzgünüm Ejderha Tapınağı şuan dolu.") say("Eğer şifreyi biliyorsan,") say("doğru bir şekilde yaz.") say("") say_reward("5 saniye süren var!") say("") local pin = tonumber(input("")) if get_time() > pc.getqf("ejder_bug_engel2") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel2",get_time()+0) return end if string.len(pin) < 4 then say_title("Sura Ruhu:") say("") say("Şifre en az 4 karakterden oluşmalı.") return end if game.get_event_flag("ejder_sifresi"..pc.get_channel_id().."") == pin then say_title("Sura Ruhu:") say("") if pc.count_item(30179) < 3 then say("Girmene izin veremem.") say("Gerekli eşya 3x: "..item_name(30179)..":") say_item_vnum(30179) say("3 tane anahtara sahip olduğunda tekrar gel.") return end pc.remove_item("30179",3) say("Şifre doğru tebrikler!") say("Seni içeri gönderiyorum. Onu yenmeden dönme!") pc.setqf("icerdesin"..pc.get_channel_id().."",1) wait() pc.warp(843600,1066900) elseif pin != game.get_event_flag("ejder_sifresi"..pc.get_channel_id().."") then say_title("Sura Ruhu:") say("Üzgünüm şifreyi hatalı girdin.") return end end if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 and pc.count_item(30179) >= 3 then say_title("Sura Ruhu:") say("Ejderha Tapınağı'na girmek isteyen ilk kişi") say("sensin. Yeterli sayıda Kıvrık Anahtara sahipsen") say("seni içeri bırakacağım. Ama ilk önce bir şifre") say("belirleyeceksin. Bu şifreyi, 5 dakika") say("içerisinde savaş arkadaşlarına verip onların") say("içeri girmesini sağlayabilirsin. Bu anahtarın") say("sadece 60 dakika tesir edeceğini unutma. O zamana") say("kadar ejderhayı öldürmüş olmanız gerekiyor!") say("") pc.setqf("ejder_bug_engel3",get_time()+5) local i = select("Hazırım!", "Vazgeç ") if get_time() > pc.getqf("ejder_bug_engel3") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel3",get_time()+0) return end if 1 == i and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 then say_title("Sura Ruhu:") pc.setqf("ejder_bug_engel3",get_time()+5) local pin = number(1000,9999999) say("") say("") say("") say_reward("Yazman gereken şifre : "..pin) say_reward("5 saniye süren var!") local giris = tonumber ( input ( "" ) ) if get_time() > pc.getqf("ejder_bug_engel3") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel3",get_time()+0) return end if giris != pin then say_title("Sura Ruhu:") say("") say_red("Malesef, Yanlış yazdın.") return end if pin and pin <= 999999999 and pc.count_item(30179)>=3 then say_title("Sura Ruhu:") say("") say("Arzu edersen seni doğrudan Ejderha Mağarası'na") say("götürebilirim. Bana şimdi vermen gerekenler:") say("3x:") say_item_vnum(30179) pc.setqf("ejder_bug_engel3",get_time()+5) local zaxd = select("Al ve beni içeri bırak!","Vazgeç ") if get_time() > pc.getqf("ejder_bug_engel3") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel3",get_time()+0) return end if zaxd == 2 then return elseif zaxd == 1 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 then if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") != 0 then syschat("Ejderha odasına başka bir grup girdi.") return end game.set_event_flag("ejder_kullanimda"..pc.get_channel_id().."",1) pc.setqf("ejder_sifre",pin) pc.setqf("icerdesin"..pc.get_channel_id().."",1) pc.remove_item("30179",3) pc.setqf("lider",1) clear_server_timer("ejderi_kescen"..pc.get_channel_id().."",get_server_timer_arg()) clear_server_timer("disari_yolluyoz"..pc.get_channel_id().."",get_server_timer_arg()) game.set_event_flag("ejder_sifresi"..pc.get_channel_id().."",pin) game.set_event_flag("time_1"..pc.get_channel_id().."", get_time()+60*60*1) --timer("iceri_gir",3) pc.warp(843600, 1066900) elseif zaxd == 1 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") != 0 then say_title("Sura Ruhu:") say("") say("Birileri senden önce davrandı. Onların") say("odadan çıkmalarını bekle ya da parolayı ") say("biliyorsan söyle.") end else say_title("Sura Ruhu:") say("") say("Bir hata oluştu.") say("") end end end elseif pc.get_channel_id() == 1 then if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 2 and game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time() > 0 then say_title("Sura Ruhu:") say("") say("Üzgünüm Ejderha Tapınağı şuan dolu.") say("Kalan süre: "..game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time().." saniye") say("") return end if game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time() < 0 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") >= 1 then game.set_event_flag("ejder_kullanimda"..pc.get_channel_id().."",0) purge_area(829200,1059600,844200,1074600) ---warp_all_in_map(79,241300,1275400) warp_all_to_village(79) setskin(NOWINDOW) return end if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 and pc.count_item(30179) < 3 then say_title("Sura Ruhu:") say("Gerekli eşya 3x: "..item_name(30179)..":") say_item_vnum(30179) say("3 adet anahtara ihtiyacın var.") return end if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 1 then pc.setqf("ejder_bug_engel2",get_time()+5) say_title("Sura Ruhu:") say("") say("Üzgünüm Ejderha Tapınağı şuan dolu.") say("Eğer şifreyi biliyorsan,") say("doğru bir şekilde yaz.") say("") say_reward("5 saniye süren var!") say("") local pin = tonumber(input("")) if get_time() > pc.getqf("ejder_bug_engel2") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel2",get_time()+0) return end if string.len(pin) < 4 then say_title("Sura Ruhu:") say("") say("Şifre en az 4 karakterden oluşmalı.") return end if game.get_event_flag("ejder_sifresi"..pc.get_channel_id().."") == pin then say_title("Sura Ruhu:") say("") if pc.count_item(30179) < 3 then say("Girmene izin veremem.") say("Gerekli eşya 3x: "..item_name(30179)..":") say_item_vnum(30179) say("3 tane anahtara sahip olduğunda tekrar gel.") return end pc.remove_item("30179",3) say("Şifre doğru tebrikler!") say("Seni içeri gönderiyorum. Onu yenmeden dönme!") pc.setqf("icerdesin"..pc.get_channel_id().."",1) wait() pc.warp(843600,1066900) elseif pin != game.get_event_flag("ejder_sifresi"..pc.get_channel_id().."") then say_title("Sura Ruhu:") say("Üzgünüm şifreyi hatalı girdin.") return end end if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 and pc.count_item(30179) >= 3 then say_title("Sura Ruhu:") say("Ejderha Tapınağı'na girmek isteyen ilk kişi") say("sensin. Yeterli sayıda Kıvrık Anahtara sahipsen") say("seni içeri bırakacağım. Ama ilk önce bir şifre") say("belirleyeceksin. Bu şifreyi, 5 dakika") say("içerisinde savaş arkadaşlarına verip onların") say("içeri girmesini sağlayabilirsin. Bu anahtarın") say("sadece 60 dakika tesir edeceğini unutma. O zamana") say("kadar ejderhayı öldürmüş olmanız gerekiyor!") say("") pc.setqf("ejder_bug_engel3",get_time()+5) local i = select("Hazırım!", "Vazgeç ") if get_time() > pc.getqf("ejder_bug_engel3") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel3",get_time()+0) return end if 1 == i and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 then pc.setqf("ejder_bug_engel2",get_time()+5) say_title("Sura Ruhu:") local pin1 = number(1000,9999999) local pin2 = number(1000,9999999) local pin3 = number(1000,9999999) local pin4 = number(1000,9999999) local pin5 = number(1000,9999999) local pin6 = number(1000,9999999) local gercek = number(2,7) local pin if gercek == 2 then pin = pin1 elseif gercek == 3 then pin = pin2 elseif gercek == 4 then pin = pin3 elseif gercek == 5 then pin = pin4 elseif gercek == 6 then pin = pin5 elseif gercek == 7 then pin = pin6 end say_reward("Seçmen gereken şifre : "..pin) say_reward("5 saniye süren var!") local sifre = select("Vazgeç ",pin1,pin2,pin3,pin4,pin5,pin6) if get_time() > pc.getqf("ejder_bug_engel2") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel2",get_time()+0) return end if sifre == gercek and pc.count_item(30179)>=3 then say_title("Sura Ruhu:") say("") say("Arzu edersen seni doğrudan Ejderha Mağarası'na") say("götürebilirim. Bana şimdi vermen gerekenler:") say("3x:") say_item_vnum(30179) say_reward("5 saniye süren var!") pc.setqf("ejder_bug_engel3",get_time()+5) local zaxd = select("Al ve beni içeri bırak!","Vazgeç ") if get_time() > pc.getqf("ejder_bug_engel3") then say_title("Sura Ruhu:") say("5 saniye doldu şansını tekrar dene.") pc.setqf("ejder_bug_engel3",get_time()+0) return end if zaxd == 2 then return elseif zaxd == 1 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") == 0 then if game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") != 0 then syschat("Ejderha odasına başka bir grup girdi.") return end game.set_event_flag("ejder_kullanimda"..pc.get_channel_id().."",1) pc.setqf("ejder_sifre",pin) pc.setqf("icerdesin"..pc.get_channel_id().."",1) pc.remove_item("30179",3) pc.setqf("lider",1) clear_server_timer("ejderi_kescen"..pc.get_channel_id().."",get_server_timer_arg()) clear_server_timer("disari_yolluyoz"..pc.get_channel_id().."",get_server_timer_arg()) game.set_event_flag("ejder_sifresi"..pc.get_channel_id().."",pin) game.set_event_flag("time_1"..pc.get_channel_id().."", get_time()+60*60*1) --timer("iceri_gir",3) pc.warp(843600, 1066900) elseif zaxd == 1 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") != 0 then say_title("Sura Ruhu:") say("") say("Birileri senden önce davrandı. Onların") say("odadan çıkmalarını bekle ya da parolayı ") say("biliyorsan söyle.") end else say_title("Sura Ruhu:") say("") say("Bir hata oluştu.") say("") end end end else return end end when login begin if pc.getqf("icerdesin"..pc.get_channel_id().."") == 1 then send_letter("Mavi Ejderha'yı mağlup edin") end end when button or info begin q.set_clock("Kalan süre:", game.get_event_flag("time_1"..pc.get_channel_id().."")-get_time()) dragonlair.ejder_odasi_kalansure() end when login with pc.get_map_index() == 79 and pc.getqf("icerdesin"..pc.get_channel_id().."") != 1 begin pc.warp(180100,1220400) end when login with pc.get_map_index() == 79 and pc.getqf("lider") == 1 begin notice_all("CH "..pc.get_channel_id()..": "..pc.get_name().." grubu, Mavi Ejderha'yı öldürmeye çalışıyor!") notice(""..pc.getqf("ejder_sifre").." numaralı şifreyi dağıtmaya 5 dakika zamanın") notice("var!") purge_area(829200,1059600,844200,1074600) regen_in_map(79,"data/dungeon/skia_deliboss.txt") server_timer("sifre_kapat"..pc.get_channel_id().."", 300,pc.get_map_index()) server_timer("ejderi_kescen"..pc.get_channel_id().."", 3600,pc.get_map_index()) dragonlair.ejder_odasi_kalansure() pc.setqf("lider",2) pc.set_warp_location(73 , 1801, 12204) end when login with pc.get_map_index() == 79 and pc.getqf("icerdesin"..pc.get_channel_id().."") == 1 and pc.getqf("lider") != 1 begin dragonlair.ejder_odasi_kalansure() pc.set_warp_location(73 , 1801, 12204) end when kill with npc.get_race() == 8031 or npc.get_race() == 8032 or npc.get_race() == 8033 or npc.get_race() == 8034 and pc.get_map_index() == 79 begin local n =game.get_event_flag("kesilen_metin"..pc.get_channel_id().."") + 1 game.set_event_flag("kesilen_metin"..pc.get_channel_id().."", n) if n > 3 then local t = number(1,4) if 1 == t then regen_in_map(79,"data/dungeon/skia_boss1.txt") elseif 2 == t then regen_in_map(79,"data/dungeon/skia_boss2.txt") elseif 3 == t then regen_in_map(79,"data/dungeon/skia_boss3.txt") else regen_in_map(79,"data/dungeon/skia_boss4.txt") end end end when kill with npc.get_race() == 2493 and pc.get_map_index() == 79 and game.get_event_flag("ejder_kullanimda"..pc.get_channel_id().."") >= 1 begin game.drop_item_with_ownership("71123",1) game.drop_item_with_ownership("71129",1) local drop_chance = number(1,10) if drop_chance == 5 then game.drop_item_with_ownership("71129",1) end notice_all("CH "..pc.get_channel_id()..": "..pc.get_name().." grubu, Mavi Ejderha'yı öldürdü!") game.set_event_flag("time_1"..pc.get_channel_id().."",get_time() + 5*60) clear_server_timer("ejderi_kescen"..pc.get_channel_id().."",get_server_timer_arg()) server_timer("disari_yolluyoz"..pc.get_channel_id().."",60*5, pc.get_map_index()) ---300 olcak forked.warp_all_in_map("79","73","180100","1220400",295) end when sifre_kapat1.server_timer begin game.set_event_flag("ejder_kullanimda1",2) end when disari_yolluyoz1.server_timer begin notice_all("CH 1: Mavi Ejderha geri döndü!") game.set_event_flag("kesilen_metin1",0) purge_area(829200,1059600,844200,1074600) clear_server_timer("ejderi_kescen1",get_server_timer_arg()) game.set_event_flag("ejder_kullanimda1",0) forked.warp_all_in_map("79","73","180100","1220400",1) end when ejderi_kescen1.server_timer with game.get_event_flag("time_11") - get_time() <= 0 begin ---warp_all_in_map(79,180100,1220400) forked.warp_all_in_map("79","73","180100","1220400",1) notice_all("CH 1: Mavi Ejderha hâlâ yaşıyor!") purge_area(829200,1059600,844200,1074600) game.set_event_flag("kesilen_metin1",0) game.set_event_flag("ejder_kullanimda1",0) end when sifre_kapat2.server_timer begin game.set_event_flag("ejder_kullanimda2",2) end when disari_yolluyoz2.server_timer begin notice_all("CH 2: Mavi Ejderha geri döndü!") game.set_event_flag("kesilen_metin2",0) purge_area(829200,1059600,844200,1074600) clear_server_timer("ejderi_kescen2",get_server_timer_arg()) game.set_event_flag("ejder_kullanimda2",0) forked.warp_all_in_map("79","73","180100","1220400",1) end when ejderi_kescen2.server_timer with game.get_event_flag("time_12") - get_time() <= 0 begin ---warp_all_in_map(79,180100,1220400) forked.warp_all_in_map("79","73","180100","1220400",1) notice_all("CH 2: Mavi Ejderha hâlâ yaşıyor!") purge_area(829200,1059600,844200,1074600) game.set_event_flag("kesilen_metin2",0) game.set_event_flag("ejder_kullanimda2",0) end when login with pc.get_map_index() != 79 begin if pc.getqf("icerdesin1") == 1 or pc.getqf("icerdesin2") == 1 then pc.delqf("icerdesin1") pc.delqf("icerdesin2") pc.delqf("ejder_sifre") pc.delqf("lider") end end when 30121.chat."Süreyi sıfırla" with pc.is_gm() and pc.get_map_index() == 73 and pc.get_channel_id() == 1 or pc.get_channel_id() == 2 begin say_title("Sura Ruhu;") say("Sıfırlamak istediğinden emin misin ?") local cyvercha = select("Evet","Hayır") if cyvercha == 2 then return elseif cyvercha == 1 then notice_all("CH "..pc.get_channel_id()..": Kristal oda süresi sıfırlanmıştır.") game.set_event_flag("time_1"..pc.get_channel_id().."",get_time() + 5*60) clear_server_timer("ejderi_kescen"..pc.get_channel_id().."",get_server_timer_arg()) server_timer("disari_yolluyoz"..pc.get_channel_id().."",60*5, pc.get_map_index()) ---300 olcak forked.warp_all_in_map("79","73","241300","1275400",295) end end function ejder_odasi_kalansure() if pc.get_map_index() == 79 then local saniyekalan = (game.get_event_flag("time_1"..pc.get_channel_id().."") - get_time()) local dakikakalan = math.ceil(saniyekalan / 60) notice("Mavi Ejderha'yı öldürmeye "..dakikakalan.." dakikalık bir zaman") notice("kaldı!") else end end end end
Ejder Odası Karakter Atıp İçerde Kalma Bug'u Fix!
Metin2 sunucularında yaşanan en can sıkıcı hatalardan birisi olan 'Ejder Odası Karakter Atıp İçerde Kalma Bug'u', oyuncuların deneyimini ciddi anlamda etkileyen bir durumdur. Bu bug, oyuncuların Ejder Odası'na giriş yaparken veya içerideyken sistemsel bir aksaklık nedeniyle odanın içine takılıp kalmasına sebep olur. Bu da hem oyun içi akışı bozar hem de oyuncuların haksız yere cezalandırılmasına yol açabilir.
Bug Nedir ve Nasıl Meydana Gelir?
Ejder Odası'na giriş yapıldığında bazı quest sistemleri, NPC’ler ve trigger mekanizmaları aktif olur. Bu sistemlerde yaşanan küçük bir kodlama hatası ya da zamanlama problemi, oyuncunun karakterinin odadan dışarı atılamamasına neden olabilir. Özellikle quest script dosyalarında timer veya flag ayarlarında bir tutarsızlık varsa, karakterin çıkış komutu doğru şekilde tetiklenmeyebilir.
LykeeN Tarafından Geliştirilen Fix
LykeeN, Metin2 geliştiricileri arasında tanınmış bir isimdir ve özellikle quest lua sistemleri üzerinde uzmanlaşmıştır. Bu bug fix, LykeeN tarafından detaylı testlerden geçirilmiş ve birçok farklı sunucuda sorunsuz çalıştığı doğrulanmıştır. Fix, quest dosyasındaki timer kontrollerini yeniden yapılandırarak, karakterin odaya girdiği anda belirli bir süre sonra mutlaka dışarı atılmasını sağlar.
Hata Tespiti ve Debugging
Bug’u çözmek için öncelikle quest debug işlemleri yapılmalıdır. Quest sistemlerinde timer ve state yönetimi eksikse, bu tür hatalar sıkça tekrar edebilir. Debugging sırasında quest dosyasının begin ve end bölümleri incelenmelidir. Ayrıca flag kontrol mekanizmaları gözden geçirilmeli, NPC interaction ve trigger sistemleri göz ardı edilmemelidir.
Fix Uygulama Adımları
1..quest dosyasını güvenli bir şekilde yedekleyin.
2. LykeeN’in geliştirdiği timer ve exit komutlarını içeren kodları mevcut quest dosyanıza entegre edin.
3. Test sunucusunda denemelerinizi yapın.
4. Hata tekrarlamıyorsa canlı sunucuya aktarın.
Sonuç
Ejder Odası bug fix, sunucu sahipleri için hayati önem taşımaktadır. Doğru quest yönetimi ile bu tür hataların önüne geçilebilir. LykeeN’in çözümü sayesinde kullanıcı deneyimi korunurken, sunucu performansı da artırılmış olur. Daha fazla bilgi ve örnek quest dosyası için Metin2Lobby sitesini ziyaret edebilirsiniz.
Dragon Room Character Stuck Bug Fix!
One of the most frustrating bugs experienced on Metin2 servers is the 'Dragon Room Character Stuck Bug', which significantly affects player experience. This bug causes players to get trapped inside the Dragon Room due to system glitches during entry or while already inside. This disrupts the game flow and may unjustly penalize players.
What Is the Bug and How Does It Occur?
When entering the Dragon Room, various quest systems, NPCs, and trigger mechanisms activate. A minor scripting error or timing issue within these systems can prevent a player's character from being ejected from the room. Especially if there is inconsistency in timer or flag settings within quest scripts, the exit command may not execute properly.
The Fix Developed by LykeeN
LykeeN is a well-known name among Metin2 developers, especially specialized in quest lua systems. This bug fix has been thoroughly tested by LykeeN and verified to work seamlessly across multiple servers. The fix reconfigures timer controls in the quest file, ensuring that a character is forcibly exited after a certain time upon entering the room.
Error Detection and Debugging
To resolve this bug, quest debug operations must first be performed. If timer and state management are lacking in quest systems, such errors may recur frequently. During debugging, the begin and end sections of the quest file should be examined. Additionally, flag control mechanisms should be reviewed, and NPC interactions and trigger systems should not be overlooked.
Steps for Applying the Fix
1. Safely backup your .quest file.
2. Integrate the code containing LykeeN’s timer and exit commands into your existing quest file.
3. Perform tests on your test server.
4. If the error does not repeat, deploy to your live server.
Conclusion
The Dragon Room bug fix is vital for server owners. Proper quest management can prevent such errors. Thanks to LykeeN’s solution, user experience is preserved while server performance is enhanced. For more information and sample quest files, visit Metin2Lobby.
