Kod:
quest change_name begin state start begin when 27987.use begin say_title("İsim izi ") if pc.is_married() then say("Evli olduğun için isim değiştiremezsin.") say("") return end if pc.is_polymorphed() then say("Dönüşmüş halde isim değiştiremezsin.") say("") return end if pc.has_guild() then say("Bir loncanın üyesiyken isim değiştiremezsin.") say("") return end if party.is_party() then say("İsim değiştirmek için gruptan çıkmalısın.") say("") return end if pc.get_level() < 80 then say("İsim değiştirmek için yeterli seviyede değilsin.") say("80. seviyeye ulaştığında tekrar dene.") return end if get_time() < pc.getqf("next_time") then say("Henüz isim değiştiremezsin.") say("") say_reward("Tekrar isim değiştirebileceğin tarih:") say_reward(string.format("%s", time_to_str(pc.getqf("next_time")))) if is_test_server() == true then say("Test serverdayken bu süre sıfırlanır.") say("") else return end end say("Yeni ismini aşağıdaki kutuya yaz.") local name = pc.name local str = input() local ret = pc.change_name(str) if string.len(str) > 30 then say_title("İsim izi") say("İsim çok uzun.") return end if ret == 0 then say_title("İsim izi") say("İsim geçerli değil. Başka bir isim") say("yaz. Türkçe veya özel karakter kullanma.") say("Lütfen oyuna tekrar giriş yap.") char_log(0, "CHANGE_NAME", "HAVE NOT RE-LOGIN") elseif ret == 1 then say_title("İsim izi") say("Bir sorun var.") say("Daha sonra tekrar dene.") say("") char_log(0, "CHANGE_NAME", "ITEM USE PROBLEM") elseif ret == 2 then say_title("İsim izi") say("İsim geçerli değil. Başka bir isim") say("yaz. Türkçe veya özel karakter kullanma.") say("") char_log(0, "CHANGE_NAME", "CAN NOT USE NAME") elseif ret == 3 then say_title("İsim izi") say("Bu ismi başka bir oyuncu kullanıyor.") say("Kendine başka bir isim bul.") say("") char_log(0, "CHANGE_NAME", "ALREADY USING NAME") elseif ret == 4 then say_title("İsim izi") say("İsim değiştirme gerçekleşti.") say("Oyuna tekrar giriş yap.") say("") pc.remove_item("27987",1) pc.setqf("next_time", get_time() + time_hour_to_sec(1*1)) char_log(0, "CHANGE_NAME", "SUCCESS: from "..name.." to "..str) else say("Bir hata oluştu.") char_log(0, "CHANGE_NAME", "UNKNOWN NAME") end end end end
Sorunsuz İsim İzi Lua Quest Sistemi
Metin2 sunucularında quest geliştirme sürecinde, oyuncuların karakter adlarını takip eden veya özel etkileşimler sağlayan 'isim izi' sistemleri oldukça popülerdir. Bu sistemler genellikle özel görevlerde, günlük görevlerde veya belirli NPC etkileşimlerinde kullanılır. Bu yazıda, Metin2 üzerinde çalışacak sorunsuz bir isim izi Lua quest örneği oluşturacağız.
Lua Script Yapısı ve Temel Özellikler
Metin2 quest sistemlerinde Lua dili kullanılır. Lua, hızlı ve esnek bir betik dilidir. Quest dosyaları genellikle .lua uzantılıdır ve /quest dizini altında bulunur. Quest sistemleri, oyuncu etkileşimlerini yönetmek, görevleri başlatmak ve tamamlamak için kullanılır.
Sorunsuz İsim İzi Lua Quest Kodu Örneği
Aşağıdaki örnek, oyuncunun adını alarak bir görevde kullanmayı sağlar:
Kod:
quest isim_izi begin[BR][/BR] state start begin[BR][/BR] when login with pc.get_name() == 'OyuncuAdi' begin[BR][/BR] say('Hoş geldin '..pc.get_name()..', özel görev senin için hazır!')[BR][/BR] end[BR][/BR] end[BR][/BR]end
Quest Trigger ve Flag Kullanımı
Quest sistemlerinde trigger, belirli bir olay tetiklendiğinde çalışacak kodları ifade eder. Flag ise, oyuncuya özel verileri saklamak için kullanılır. Örneğin, oyuncunun bir görevi tamamlıp tamamlamadığını kontrol etmek için bir flag tanımlanabilir.
Timer ve State Yönetimi
Bazı questlerde zamanlamaya dayalı işlemler gerekir. Timer fonksiyonu, belirli aralıklarla işlem yapmanıza olanak tanır. State ise questin hangi aşamada olduğunu gösterir ve farklı durumlarda farklı işlemler yapılmasını sağlar.
Günlük Görevlerde İsim İzi Kullanımı
Daily quest sistemlerinde isim izi özellikle oyunculara özel tebrik mesajları veya özel ödüller vermek için idealdir. Her oyuncu giriş yaptığında kendi adına özel bir mesaj alabilir.
Hata Ayıklama ve Debugging
Quest geliştirirken hatalar kaçınılmazdır. Hata ayıklama (debugging) için log kayıtları önemlidir. print() veya server_log() gibi fonksiyonlar kullanarak.questin nerede hata verdiğini kolayca bulabilirsiniz.
Özet
Sorunsuz bir isim izi Lua quest sistemi oluşturmak için doğru syntax ve trigger kullanımı çok önemlidir. Metin2 geliştiricileri için bu tür özel sistemler, kullanıcı deneyimini artırmak adına oldukça faydalıdır. Oyunculara özel etkileşimler, daha yüksek sunucu sadakati sağlar.
Seamless Name Trace Lua Quest System
In the development process of quests on Metin2 servers, 'name trace' systems that follow player character names or enable special interactions are quite popular. These systems are often used in special quests, daily quests, or specific NPC interactions. In this article, we will create a seamless name trace Lua quest example for Metin2.
Lua Script Structure and Key Features
The Lua language is used in Metin2 quest systems. Lua is a fast and flexible scripting language. Quest files are usually saved with a .lua extension and located under the /quest directory. Quest systems are used to manage player interactions, initiate and complete quests.
Example Seamless Name Trace Lua Quest Code
The following example allows capturing the player's name and using it within a quest:
Kod:
quest isim_izi begin[BR][/BR] state start begin[BR][/BR] when login with pc.get_name() == 'PlayerName' begin[BR][/BR] say('Welcome '..pc.get_name()..', your special quest is ready!')[BR][/BR] end[BR][/BR] end[BR][/BR]end
Quest Trigger and Flag Usage
In quest systems, triggers execute specific code when certain events occur. Flags are used to store player-specific data. For example, a flag can be defined to check whether a player has completed a quest.
Timer and State Management
Some quests require timed operations. The timer function allows you to perform actions at specific intervals. States indicate which phase the quest is in and allow different actions depending on the current status.
Using Name Trace in Daily Quests
In daily quest systems, name tracing is especially useful for sending personalized messages or rewards to players. Each time a player logs in, they can receive a message tailored specifically to their name.
Debugging and Error Handling
Errors are inevitable during quest development. Logging functions like print() or server_log() help identify where the quest fails, making debugging easier.
Summary
Creating a seamless name trace Lua quest system requires correct syntax and proper use of triggers. For Metin2 developers, such personalized systems significantly enhance user experience. Personalized interactions lead to higher player retention on servers.
