İstediginiz Mapa(Bölgeye) Lv Siniri Koyma (LUA) #Karaca425

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Kod:
quest baslangic_kutusu begin     state start begin         when 50187.use begin             if pc.getqf("baslangic_sandik") == 1 then --------------------- Bug Kontrol                 chat("Bu sandığı daha önce kullanmışsın.")                 return             end             if pc.get_level() != 1 then ----------------------------- Seviye Şartı                 chat("Bu sandık sadece 1. seviyede kullanılabilir.")                 return             end                       say_reward("Sunucumuza Hoşgeldin "..pc.get_name().."")             say_title("") -- bosluk             say_sari("Bu sandığı yalnızca bir defa kullanabilirsin")             say_sari("Ve Kullanabilmek için 1.seviye olman gerekir")             say_sari("Bu sandığı açmak istediğine eminmisin?")             local basliyoruz = select("Evet","Hayır")             if basliyoruz == 1 then                 pc.setqf("baslangic_sandik",1)                 pc.remove_item("50187",1)                 pc.give_item2("72726",1)  ---- Güneş Özütü (Ö)                 pc.give_item2("72730",1)  ---- Ay Özütü (Ö)                 pc.give_item2("40003",1)  ---- Işınlama Yüzüğü                 pc.give_item2("50053",1)  ---- Askeri at kitabı                 pc.give_item2("71050",1)  ---- Hız İksiri                 pc.give_item2("27112",1)  ---- Yeşil İksir(B)                 pc.give_item2("72701",1)  ----Rüzgarın Ayakkabıları                 pc.give_item2("70038",1)  ----pelerin                 pc.give_gold("1000000")  ---- 750K Başlangıç Parası                           pc.give_item2("13009",1) ---- Savaş Kalkanı+9                 pc.give_item2("17009",1) ---- Tahta Küpe+9                 pc.give_item2("14009",1) ---- Tahta Bilezik+9                 pc.give_item2("16009",1) ---- Tahta Kolye+9                 pc.give_item2("15009",1) ---- Deri Ayakkabı+9                               if pc.get_job() == 0 then                     pc.give_item2("19",1)  ---- Kılıç+9                     pc.give_item2("11209",1)  ---- Keşiş Plaka Zırh+9                     pc.give_item2("12209",1)  ---- Geleneksel Miğfer+9                     return                 elseif pc.get_job() == 1 then                     pc.give_item2("1009",1)  ---- Hançer+9                     pc.give_item2("11409",1)  ---- Gök Mavisi Takım+9                     pc.give_item2("12349",1)  ---- Deri Kapşon+9                     return                 elseif pc.get_job() == 2 then                     pc.give_item2("19",1)  ---- Kılıç+9                     pc.give_item2("11609",1)  ---- Ağıt Plaka Zırh+9                     pc.give_item2("12489",1)  ---- Kanlı Kask+9                     return                 elseif pc.get_job() == 3 then                     pc.give_item2("7009",1)  ---- Yelpaze+9                     pc.give_item2("11809",1)  ---- Gök Mavisi Elbise+9                     pc.give_item2("12629",1)  ---- Keşiş Şapkası+9                     return                 end             elseif basliyoruz == 2 then                 return             end         end     end end

Metin2'de İstediğiniz Mapa (Bölgeye) Lv Sınırı Koyma (LUA) Rehberi #Karaca425

Metin2 sunucularında özel quest sistemleri, güvenlik önlemleri ve kullanıcı deneyimi açısından bazı bölgelere seviye sınırlaması getirmek isteyebilirsiniz. Bu rehberde, LUA dilinde yazılmış bir script yardımıyla istediğiniz haritaya(level map) seviye sınırı koymayı öğreneceksiniz.

Neden Lv Sınırı Gerekir?
Metin2 oyununda bazı alanlar yeni başlayan oyuncular için tehlikeli olabilir veya belirli seviyelerin altındaki karakterlerin girmesini istemeyebilirsiniz. Örneğin, güçlü düşmanlarla dolu bir dungeon veya özel bir PvP bölgesi gibi. Lv sınırı koymak, hem oyun dengesini korur hem de yeni başlayan oyuncuların güvende olmasını sağlar.

Scriptin Amacı
Bu LUA scripti, belirli bir haritada karakterin seviyesine bakarak giriş izni verir veya reddeder. Gerekirse oyuncuya bir mesaj gösterilir ve giriş engellenir.

Script Yapısı ve Kullanımı
Öncelikle quest dizinine yeni bir quest dosyası oluşturun. Örnek adlandırma: 'map_level_limit.quest'.

