Range Hile Fix Quest

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
2021 yıllarında range hileleri çok yaygındı ve sunucuların oyun deneyimini olumsuz etkiliyordu. Bu nedenle, bu hilelere karşı ek bir önlem olarak böyle bir sistem geliştirdim. Kullanmak isteyen olursa, güle güle kullansın.

🔎 Yönetim Paneli (GM için)​

  • <li data-xf-list-type="ul">GM oyuna girince bir menü açılıyor:
    • <li data-xf-list-type="ul">Koruma Bilgisi: Aktif/pasif durumları gösteriyor (çifte, zaman, item, karakter). <li data-xf-list-type="ul">Çifte Koruma: Hem zaman hem item bazlı kontrolü aç/kapat. <li data-xf-list-type="ul">Zaman Koruma: Metin kesme sürelerini kontrol eden sistem. <li data-xf-list-type="ul">İtem Koruma: Oyuncuya gizli item vererek bot kontrolü yapıyor. <li data-xf-list-type="ul">Karakter Koruma: NPC/karakter kesme davranışlarını izliyor. <li data-xf-list-type="ul">Hakkında: Açıklama menüsü, sistemin nasıl çalıştığını anlatıyor.
GM bu menüden istediği korumayı açıp kapatabiliyor. Durumlar game.set_event_flag ile global olarak tutuluyor.


🔎 Çifte Koruma (Metin kesme + item kontrolü)​

  • <li data-xf-list-type="ul">Oyuncu 8001 (metin taşı) kestiğinde:
    • <li data-xf-list-type="ul">Oyuncunun kesme sayısı (affyok) artıyor. <li data-xf-list-type="ul">Her kesmede zaman damgası (metinadet1, metinadet2 vs.) kaydediliyor. <li data-xf-list-type="ul">Eğer zaman damgaları eşit çıkarsa → bu “bot davranışı” olarak algılanıyor → oyuncu cmdchat("quit") ile oyundan atılıyor. <li data-xf-list-type="ul">Ayrıca oyuncuya item (79726) veriliyor. Eğer bu itemden 3 tane birikirse → yine quit.

🔎 Zaman Koruma​

  • <li data-xf-list-type="ul">Yine metin kesme sayısı ve zaman damgaları tutuluyor. <li data-xf-list-type="ul">Eğer kesme süreleri şüpheli şekilde aynıysa → oyuncu oyundan atılıyor. <li data-xf-list-type="ul">Burada item verilmez, sadece zaman bazlı kontrol yapılır.

🔎 İtem Koruma​

  • <li data-xf-list-type="ul">Oyuncu metin kestiğinde gizli item (79726) veriliyor. <li data-xf-list-type="ul">Eğer oyuncunun envanterinde bu itemden 3 tane birikirse → sistem oyuncuyu oyundan atıyor. <li data-xf-list-type="ul">Bu, “REAL_TIME” özelliği olan özel item ile çalışıyor.

🔎 Karakter Koruma​

  • <li data-xf-list-type="ul">Oyuncu NPC öldürdüğünde benzer mantık çalışıyor:
    • <li data-xf-list-type="ul">Kesme sayısı (karakter_range) artıyor. <li data-xf-list-type="ul">Zaman damgaları tutuluyor (karaktersay1, karaktersay2 vs.). <li data-xf-list-type="ul">Eğer zaman damgaları eşit çıkarsa → oyuncu oyundan atılıyor. <li data-xf-list-type="ul">4 kesmeden sonra sayaç resetleniyor.

📊 Özet​

  • <li data-xf-list-type="ul">Amaç: Range hack / bot kullanımını engellemek. <li data-xf-list-type="ul">Mantık:
    • <li data-xf-list-type="ul">Oyuncunun metin/NPC kesme davranışlarını zaman damgalarıyla kontrol ediyor. <li data-xf-list-type="ul">Şüpheli eşitlikler veya item birikimi olursa → oyuncu oyundan düşürülüyor.
    <li data-xf-list-type="ul">GM Paneli: GM istediği korumayı açıp kapatabiliyor, sistemin durumunu görebiliyor.

