Sorunsuz İsim İzi Lua

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
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.
 

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

Geri
Üst Alt