Merhaba dostlar, arşivimde yer alıyordu dosya temizliği yaptığım için paylaşıyorum.
Benim için önemli bir çalışmaydı ama artık bitirdiğim için bu işleri paylaşıyorum. Buyrun;
Bu boş quest ekranı içine photoshop ile yazı doldurabilirsiniz.
Metin2 Sesli & Grafikli Görev Questi: Oyun Deneyimini Zenginleştiren Etkileşimli Sistem
Metin2 oyununda quest sistemleri, oyuncuların oyun dünyasında belirli görevleri yerine getirmesiyle ilerlemesini sağlayan kritik yapı taşlarıdır. Bu sistemler özellikle lua tabanlı scriptlerle genişletilebilir ve özelleştirilebilir. Ancak son yıllarda sesli ve grafikli görev sistemleri, kullanıcı deneyimini ciddi anlamda artırıyor. Bu yazıda Metin2 sesli ve grafikli quest sistemlerinin nasıl çalıştığını, avantajlarını ve geliştirme süreçlerini detaylıca inceleyeceğiz.
Metin2 Görev Sistemi Nedir?
Quest (görev), oyuncuya belirli bir hedef veya dizi görev sunar. Oyuncu bu görevleri tamamladığında ödüller alabilir. Bu ödüller; item, EXP, para veya özel stat kazanımları olabilir. Metin2 quest sistemleri genellikle lua dili ile yazılır ve quest manager tarafından yönetilir.
Sesli ve Grafikli Quest Nedir?
Geleneksel quest sistemleri genellikle sadece metin tabanlıdır. Oyuncu, NPC ile konuşur, görev tanımı metin olarak verilir ve görev tamamlandığında tekrar metin ile bilgi alınır. Ancak grafikli ve sesli quest sistemleri, bu deneyimi daha da zenginleştirir. Örneğin, görev sırasında bir ses efekti çalınabilir ya da görevin devam ettiği bir animasyon gösterilebilir.
Metin2 Lua Script ile Sesli ve Grafikli Görev Geliştirme
Lua dilinde yazılan quest sistemlerine ses ve grafik entegrasyonu oldukça yaygındır. Bu entegrasyonlar sayesinde NPC ile olan diyaloglar daha etkileyici hale gelir. Ses efektleri için sound komutları, grafik efektler içinse özel UI elementleri kullanılabilir. Metin2dev veya Martysama gibi platformlarda bu tür gelişmiş scriptler paylaşılır.
Quest Trigger ve Timer Kullanımı
Quest trigger, belirli bir koşul sağlandığında quest'in başlatılmasını sağlar. Örneğin, oyuncu belirli bir konuma girdiğinde görev otomatik başlayabilir. Timer ise görevin belli bir süre sonra biteceğini veya yeniden başlayacağını belirtmek için kullanılır. Bu sayede daily quest gibi sistemler kolayca entegre edilebilir.
Geliştirme ve Hata Ayıklama
Quest debug işlemi, geliştiriciler için hayati önem taşır. Yanlış bir flag veya state ayarı, quest’in düzgün çalışmamasına neden olabilir. Quest edit araçları sayesinde bu hatalar tespit edilebilir. Ayrıca Metin2 lobby gibi platformlarda bu konuda destek alabilirsiniz.
Özel ve Zincirleme Görevler
Custom quest geliştirme, sunucuya özgü içerikler eklenmesini sağlar. Bu tür görevler genellikle chain (zincirleme) görevler şeklinde tasarlanır. Bir görevin bitişi diğer görevin başlangıcı olabilir. Bu yapı, oyuncuların uzun süre oyun içi aktiviteye devam etmesini sağlar.
Sonuç
Metin2 sesli ve grafikli quest sistemleri, oyunculara daha zengin ve etkileşimli bir deneyim sunar. Lua script bilgisi olan geliştiriciler için bu sistemler oldukça esnek ve güçlüdür. Doğru kullanıldığında quest reward, quest chain ve daily quest gibi yapılarla oyuncu sadakati artırılabilir.
Metin2 Voice & Graphic Quest: An Interactive System Enriching Gaming Experience
Metin2 game's quest systems are essential building blocks that allow players to progress within the game world by completing specific tasks. These systems can be extended and customized with lua-based scripts. However, recently, voice and graphic-based quest systems have significantly enhanced user experience. In this article, we will examine how Metin2 voice and graphic quests work, their advantages, and development processes in detail.
What is the Metin2 Quest System?
Quests present the player with specific goals or series of tasks. Upon completion, players may receive rewards such as items, experience points, gold, or special stat bonuses. Metin2 quests are typically written in lua language and managed by a quest manager.
What Are Voice and Graphic Quests?
Traditional quest systems are usually text-based. The player speaks to an NPC, receives task descriptions as text, and upon completion, gets feedback through text again. However, graphic and voice-based quest systems enhance this experience further. For instance, sound effects may play during the quest, or animations showing the quest's progress might be displayed.
Developing Voice and Graphic Quests in Metin2 with Lua Script
Integrating voice and graphics into quest systems written in lua is quite common. Thanks to these integrations, dialogues with NPCs become more impressive. Sound effects can be triggered using sound commands, while custom UI elements can be used for graphic effects. Such advanced scripts are often shared on platforms like Metin2dev or Martysama.
Using Quest Triggers and Timers
Quest triggers start the quest when certain conditions are met. For example, entering a specific location might automatically start a quest. Timers specify that a quest will end after a certain period or restart. This allows easy integration of systems like daily quests.
Development and Debugging
Quest debugging is crucial for developers. Incorrect flag or state settings may cause the quest not to function properly. With quest editing tools, these errors can be detected. Additionally, you can seek support on platforms like Metin2 lobby.
Custom and Chain Quests
Custom quests allow unique content to be added to the server. Such quests are often designed as chain quests where one quest leads into another. This structure encourages players to stay engaged in-game activities for longer periods.
Conclusion
Metin2 voice and graphic quests provide players with a richer and more interactive experience. For developers familiar with Lua scripting, these systems are highly flexible and powerful. When used correctly, structures like quest rewards, quest chains, and daily quests can increase player loyalty.
Benim için önemli bir çalışmaydı ama artık bitirdiğim için bu işleri paylaşıyorum. Buyrun;
Kod:
quest pvm begin state start begin when login or levelup with pc.level >= 1 begin set_state(information) end end state information begin when 11589.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Tutsak Şaman ", count) end if count == 0 then say_title("1.Seviye Görevi: ") say("") say("Persia prensesi Elena'yı ") say("zincirlerini kırarak kurtardın. ") say("Krallık sana minnetar ve karşılığında ") say("sana ödülü göndermemizi istediler. ") say_reward("Savaş Atı Mührü kazandınız. ") say_reward("100.000 EXP kazandınız. ") say("") cmdchat("BGM quest_speak.mp3") pc.give_exp2(7200) pc.give_item2(71128, 1) clear_letter() set_state(ende) end end when letter begin send_letter("1.Seviye Görevi ") end when info or button begin say_title("1.Seviye Görevi: ") say("") say("Düşmanımızın elinden kurtarılan esir olan ") say("Tutsak Şamanın zincirlerini şuana dek ") say("kimse kırmayı başaramadı. Hemen Chunjo ") say("krallığına git ve zincirleri kırmayı dene. ") say_reward("Işınlanma yüzüğü ile Chunjo krallığına ") say_reward("güvenli bir şekilde yolculuk edebilirsin. ") say_reward("Tutsak şamanı özgürlüğüne kavuştur. ") say("") pc.setqf("state", 1) q.set_counter("Tutsak Şaman ", 1) end end state ende begin when login or levelup with pc.level >= 5 begin set_state(information1) end end state information1 begin when letter begin send_letter("5.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "5gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "5hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 2) q.set_counter("Lykos", 2) end when 191.kill begin local count = pc.getqf("state") - 1 if count <= 2 then pc.setqf("state", count) q.set_counter("Lykos", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(5000000) pc.give_item2(71144, 5) pc.give_item2(71020, 5) clear_letter() set_state(ende1) end end end state ende1 begin when login or levelup with pc.level >= 10 begin set_state(information2) end end state information2 begin when letter begin send_letter("10.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "10gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "10hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 2) q.set_counter("Jin-Hee", 2) end when 394.kill begin local count = pc.getqf("state") - 1 if count <= 2 then pc.setqf("state", count) q.set_counter("Jin-Hee", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(10000000) pc.give_item2(71124, 10) pc.give_item2(71020, 5) clear_letter() set_state(ende2) end end end state ende2 begin when login or levelup with pc.level >= 15 begin set_state(information3) end end state information3 begin when letter begin send_letter("15.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "15gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "15hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 30) q.set_counter("Ac Kaplan", 30) end when 184.kill begin local count = pc.getqf("state") - 1 if count <= 30 then pc.setqf("state", count) q.set_counter("Ac Kaplan", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(15000000) pc.give_item2(71124, 15) pc.give_item2(71020, 5) clear_letter() set_state(ende3) end end end state ende3 begin when login or levelup with pc.level >= 20 begin set_state(information4) end end state information4 begin when letter begin send_letter("20.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "20gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "20hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 20) q.set_counter("Joh-Hwan", 20) end when 454.kill begin local count = pc.getqf("state") - 1 if count <= 20 then pc.setqf("state", count) q.set_counter("Joh-Hwan", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(20000000) pc.give_item2(50073, 1) pc.give_item2(71020, 5) clear_letter() set_state(ende4) end end end state ende4 begin when login or levelup with pc.level >= 25 begin set_state(information5) end end state information5 begin when letter begin send_letter("25.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "25gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "25hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Vahsi Yuzbasi", 1) end when 591.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Vahsi Yuzbasi", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(25000000) pc.give_item2(50081, 1) pc.give_item2(71020, 5) clear_letter() set_state(ende5) end end end state ende5 begin when login or levelup with pc.level >= 30 begin set_state(information6) end end state information6 begin when letter begin send_letter("30.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "30gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "30hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Chuong", 1) end when 494.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Chuong", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(30000000) pc.give_item2(72010, 5) pc.give_item2(55051, 1) clear_letter() set_state(ende6) end end end state ende6 begin when login or levelup with pc.level >= 35 begin set_state(information7) end end state information7 begin when letter begin send_letter("35.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "35gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "35hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 30) q.set_counter("Siyah Ork", 30) end when 636.kill begin local count = pc.getqf("state") - 1 if count <= 30 then pc.setqf("state", count) q.set_counter("Siyah Ork", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(35000000) pc.give_item2(55051, 1) pc.give_item2(71020, 5) clear_letter() set_state(ende7) end end end state ende7 begin when login or levelup with pc.level >= 40 begin set_state(information8) end end state information8 begin when letter begin send_letter("40.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "40gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "40hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Ork Reisi", 1) end when 691.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Ork Reisi", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(40000000) pc.give_item2(55052, 1) pc.give_item2(71020, 5) clear_letter() set_state(ende8) end end end state ende8 begin when login or levelup with pc.level >= 45 begin set_state(information9) end end state information9 begin when letter begin send_letter("45.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "45gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "45hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 20) q.set_counter("Gulyabani", 20) end when 1303.kill begin local count = pc.getqf("state") - 1 if count <= 20 then pc.setqf("state", count) q.set_counter("Gulyabani", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(45000000) pc.give_item2(71020, 5) pc.give_item2(41207, 1) pc.give_item2(45001, 1) clear_letter() set_state(ende9) end end end state ende9 begin when login or levelup with pc.level >= 50 begin set_state(information10) end end state information10 begin when letter begin send_letter("50.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "50gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "50hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 20) q.set_counter("Buz Adam", 20) end when 1105.kill begin local count = pc.getqf("state") - 1 if count <= 20 then pc.setqf("state", count) q.set_counter("Buz Adam", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(50000000) pc.give_item2(50011, 5) pc.give_item2(55053, 1) clear_letter() set_state(ende10) end end end state ende10 begin when login or levelup with pc.level >= 55 begin set_state(information11) end end state information11 begin when letter begin send_letter("55.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "55gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "55hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 10) q.set_counter("Korsan Tanaka", 10) end when 5001.kill begin local count = pc.getqf("state") - 1 if count <= 10 then pc.setqf("state", count) q.set_counter("Korsan Tanaka", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(55000000) pc.give_item2(50011, 5) pc.give_item2(70301, 1) clear_letter() set_state(ende11) end end end state ende11 begin when login or levelup with pc.level >= 60 begin set_state(information12) end end state information12 begin when letter begin send_letter("60.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "60gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "60hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Lanetli Kapi", 1) end when 30119.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Lanetli Kapi", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(60000000) pc.give_item2(50011, 5) pc.give_item2(27992, 1) clear_letter() set_state(ende12) end end end state ende12 begin when login or levelup with pc.level >= 65 begin set_state(information13) end end state information13 begin when letter begin send_letter("65.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "65gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "65hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Kizil Ejderha", 1) end when 2497.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Kizil Ejderha", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(65000000) pc.give_item2(27993, 1) pc.give_item2(50084, 3) pc.give_item2(50011, 5) clear_letter() set_state(ende13) end end end state ende13 begin when login or levelup with pc.level >= 70 begin set_state(information14) end end state information14 begin when letter begin send_letter("70.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "70gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "70hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Egitim Tahtasi", 1) end when 24000.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Egitim Tahtasi", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(70000000) pc.give_item2(50011, 5) pc.give_item2(27994, 1) pc.give_item2(50084, 3) clear_letter() set_state(ende14) end end end state ende14 begin when login or levelup with pc.level >= 75 begin set_state(information15) end end state information15 begin when letter begin send_letter("75.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "75gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "75hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Deccal Savascisi", 1) end when 3104.kill begin local count = pc.getqf("state") - 1 if count <= 1 then pc.setqf("state", count) q.set_counter("Deccal Savascisi", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(75000000) pc.give_item2(50011, 5) pc.give_item2(70251, 5) pc.give_item2(71082, 1) clear_letter() set_state(ende15) end end end state ende15 begin when login or levelup with pc.level >= 80 begin set_state(information16) end end state information16 begin when letter begin send_letter("80.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "80gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "80hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 2) q.set_counter("Tanrica Metni", 2) end when 11506.kill begin local count = pc.getqf("state") - 1 if count <= 2 then pc.setqf("state", count) q.set_counter("Tanrica Metni", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(80000000) pc.give_item2(50011, 5) pc.give_item2(70252, 5) pc.give_item2(27450, 1) clear_letter() set_state(ende16) end end end state ende16 begin when login or levelup with pc.level >= 85 begin set_state(information16) end end state information17 begin when letter begin send_letter("85.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "85gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "85hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 1) q.set_counter("Kar Canavari", 1) end when 11932.kill begin local count = pc.getqf("state") - 1 if count <= 2 then pc.setqf("state", count) q.set_counter("Kar Canavari", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(85000000) pc.give_item2(50011, 5) pc.give_item2(70253, 5) pc.give_item2(51002, 5) clear_letter() set_state(ende17) end end end state ende17 begin when login or levelup with pc.level >= 90 begin set_state(information16) end end state information18 begin when letter begin send_letter("90.Seviye Görevi") end when info or button begin addimage ( - 100 , - 70 , "90gorev.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) wait ( ) addimage ( - 100 , - 70 , "90hediye.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.setqf("state", 5) q.set_counter("Zehirli Kral Orumcek", 5) end when 2094.kill begin local count = pc.getqf("state") - 1 if count <= 5 then pc.setqf("state", count) q.set_counter("Zehirli Kral Orumcek", count) end if count == 0 then addimage ( - 100 , - 70 , "tebrikler.tga" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) say ( "" ) pc.change_money(100000000) pc.give_item2(70254, 5) pc.give_item2(53001, 1) pc.give_item2(71043, 1) pc.give_item2(70026, 1) pc.give_item2(55054, 1) pc.give_item2(55055, 1) pc.give_item2(72165, 1) clear_letter() set_state(ende17) end end end state ende17 begin end end
Bu boş quest ekranı içine photoshop ile yazı doldurabilirsiniz.
Ziyaretçiler için gizlenmiş link,görmek için üye olmalısınız!
Giriş yap veya üye ol.
Metin2 Sesli & Grafikli Görev Questi: Oyun Deneyimini Zenginleştiren Etkileşimli Sistem
Metin2 oyununda quest sistemleri, oyuncuların oyun dünyasında belirli görevleri yerine getirmesiyle ilerlemesini sağlayan kritik yapı taşlarıdır. Bu sistemler özellikle lua tabanlı scriptlerle genişletilebilir ve özelleştirilebilir. Ancak son yıllarda sesli ve grafikli görev sistemleri, kullanıcı deneyimini ciddi anlamda artırıyor. Bu yazıda Metin2 sesli ve grafikli quest sistemlerinin nasıl çalıştığını, avantajlarını ve geliştirme süreçlerini detaylıca inceleyeceğiz.
Metin2 Görev Sistemi Nedir?
Quest (görev), oyuncuya belirli bir hedef veya dizi görev sunar. Oyuncu bu görevleri tamamladığında ödüller alabilir. Bu ödüller; item, EXP, para veya özel stat kazanımları olabilir. Metin2 quest sistemleri genellikle lua dili ile yazılır ve quest manager tarafından yönetilir.
Sesli ve Grafikli Quest Nedir?
Geleneksel quest sistemleri genellikle sadece metin tabanlıdır. Oyuncu, NPC ile konuşur, görev tanımı metin olarak verilir ve görev tamamlandığında tekrar metin ile bilgi alınır. Ancak grafikli ve sesli quest sistemleri, bu deneyimi daha da zenginleştirir. Örneğin, görev sırasında bir ses efekti çalınabilir ya da görevin devam ettiği bir animasyon gösterilebilir.
Metin2 Lua Script ile Sesli ve Grafikli Görev Geliştirme
Lua dilinde yazılan quest sistemlerine ses ve grafik entegrasyonu oldukça yaygındır. Bu entegrasyonlar sayesinde NPC ile olan diyaloglar daha etkileyici hale gelir. Ses efektleri için sound komutları, grafik efektler içinse özel UI elementleri kullanılabilir. Metin2dev veya Martysama gibi platformlarda bu tür gelişmiş scriptler paylaşılır.
Quest Trigger ve Timer Kullanımı
Quest trigger, belirli bir koşul sağlandığında quest'in başlatılmasını sağlar. Örneğin, oyuncu belirli bir konuma girdiğinde görev otomatik başlayabilir. Timer ise görevin belli bir süre sonra biteceğini veya yeniden başlayacağını belirtmek için kullanılır. Bu sayede daily quest gibi sistemler kolayca entegre edilebilir.
Geliştirme ve Hata Ayıklama
Quest debug işlemi, geliştiriciler için hayati önem taşır. Yanlış bir flag veya state ayarı, quest’in düzgün çalışmamasına neden olabilir. Quest edit araçları sayesinde bu hatalar tespit edilebilir. Ayrıca Metin2 lobby gibi platformlarda bu konuda destek alabilirsiniz.
Özel ve Zincirleme Görevler
Custom quest geliştirme, sunucuya özgü içerikler eklenmesini sağlar. Bu tür görevler genellikle chain (zincirleme) görevler şeklinde tasarlanır. Bir görevin bitişi diğer görevin başlangıcı olabilir. Bu yapı, oyuncuların uzun süre oyun içi aktiviteye devam etmesini sağlar.
Sonuç
Metin2 sesli ve grafikli quest sistemleri, oyunculara daha zengin ve etkileşimli bir deneyim sunar. Lua script bilgisi olan geliştiriciler için bu sistemler oldukça esnek ve güçlüdür. Doğru kullanıldığında quest reward, quest chain ve daily quest gibi yapılarla oyuncu sadakati artırılabilir.
Metin2 Voice & Graphic Quest: An Interactive System Enriching Gaming Experience
Metin2 game's quest systems are essential building blocks that allow players to progress within the game world by completing specific tasks. These systems can be extended and customized with lua-based scripts. However, recently, voice and graphic-based quest systems have significantly enhanced user experience. In this article, we will examine how Metin2 voice and graphic quests work, their advantages, and development processes in detail.
What is the Metin2 Quest System?
Quests present the player with specific goals or series of tasks. Upon completion, players may receive rewards such as items, experience points, gold, or special stat bonuses. Metin2 quests are typically written in lua language and managed by a quest manager.
What Are Voice and Graphic Quests?
Traditional quest systems are usually text-based. The player speaks to an NPC, receives task descriptions as text, and upon completion, gets feedback through text again. However, graphic and voice-based quest systems enhance this experience further. For instance, sound effects may play during the quest, or animations showing the quest's progress might be displayed.
Developing Voice and Graphic Quests in Metin2 with Lua Script
Integrating voice and graphics into quest systems written in lua is quite common. Thanks to these integrations, dialogues with NPCs become more impressive. Sound effects can be triggered using sound commands, while custom UI elements can be used for graphic effects. Such advanced scripts are often shared on platforms like Metin2dev or Martysama.
Using Quest Triggers and Timers
Quest triggers start the quest when certain conditions are met. For example, entering a specific location might automatically start a quest. Timers specify that a quest will end after a certain period or restart. This allows easy integration of systems like daily quests.
Development and Debugging
Quest debugging is crucial for developers. Incorrect flag or state settings may cause the quest not to function properly. With quest editing tools, these errors can be detected. Additionally, you can seek support on platforms like Metin2 lobby.
Custom and Chain Quests
Custom quests allow unique content to be added to the server. Such quests are often designed as chain quests where one quest leads into another. This structure encourages players to stay engaged in-game activities for longer periods.
Conclusion
Metin2 voice and graphic quests provide players with a richer and more interactive experience. For developers familiar with Lua scripting, these systems are highly flexible and powerful. When used correctly, structures like quest rewards, quest chains, and daily quests can increase player loyalty.