👉 Yani bu quest, Metin2’de çok katmanlı bir anti-hile sistemi:

  • <li data-xf-list-type="ul">Zaman bazlı kontrol (kesme süreleri eşit mi?) <li data-xf-list-type="ul">İtem bazlı kontrol (gizli item birikiyor mu?) <li data-xf-list-type="ul">Çifte kontrol (ikisini birden çalıştırıyor) <li data-xf-list-type="ul">Karakter kontrolü (NPC kesme davranışları)



    Kod:
    --[[ service system  : Range Fix author            : ?????? version            : last update --]] quest yeni_range_fix begin state start begin         when letter begin             send_letter("dene")         end                  when button or info with pc.is_gm() begin         local secimyap = select("Koruma Bilgisi","Çifte Koruma","Zaman Range","İtem Range","Hakkında","Karakter Koruma","Hicbiri")         ---------------------Start Security İnfo(start)--------------------------         if secimyap == 1 then             local koruma_bilgi1 = game.get_event_flag("codex_koruma_cifte")             local koruma_bilgi2 = game.get_event_flag("codex_koruma_zaman")             local koruma_bilgi3 = game.get_event_flag("codex_koruma_item")             local koruma_bilgi4 = game.get_event_flag("codex_koruma_karakter")             say("Range hile koruması taranıyor[DELAY value;1000]..........[/DELAY]")                 if koruma_bilgi1 == 1 then                     say("Çifte Koruma: |cff07eb96Açık!")                 elseif koruma_bilgi1 == 0 then                     say("Çifte Koruma: |cffff9999Kapalı!")                     end                 if koruma_bilgi2 == 1 then                     say("Zaman Koruma: |cff07eb96Açık!")                 elseif koruma_bilgi2 == 0 then                     say("Zaman Koruma: |cffff9999Kapalı!")                 end                 if koruma_bilgi3 == 1 then                     say("İtem Koruma: |cff07eb96Açık!")                 elseif koruma_bilgi3 == 0 then                     say("İtem Koruma: |cffff9999Kapalı!")                 end                 if koruma_bilgi4 == 1 then                     say("Karakter Koruma: |cff07eb96Açık!")                 elseif koruma_bilgi3 == 0 then                     say("Karakter Koruma: |cffff9999Kapalı!")                 end  ------------------------Finish Security İnfo(finish)----------------------------  -----------------double protection (start)---------------------------             elseif secimyap == 2 then             local koruma_bilgi = game.get_event_flag("codex_koruma_cifte")                 if koruma_bilgi == 1 then             say("Çifte Koruma: |cff07eb96Açık!")             say("Ne yapmak istersiniz ?")             local koruma_kapa = select("Çifte Koruma Kapat","Vazgectim")                 if koruma_kapa == 1 then                     game.set_event_flag("codex_koruma_cifte",0)                     syschat("|cff00ff00[SİSTEM] :|cffffffffÇifte Koruma: |cffff9999Kapalı!")                 end                 elseif koruma_bilgi == 0 then              say("Çifte Koruma: |cffff9999Kapalı!")              say("Ne yapmak istersiniz ?")             local koruma_ac = select("Çifte Koruma Ac","Vazgectim")                 if koruma_ac == 1 then                     game.set_event_flag("codex_koruma_cifte",1)                     syschat("|cff00ff00[SİSTEM] :|cffffffffÇifte Koruma: |cff07eb96Açık!")                 end                 end     -------------------double protection (finish)--------------------------------     ------------------time protection (start)-----------------------------------             elseif secimyap == 3 then                 local koruma_zaman_bilgi = game.get_event_flag("codex_koruma_zaman")                     if koruma_zaman_bilgi == 1 then                         say("Zaman Koruma: |cff07eb96Açık!")                         say("Ne yapmak istersiniz ?")                    local koruma_kapa_zaman = select("Zaman Koruma Kapat","Vazgectim")                         if koruma_kapa_zaman == 1 then                             game.set_event_flag("codex_koruma_zaman",0)                             syschat("|cff00ff00[SİSTEM] :|cffffffffZaman Koruma: |cffff9999Kapalı!")                         end                     elseif koruma_zaman_bilgi == 0 then                         say("Zaman Koruma: |cffff9999Kapalı!")                         say("Ne yapmak istersiniz ?")                   local koruma_ac_zaman = select("Zaman Koruma Ac","Vazgectim")                     if koruma_ac_zaman == 1 then                         game.set_event_flag("codex_koruma_zaman",1)                         syschat("|cff00ff00[SİSTEM] :|cffffffffZaman Koruma: |cff07eb96Açık!")                     end                     end     ----------------------time protection (finish)--------------------------------     ---------------------item protection (start)----------------------------------             elseif secimyap == 4 then                 local koruma_item_bilgi = game.get_event_flag("codex_koruma_item")                     if koruma_item_bilgi == 1 then                         say("İtem Koruma: |cff07eb96Açık!")                         say("Ne yapmak istersiniz ?")                    local koruma_kapa_item = select("İtem Koruma Kapat","Vazgectim")                         if koruma_kapa_item == 1 then                             game.set_event_flag("codex_koruma_item",0)                             syschat("|cff00ff00[SİSTEM] :|cffffffffZaman Koruma: |cffff9999Kapalı!")                         end                         elseif koruma_item_bilgi == 0 then                         say("İtem Koruma: |cffff9999Kapalı!")                         say("Ne yapmak istersiniz ?")                   local koruma_ac_item = select("İtem Koruma Ac","Vazgectim")                     if koruma_ac_item == 1 then                         game.set_event_flag("codex_koruma_item",1)                         syschat("|cff00ff00[SİSTEM] :|cffffffffZaman Koruma: |cff07eb96Açık!")                     end                         end     --------------------İtem protection (finish)-------------------------------------     --------------------Information on protection(start)-----------------------------             elseif secimyap == 5 then                 local hakkinda = select("Çifte Koruma Nedir?","Zaman Koruma Nedir?","İtem Koruma Nedir?","Kapat")                     if hakkinda == 1 then                         say_title("Çifte Koruma:")                         say("Sistem Hem zaman ile hemde item ile range kontrolü yapar.")                         say("Kesilen metin adetine time ataması yapılır.")                         say("Kesinlen metin local veri ile tanımlaması sorgulanır.")                         say("Verilen sürede veri sıfırlamanmazsa oyuncu oyundan düşer.")                         wait()                         say("2.Koruma Detayları:")                         say("Belirlediğiniz item REAL_TIME özelliği olmalıdır.")                         say("Belirlediğiniz itemin ismini: -yang 2546- olarak")                         say("değiştirmelisiniz.")                         say("İtemin görüntüsünü saydam olarak değiştirmelisiniz.")                         say("Not: Boş Petlerden 1 tanesini kullanabilirsiniz.")                         say("İki sistem ile oyuncu taranır kural dışında")                         say("İşlem yakalanırsa oyuncu oyundan düşürülür.")                     elseif hakkinda == 2 then                         say_title("Zaman Koruma:")                         say("Sistem Hem zaman ile hemde item ile range kontrolü yapar.")                         say("Kesilen metin adetine time ataması yapılır.")                         say("Kesinlen metin local veri ile tanımlaması sorgulanır.")                         say("Verilen sürede veri sıfırlamanmazsa oyuncu oyundan düşer.")                     elseif hakkinda == 3 then                         say_title("İtem Koruma:")                         say("Belirlediğiniz item REAL_TIME özelliği olmalıdır.")                         say("Belirlediğiniz itemin ismini: -yang 2546- olarak")                         say("değiştirmelisiniz.")                         say("İtemin görüntüsünü saydam olarak değiştirmelisiniz.")                         say("Not: Boş Petlerden 1 tanesini kullanabilirsiniz.")                     end---hakkinda end             elseif secimyap == 6 then                 local karakter_koruma = game.get_event_flag("codex_koruma_karakter")                 if karakter_koruma == 1 then                       say("Karakter Koruma: |cff07eb96Açık!")                       say("Ne yapmak istersiniz ?")                    local koruma_kapa_karakter = select("Korumayı Kapat","Vazgectim")                     if koruma_kapa_karakter == 1 then                     game.set_event_flag("codex_koruma_karakter",0)                     syschat("|cff00ff00[SİSTEM] :|cffffffffZaman Koruma: |cffff9999Kapalı!")                     end ---koruma kapat karakter end                 elseif karakter_koruma == 0 then                     say("Karakter Koruma: |cffff9999Kapalı!")                     say("Ne yapmak istersiniz ?")                   local koruma_ac_karakter = select("Karakter Koruma Ac","Vazgectim")                     if koruma_ac_karakter ==  1 then                         game.set_event_flag("codex_koruma_karakter",1)                            syschat("|cff00ff00[SİSTEM] :|cffffffffKarakter Koruma: |cff07eb96Açık!")                     end---karakter_ac end                 end---karakter_koruma end         end     end --------------------Information on protection(finish)----------------------------- --------------------End management panel for the game master.----------------- -----------------------------start row for range fix--------------------------     when 8001.kill with game.get_event_flag("codex_koruma_cifte") == 1 begin         local delay = 1800 ---system time out         local metinsayiyoruz = pc.getqf("affyok") + 1 ---local data growth         pc.setqf("affyok",metinsayiyoruz)  -----local data growth %^+%^^+156%^++^45         if pc.getqf("affyok") == 1 then ----- data usage control             pc.setqf("metinadet1", get_time()) ----data usege control, current time measurement         elseif pc.getqf("affyok") == 2 then----- data usage control             pc.setqf("metinadet2", get_time())----data usege control, current time measurement         elseif pc.getqf("affyok") == 3 then----- data usage control             pc.setqf("metinadet3", get_time())----data usege control, current time measurement         elseif pc.getqf("affyok") == 4 then----- data usage control             pc.setqf("metinadet4", get_time())----data usege control, current time measurement         end         if pc.getqf("metinadet1")==pc.getqf("metinadet2") then ----Rule for equality of 2 sides              if pc.getqf("metinadet3")==pc.getqf("metinadet4") then ----Rule for equality of 2 sides                     cmdchat("quit")----player penalty(player scan1)                  end         end         if pc.getqf("affyok") &gt;= 4  then ----If the local data value is above the specified rule             pc.setqf("affyok",0) ----local date value reset         end         pc.give_item2(79726,1)--------give the player the item and start the scan.         if pc.count_item(79726) &gt;= 3 then --------Starting a transaction for the given items according to the rule             cmdchat("quit")----player penalty(player scan2)         end     end  -----------------------------finish row for range fix(start)--------------------------    when 8001.kill with game.get_event_flag("codex_koruma_zaman") == 1 begin         local delay = 1800 ---system time out         local metinsayiyoruz = pc.getqf("affyok") + 1 ---local data growth         pc.setqf("affyok",metinsayiyoruz)  -----local data growth %^+%^^+156%^++^45         if pc.getqf("affyok") == 1 then ----- data usage control             pc.setqf("metinadet1", get_time()) ----data usege control, current time measurement         elseif pc.getqf("affyok") == 2 then----- data usage control             pc.setqf("metinadet2", get_time())----data usege control, current time measurement         elseif pc.getqf("affyok") == 3 then----- data usage control             pc.setqf("metinadet3", get_time())----data usege control, current time measurement         elseif pc.getqf("affyok") == 4 then----- data usage control             pc.setqf("metinadet4", get_time())----data usege control, current time measurement         end         if pc.getqf("metinadet1")==pc.getqf("metinadet2") then ----Rule for equality of 2 sides              if pc.getqf("metinadet3")==pc.getqf("metinadet4") then ----Rule for equality of 2 sides                     cmdchat("quit")----player penalty(player scan1)                  end         end         if pc.getqf("affyok") &gt;= 4  then ----If the local data value is above the specified rule             pc.setqf("affyok",0) ----local date value reset         end     end--zaman when end     -----------------------------finish row for range fix(finish)--------------------------     ----------------------------start chracter range fix---------------------------     when kill with not npc.is_pc() and game.get_event_flag("codex_koruma_karakter") == 1 begin         local delay = 1800 ---system time out         local kesilenkarakter = pc.getqf("karakter_range") + 1 ---local data growth         pc.setqf("karakter_range",kesilenkarakter)  -----local data growth %^+%^^+156%^++^45         if pc.getqf("karakter_range") == 1 then ----- data usage control             pc.setqf("karaktersay1", get_time()) ----data usege control, current time measurement         elseif pc.getqf("karakter_range") == 2 then----- data usage control             pc.setqf("karaktersay2", get_time())----data usege control, current time measurement         elseif pc.getqf("karakter_range") == 3 then----- data usage control             pc.setqf("karaktersay3", get_time())----data usege control, current time measurement         elseif pc.getqf("karakter_range") == 4 then----- data usage control             pc.setqf("karaktersay4", get_time())----data usege control, current time measurement         end         if pc.getqf("karaktersay1")==pc.getqf("karaktersay2") then ----Rule for equality of 2 sides              if pc.getqf("karaktersay3")==pc.getqf("karaktersay4") then ----Rule for equality of 2 sides                     cmdchat("quit")----player penalty(player scan1)                  end         end         if pc.getqf("karakter_range") &gt;= 4  then ----If the local data value is above the specified rule             pc.setqf("karakter_range",0) ----local date value reset         end     end--zaman when end     ----------------------finish chrac. range fix----------------------------------     --------------item protection system(start)-------------------     when 8001.kill with game.get_event_flag("codex_koruma_item") == 1 begin             pc.give_item2(79726,1)--------give the player the item and start the scan.         if pc.count_item(79726) &gt;= 3 then --------Starting a transaction for the given items according to the rule             cmdchat("quit")----player penalty(player scan2)         end     end     --------------item protection system(finish)------------------- end---state end end

