Quest Nasıl Yazılır ? NPC Nasıl Yapılır ?

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhaba Arkadaşlar,
Questi geçenlerde kendi server'ım için arıyordum başka bir forumun soru-cevap bölümünde bu questin değişik bir versiyonunu Adem (kralcocuk) kardeşimiz vermişti bana. Bende labirent oyunu questine benzer bir şekilde baştan yazdım bilginiz olsun :)

Bu sefer sizlere /e komutuyla haritaları açıp kapatmayı göstericem.
Öncelikle questimiz :

Kod:
quest harita begin    state start begin        when xxx.[/FONT]chat."Event Map Giriş " begin            say_title("Merhaba "..pc.get_name())if game.get_event_flag("event_map") == 0 thensay_reward(pc.get_name())say("İçeri giremezsin girişler kapalı.")returnelseif game.get_event_flag("event_map") == 1 thensay_reward(pc.get_name())say("Event Map şu an aktif")say("Girmek İstiyor musun?")local s = select(locale.yes,locale.no)if s == 1 thensay_reward(pc.get_name())say("Tamam şimdi seni ışınlıyorum.")wait()pc.warp(x,y)elseif s == 2 thensay_reward(pc.get_name())say("Event Map Girmek Istemiyor musun ?")say("Tercih Senin...")returnendend        end    end end

Bu Quest Tam Olarak Ne İşe Yarar ? :
Bu quest ile /e event_map 1 yaptığınız zaman xxx kodlu NPC'den map için girişleri açabilirsiniz. /e event_map 0 yaptığınızda NPC'de hala Event Map seçeneği gözükücektir fakat haritaya giremeyecektir.

Nereleri Düzenlemem gerekiyor ? :
Kod:
pc.warp(x,y)
Bölümünü gidilecek map'in warp kodlarını yazmanız gerekiyor.
Kod:
xxx.chat
xxx Olan bölümü eklemek istediğimiz NPC'nin kodunu yazıyoruz.
Kod:
if game.get_event_flag("event_map") == 0 then
event_map bölümünü istediğiniz şekilde değiştirebilirsiniz. Fakat değiştirdiğiniz bölümü diğer event_map yazan yerlere uygulamanız gerek. Ayrıca değiştirdiğinizde /e komutuda değişecektir. Örneğin event_map yazan yeri harita_giris yaparsanız /e harita_giris 1 ya da 0 şeklinde yazmanız gerekmektedir.

Sorunlarınızı konu altına yazarsanız sevinirim.

ThePRNCE :m06:

Dipnot: Bu basit bir questtir. Bazı arkadaşlar eleştirebilir. İsteyen olursa geliştiririz. Map giriş için item isteme gibi şeyler ekleyebilirim.

Güncelleme 2016 : Questteki syntax error ve türkçe karakter kullanılabilecek şekilde düzeltildi.

Quest Nasıl Yazılır ? NPC Nasıl Yapılır ?

Metin2 oyununda quest ve NPC sistemleri, sunucu sahiplerinin oyun deneyimini zenginleştirmek için kullandığı en güçlü araçlardan ikisidir. Bu rehberde, Metin2 üzerinde quest nasıl yazılır, NPC nasıl yapılır gibi konulara odaklanacağız. Aynı zamanda Lua dilinde quest geliştirme, quest hata ayıklama, özel quest sistemleri ve günlük görevler gibi gelişmiş konulara da değineceğiz.

Metin2 Quest Sistemi Nedir ?

Metin2'de quest sistemi, oyuncuların belirli görevleri yaparak ödüller kazandığı dinamik sistemlerdir. Quest sistemleri genellikle Lua dili ile yazılmaktadır. Questler, oyuncunun seviyesine, sınıfına veya diğer özel durumlarına göre değişiklik gösterebilir.

Metin2 Quest Dosyası Oluşturmak

Bir quest yazmaya başlamadan önce, quest_list.lua dosyasında yeni bir quest ismi tanımlamalısınız. Örneğin:

Kod:
[B]quest[/B] yeni_quest [B]begin[/B][BR][/BR][B]state[/B] start [B]begin[/B][BR][/BR][B]when[/B] login [B]or[/B] levelup [B]with[/B] pc.get_level() >= 10 [B]begin[/B][BR][/BR][BR][/BR]say('Merhaba, yeni bir görevim var sana!')[BR][/BR][BR][/BR][B]end[/B][BR][/BR][B]end[/B][BR][/BR][B]end[/B]


Yukarıdaki örnek, 10. seviyeye ulaşan bir oyuncuya girişte veya seviye atladığında bir mesaj gösterir.

NPC Oluşturmak

NPC'ler, oyuncularla etkileşim kurarak quest başlatan veya görev tamamlama sağlayan karakterlerdir. NPC'leri oluşturmak için mob_proto, npc_proto ve locale/npc dosyalarında gerekli tanımlar yapılmalıdır. NPC'nin modeli, ismi ve davranışları bu dosyalarda belirlenir. Ayrıca quest_trigger kullanarak NPC ile quest arasında bağlantı kurabilirsiniz.

Quest Trigger ve Timer Kullanımı