Kod Örneği:
Kod:
[BR][/BR]quest map_level_limit begin[BR][/BR]    state start begin[BR][/BR]        function on_enter_map() -- Haritaya girişte kontrol[BR][/BR]            local required_level = 70 -- Girmek için gerekli seviye[BR][/BR]            local current_map_index = pc.get_map_index()[BR][/BR][BR][/BR]            if current_map_index == 123 then -- Belirli harita indexi (örneğin: Devias)[BR][/BR]                if pc.get_level() < required_level then[BR][/BR]                    chat('Bu bölgeye girebilmeniz için en az '..required_level..' seviye olması gerekir!')[BR][/BR]                    pc.warp_to_village() -- Kasabaya geri gönder[BR][/BR]                end[BR][/BR]            end[BR][/BR]        end[BR][/BR][BR][/BR]        when login or enter begin[BR][/BR]            on_enter_map()[BR][/BR]        end[BR][/BR][BR][/BR]        when logout or leave begin[BR][/BR]            -- Gerekirse çıkışta işlemler[BR][/BR]        end[BR][/BR]    end[BR][/BR]end[BR][/BR]

Anlamı:
- pc.get_level(): Oyuncunun seviyesini alır.
- pc.get_map_index(): Oyuncunun bulunduğu haritanın indeksini döner.
- pc.warp_to_village(): Karakteri kasabaya geri gönderir.
- chat(): Oyuncuya bir mesaj gösterir.

Harita İndex Numarasını Bulmak
Her Metin2 haritasının benzersiz bir indeks numarası vardır. Bu değeri bulmak için sunucu dosyalarındaki 'locale/' klasöründeki 'mapindex.txt' dosyasını kontrol edin.

Güvenlik ve Hata Ayıklama
Quest sisteminde hata oluşması durumunda, server log dosyalarını kontrol ederek hatanın nerede olduğunu tespit edebilirsiniz. Özellikle LUA syntax hataları questin çalışmasını engeller.

Faydalı İpuçları
- Birden fazla haritaya aynı anda seviye sınırı eklemek isterseniz, 'if' koşuluna birden fazla harita indeksi ekleyebilirsiniz.
- Seviye sınırını global olarak tüm haritalara uygulamak istiyorsanız, 'if current_map_index' kontrolünü kaldırabilirsiniz.

Sonuç
Metin2 sunucularınızda kullanıcı deneyimini artırmak ve oyun içi dengeleri korumak adına Lv sınırı koymak oldukça faydalıdır. LUA tabanlı quest sistemleri sayesinde bu işlem kolayca yapılabilir ve özelleştirilebilir. Dilerseniz daha gelişmiş sistemler de entegre edebilirsiniz. Metin2 Lobby olarak quest sistemleriyle ilgili daha fazla bilgiyi sitemizde bulabilirsiniz.


How to Set Level Limit for Desired Map (Region) in Metin2 (LUA) #Karaca425

In Metin2 servers, special quest systems, security measures, and user experience may require you to set level limits for certain areas. This guide will teach you how to apply a level restriction to any desired map using a LUA-written script.

Why Do You Need a Level Limit?
In Metin2, some areas might be too dangerous for low-level players, or you may not want characters below a certain level to enter. For example, a dungeon filled with strong enemies or a specific PvP zone. Applying a level limit helps maintain game balance and ensures newer players stay safe.

Purpose of the Script
This LUA script checks the player's level upon entering a specific map and allows or denies access. Optionally, a message can be shown to the player, and entry can be blocked.

Script Structure and Usage
Firstly, create a new quest file inside your quest directory. Example name: 'map_level_limit.quest'.

Sample Code:
Kod:
[BR][/BR]quest map_level_limit begin[BR][/BR]    state start begin[BR][/BR]        function on_enter_map() -- Check upon entering the map[BR][/BR]            local required_level = 70 -- Required level to enter[BR][/BR]            local current_map_index = pc.get_map_index()[BR][/BR][BR][/BR]            if current_map_index == 123 then -- Specific map index (example: Devias)[BR][/BR]                if pc.get_level() < required_level then[BR][/BR]                    chat('You must be at least level '..required_level..' to enter this area!')[BR][/BR]                    pc.warp_to_village() -- Warp player back to village[BR][/BR]                end[BR][/BR]            end[BR][/BR]        end[BR][/BR][BR][/BR]        when login or enter begin[BR][/BR]            on_enter_map()[BR][/BR]        end[BR][/BR][BR][/BR]        when logout or leave begin[BR][/BR]            -- Perform actions if needed on exit[BR][/BR]        end[BR][/BR]    end[BR][/BR]end[BR][/BR]

Meaning:
- pc.get_level(): Retrieves the player's current level.
- pc.get_map_index(): Returns the map index where the player is located.
- pc.warp_to_village(): Sends the character back to the village.
- chat(): Displays a message to the player.

Finding the Map Index Number
Every Metin2 map has a unique index number. To find this value, check the 'mapindex.txt' file inside the 'locale/' folder of your server files.

Security and Debugging
If errors occur in the quest system, you can inspect the server log files to detect where the error occurred. Especially LUA syntax errors can prevent the quest from running properly.

Helpful Tips
- If you wish to add level limits to multiple maps at once, you can add more map indices to the 'if' condition.
- To apply the level limit globally across all maps, you can remove the 'if current_map_index' check.

Conclusion
Setting level limits in your Metin2 servers is highly beneficial for improving user experience and maintaining in-game balance. Thanks to LUA-based quest systems, this process can be done easily and customized. You can also integrate more advanced systems if desired. Visit Metin2 Lobby for more information about quest systems.
 

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

Benzer konular

Geri
Üst Alt