Range Hile Fix Quest: Metin2'de Güvenlik ve Doğruluk

Metin2 gibi MMORPG oyunlarında quest sistemleri, oyuncuların ilerlemesini desteklerken aynı zamanda sunucu güvenliği açısından da kritik öneme sahiptir. Özellikle quest sistemlerinde yaşanabilecek hatalar ya da açıklar, bazı oyuncular tarafından kötüye kullanılabilir. Bunlardan birisi de range hile fix quest olarak bilinen güvenlik düzeltmesidir. Bu yazıda, range hile fix quest’in ne olduğunu, neden önemli olduğunu ve nasıl doğru bir şekilde entegre edileceğini detaylıca ele alacağız.

Range Hile Nedir?

Metin2 sunucularında, bazı questler belirli bir mesafe veya konumdayken çalışacak şekilde ayarlanmıştır. Ancak bazı oyuncular, script manipülasyonları veya hile programları kullanarak bu mesafe kontrollerini atlatmaya çalışır. Bu, unfair avantaj sağlar ve oyun içi dengeyi bozar. Range hile fix quest, bu tip hileleri engellemeyi amaçlayan özel bir koruma mekanizmasıdır.

Quest Sisteminde Güvenlik Önemi

Metin2 quest sistemleri, sadece oyun akışını sağlamakla kalmaz; aynı zamanda güvenlik açısından da kritik roller üstlenir. Yanlış yapılandırılmış bir quest, sunucuda ciddi açıklara yol açabilir. Özellikle lua tabanlı quest sistemlerinde, her bir komut dikkatle kontrol edilmelidir. Range hile fix quest, bu riskleri azaltmak için geliştirilmiş bir yöntemdir.