Bazı questlerde zamanlama önemli olabilir. timer fonksiyonu ile belirli süre sonra bir eylemin tetiklenmesini sağlayabilirsiniz. Örneğin:

Kod:
[B]timer[/B].start('sure_doldu', 60)[BR][/BR][B]when[/B] timer.sure_doldu [B]begin[/B][BR][/BR]chat('Süre doldu, görev iptal edildi!')[BR][/BR][B]end[/B]


Quest Hata Ayıklama (Debug)

Quest geliştirirken hatalarla karşılaşabilirsiniz. En yaygın hatalardan biri syntax hatasıdır. Debug yapmak için log kayıtlarını kontrol edin ve quest dosyasının doğru şekilde sunucuya aktarıldığından emin olun. server_log üzerinden hata mesajlarını takip edebilirsiniz.

Quest Reward ve Item Sistemleri

Quest tamamlandığında oyuncuya ödül vermek için reward sistemini kullanmalısınız. Ödüller item, gold, exp veya özel statlar olabilir. Örnek reward kodu:

Kod:
[B]pc.give_item2('gold', 100000)[BR][/BR]pc.give_exp(5000)[BR][/BR]pc.give_item2('special_item', 1)


Daily Quest ve Chain Quest Sistemleri

Günlük görevler (daily quest), oyuncuların her gün tekrar tekrar yapabileceği questlerdir. Chain quest ise birbiriyle bağlantılı görevlerdir. Her görev tamamlandıkça bir sonraki açılır. Bu sistemler, oyuncu sadakatini artırmak için idealdir.

Metin2Dev ve Martysama Quest Sistemleri

Metin2 geliştiricileri için popüler olan Metin2Dev ve Martysama sistemleri, daha gelişmiş quest yapıları sunar. Bu sistemler sayesinde daha profesyonel ve kullanıcı dostu questler yazabilirsiniz.

Sonuç

Metin2 quest yazımı, sunucunuzdaki oyun deneyimini ciddi anlamda etkileyen önemli bir alandır. Lua dili ile yazılan questler, doğru yapılandırıldığında oyuncular için eğlenceli ve sürükleyici görevler oluşturabilir. NPC'lerle entegre çalışan bu sistemler, Metin2 sunucularınızda özgün içerikler geliştirmenizi sağlar.


How to Write Quests? How to Create NPCs?

In the game Metin2, quest and NPC systems are among the most powerful tools used by server owners to enhance the gaming experience. In this guide, we will focus on how to write quests in Metin2, how to create NPCs, and also touch upon advanced topics such as developing quests in Lua, debugging quests, custom quest systems, and daily quests.

What is the Metin2 Quest System?

The quest system in Metin2 is a dynamic system where players complete specific tasks to earn rewards. Quests are typically written in the Lua language. They can vary based on a player's level, class, or other specific conditions.

Creating a Metin2 Quest File

Before starting to write a quest, you must define a new quest name in the quest_list.lua file. For example:

Kod:
[B]quest[/B] new_quest [B]begin[/B][BR][/BR][B]state[/B] start [B]begin[/B][BR][/BR][B]when[/B] login [B]or[/B] levelup [B]with[/B] pc.get_level() >= 10 [B]begin[/B][BR][/BR][BR][/BR]say('Hello, I have a new task for you!')[BR][/BR][BR][/BR][B]end[/B][BR][/BR][B]end[/B][BR][/BR][B]end[/B]


The above example shows a message to players who reach level 10 upon login or level up.

Creating NPCs

NPCs are characters that interact with players to initiate or complete quests. To create NPCs, you need to make definitions in files such as mob_proto, npc_proto, and locale/npc. The model, name, and behavior of the NPC are defined in these files. You can also connect the NPC to a quest using quest_trigger.

Using Quest Triggers and Timers

Timing may be important in certain quests. You can use the timer function to trigger an action after a specific duration. Example:

Kod:
[B]timer[/B].start('time_over', 60)[BR][/BR][B]when[/B] timer.time_over [B]begin[/B][BR][/BR]chat('Time is over, mission canceled!')[BR][/BR][B]end[/B]


Quest Debugging

You may encounter errors while developing quests. One of the most common errors is a syntax error. To debug, check your log records and ensure the quest file is properly transferred to the server. You can track error messages via server_log.

Quest Rewards and Item Systems

To award players upon quest completion, use the reward system. Rewards can include items, gold, experience, or special stats. Sample reward code:

Kod:
[B]pc.give_item2('gold', 100000)[BR][/BR]pc.give_exp(5000)[BR][/BR]pc.give_item2('special_item', 1)


Daily Quest and Chain Quest Systems

Daily quests are repeatable missions players can do each day. Chain quests are interconnected missions; completing one opens the next. These systems are ideal for increasing player loyalty.

Metin2Dev and Martysama Quest Systems

Popular among Metin2 developers, the Metin2Dev and Martysama systems offer more advanced quest structures. These systems allow you to create more professional and user-friendly quests.

Conclusion

Writing quests in Metin2 is a critical area that significantly impacts the gaming experience on your server. When properly configured, Lua-written quests can create fun and engaging missions for players. Combined with NPCs, these systems allow you to develop unique content for your Metin2 servers.
 

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

Benzer konular

Geri
Üst Alt