Range Hile Fix Quest Nasıl Çalışır?

Bu quest, oyuncunun belirli bir konumda olup olmadığını kontrol ederek çalışır. Eğer oyuncu, questin çalışması için gerekli olan konumdan uzakta iken işlem yapmaya kalkarsa, sistem bunu engeller. Bu kontrol genellikle timer ve flag sistemleriyle birlikte çalışarak daha etkili hale getirilir. Oyuncunun konumu her saniye kontrol edilir ve izinsiz hareketler durumunda quest iptal edilir.

Quest Script Geliştirme ve Debugging

Range hile fix quest geliştirirken, lua bilgisi oldukça önemlidir. Quest yazarken, her satır kodun ne yaptığı, hangi koşullarda çalıştığı ve potansiyel hata noktaları dikkatlice incelenmelidir. Debugging işlemleri sırasında, log kayıtları tutulmalı ve her hata durumu için uygun yanıt verilmelidir. Quest dosyasının doğruluğu ve güvenliği, sunucu yöneticileri için hayati öneme sahiptir.

Özel Quest Tasarımı ve Güvenlik

Gelişmiş quest sistemleri tasarlanırken, güvenlik ön planda tutulmalıdır. Custom quest sistemleri, hem oyun deneyimini zenginleştirir hem de güvenlik açıklarını azaltabilir. Range hile fix quest gibi koruma mekanizmaları, özel questlere entegre edilerek daha sağlam bir yapı oluşturulabilir. Bu sayede, oyuncular daha adil ve dengeli bir oyun ortamında kalabilir.

Sonuç

Range hile fix quest, Metin2 sunucularında güvenliği artırmak için kullanılan önemli bir özelliktir. Doğru şekilde tasarlanmış ve entegre edilmiş bir quest sistemi, hile riskini minimize ederken aynı zamanda oyuncular için keyifli bir oyun deneyimi sunar. Quest geliştirme sürecinde dikkat edilmesi gereken teknik detaylar, sunucu yöneticileri ve geliştiriciler için büyük önem taşır.


Range Hile Fix Quest: Security and Integrity in Metin2

In MMORPG games like Metin2, quest systems not only support player progression but also play a critical role in server security. Especially errors or vulnerabilities in quest systems can be exploited by some players. One such issue is the range hile fix quest, which is known as a security fix. In this article, we will examine what range hile fix quest is, why it's important, and how it should be properly integrated.

What is Range Hile?

In Metin2 servers, certain quests are configured to work only within specific distances or locations. However, some players attempt to bypass these distance checks using script manipulations or cheat programs. This creates unfair advantages and disrupts in-game balance. The range hile fix quest is a protection mechanism designed to prevent such cheats.

Importance of Security in Quest Systems

Metin2 quest systems do more than just facilitate game flow; they also serve critical roles in terms of security. Incorrectly configured quests can lead to serious vulnerabilities on the server. Particularly in lua-based quest systems, each command must be carefully reviewed. Range hile fix quests are developed methods aimed at reducing such risks.

How Does Range Hile Fix Quest Work?

This quest works by checking whether the player is in a specific location. If a player attempts to perform an action outside the required location for the quest to run, the system blocks it. This check typically works together with timer and flag systems to become more effective. The player’s location is checked every second, and if unauthorized movement occurs, the quest is canceled.

Quest Script Development and Debugging

When developing range hile fix quests, lua knowledge is highly important. While writing quests, each line of code, its behavior under various conditions, and potential error points must be thoroughly analyzed. During debugging, log records should be kept and appropriate responses provided for each error case. The accuracy and security of the quest file are vital for server administrators.

Custom Quest Design and Security

When designing advanced quest systems, security must be prioritized. Custom quests not only enrich the gaming experience but also help reduce security vulnerabilities. Protection mechanisms like range hile fix quests can be integrated into custom quests to create a more robust structure. This ensures players remain in a fair and balanced gaming environment.

Conclusion

The range hile fix quest is an important feature used to enhance security in Metin2 servers. Properly designed and integrated quest systems minimize cheating risks while providing an enjoyable gaming experience. Technical details that need attention during the quest development process hold great importance for server administrators and developers.
 

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

Benzer konular

Geri
Üst Alt