Artık herkez quest yazsın ! [Quest kodları]

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Quest kodlarını hemen bilgisayarına ! | [27 Mayıs 2014 Saat : 17:03]'de eklendi.

-Metin2 Quest Kodları-

pc.get_map_index = Haritanın index kodudur.

pc.get_name = Oyuncunun isimini görüntüleme kodu
pc.give_exp = Exp verme kodu yada silme kodu olarak kullanılır.
pc.give_item2 = İtem verme kodudur
pc.remove_item = İtem silme kodu olarak kullanılır
chat = Sadece belirlediğiniz yada tüm karakterlerde altta gözükebilecek yazı kodudur.Beyaz renkli yazıdır.
input = Yazı yazma kutusu. Ruh taşındaki yazı yazma kutusu gibi.
mob_name = Npc adını veya mob adını gösteren koddur.
notice = GM yazısına benzer sarı olarak gözükür. Sadece işten etkilenen görür.
notice_all = GM yazısına benzer sarı olarak gözükür. Tüm oyunculara bu mesaj gözükür.

pc.give_gold = Para verme yada alma kodu olarak kullanılır.
pc.warp = Işınlanma kodudur.
say_reward = Başlığı kırmızı olarak yazar.
say_title = Başlık kodudur. Başlığı sarımsı bir renkle yazar.
wait = Devam tuşu.
say = Npclerde normal yani beyaz olarak yazabileceğiniz koddur.
select = Şık seçme kodu olarak kullanılır
timer = Bu kodla süre tutarsınız.

Nasıl kullanılır? :

DİKKAT : İşaretlere (ÖRN : ()"",) dikkat ediniz. Aksi taktirde yazdığınız questler geçersiz sayılabilir.


"say" kodu nasıl kullanılır?
say("Mesaj") olarak kullanılır Mesaj yazan yere kendi yazınızı veya oyun içi verebileceğiniz mesajlar için kullanılır.
Bu kodu kullanırsanız normal yazı olarak yanı Beyaz olarak yazarsınız.


"say_title" kodu nasıl kullanılır?
say_title("Mesaj") olarak kullanılır Mesaj yazan yere kendi yazınızı veya oyun içi verebileceğiniz mesajlar için kullanılır.
Bu kodu kullanırsanız Sarımsı bir şekilde yazarsınız.


"say_reward" kodu nasıl kullanılır?
say_reward("Mesaj") olarak kullanılır Mesaj yazan yere kendi yazınızı veya oyun içi verebileceğiniz mesajlar için kullanılır.
Bu kodu kullanırsanız Kırmızı bir şekilde yazarsınız.


"input" kodu nasıl kullanılır?
Mesela bir örnek vereyim ;
ÖRN : local a = input() olarak kullanılır.


"select" nasıl kullanılır?
Şık olarak kullanılır mesela;
ÖRN : local a = select(" Evet. "," Hayır. ") olarak kullanılır. Şık eklemek içinse Evet hayır şıkları gibi aralara virgül(,) koyarak devam edebilirsiniz.
Her şıkka "şık" şeklinde tırnak koyulur.


"wait" nasıl kullanılır?
Örnek olarak gösterirsek;
ÖRN : wait() olarak kullanılır mesla npcye gittiğiniz zaman wait() tuşu devrede ise devam olarak bir tuş koyulur. Ve diğer sayfaya geçilir.
Çoğunlukla görevlerde kullanılır.


"notice" kodu nasıl kullanılır?
notice kodu local yani yerel olarak kullanılan bir koddur eğer bir questte kullanırsanız. Sadece işten etkilenen kişi yazıyı görebilir.
Nasıl kullanıldığına örnek verecek olursak;
ÖRN : notice("Mesaj") Mesaj yazan yere kendi yazınızı veya oyun içi verebileceğiniz mesajlar için kullanılır.
Bu kodu kullanırsanız oyun konsolunda sarı olarak gözükür. Bir nevi GM yazısıdır.


"notice_all" kodu nasıl kullanılır?
notice_all kodu online olarak yani bütün oyunculara açık olarak gösterilen mesajdır.
ÖRN : notice_all("Mesaj") Mesaj yazan yere kendi yazınızı veya oyun içi verebileceğiniz mesajlar için kullanılır.
Bu kodu kullanırsanız oyun konsolunda sarı olarak gözükür. Bir nevi GM yazısıdır.


"chat" kodu nasıl kullanılır?
chat kodu beyaz yazıdır tüm oyunculara online olarak gösterilir. Oyun konsolunda yer alır questte;
chat("Mesaj") olarak yazılır. Mesaj yazan yere kendi yazınızı veya oyun içi verebileceğiniz mesajlar için kullanılır.


"timer" kodu nasıl kullanılır?
Timer kodunun nasıl kullanıldığına örnek verecek olursak;
ÖRN : timer("mesaj",süre) süreyi saniye olarak ayarlayınız. Mesaj yerine gelirsek bu mesaj devam eder bir örnekle açıklarsak;
(ÖRN : when mesaj.timer begin) olarak devam eder yani questte timer("mesaj",süre) den sonra bu kodu başka when ile kullanırsanız
süreyi başlatmış olursunuz.


"mob_name" kodu nasıl kullanılır?
Daha önce hiç kullanmadım fakat şöyle kullanıla bilir;
ÖRN : mob_name("Mob adı")


"pc.get_name" kodu nasıl kullanılır?
Quest içinde örneğin ;
ÖRN :"..pc.get_name()" olarak kullanılır. Masa başında oyun oynuyan oyuncuların queste bastımı adını gösterir.


"pc.warp" kodu nasıl kullanılır?
Yine bir örnekle açıklıyım;
ÖRN : pc.warp(xxx,xxx) olarak kullanılır. Kırmızı yazıyla xxx olan yerleri kordinatlarla değişiniz.


"pc.give_item2" kodu nasıl kullanılır?
Mesela şöyle bir örnek verelim;
ÖRN : pc.give_item2("item kodu",5) item kodu olan yere itemin kodunu yazınız. Daha sonra mavi ile yazdığım 5'e ise oyun içinde o itemden kaç tane
vereceğinizi söyler örneğin benim kullandığım kodda 5 tane vermesini söyledim.


"pc.remove_item" kodu nasıl kullanılır?
Örnekle açıklıyım.
ÖRN : pc.remove_item("item kodu",5) item kodu olan yere itemin kodunu yazınız. Daha sonra mavi ile yazdığım 5'e ise oyun içinde o itemden kaç tane
sileceğinizi söyler örneğin benim kullandığım kodda 5 tane silmesi söyledim.


"pc.get_map_index" kodu nasıl kullanılır?
Map indexidir when ile kullanıla bilir örnegin;
( ÖRN : when login with pc.get_map_index == 12 ) olarak kullanılabilir. Örnekte ne yaptım eğer bu kodu queste when ile kullanırsanız oyuncu
login olduğu zaman map indexi 12 olan haritaya ışınlanacak.


"pc.give_gold" kodu nasıl kullanılır?
Questinizde kullanırsanız birine para vermek için kullanabirsiniz örneğin;
ÖRN : pc.give_gold("5000000000") olarak kullanılır burada eğer oyuncuya para vermek için kullanılırsa bu kod 500 m verecek.
Eğer para miktarı fazla uçmuş diyorsanız. Örneğin 400.000.000 olarak yazın ve aradaki noktaları silerek 5000000000 sayılarının bulunduğu
yere para miktarını yapıştırın.

"pc.give_exp" kodu nasıl kullanılır?
Questinizde şöyle kullanılabilir:
ÖRN : pc.give_exp("500") mesela bunu questte kullanırsak oyuncuya 500 exp veririz.



Metin2 oyununda quest sistemleri, oyuncuların deneyimlerini zenginleştiren en önemli unsurlardan biridir. Bu sistem sayesinde oyuncular, belirli görevleri tamamlayarak ödüller kazanabilir, hikâyeye dahil olabilir ve oyunun derinliğini yaşayabilirler. Ancak pek çok sunucu sahibi ve geliştirici, doğru ve etkili quest sistemlerini kurmakta zorlanabiliyor. İşte burada yardımımıza quest kodları giriyor. Artık herkesin quest yazabilmesi için gerekli olan bilgiyi bu yazıyla paylaşacağız.

Metin2 quest sistemleri genellikle Lua dilinde yazılmaktadır. Lua, Metin2'nin quest motoru tarafından desteklenen güçlü ve esnek bir programlama dilidir. Quest yazarken dikkat edilmesi gereken temel yapılar arasında quest başlangıcı (quest_begin), görevin başlatılması, görev adımlarının tanımlanması, görev sonu (quest_end) gibi önemli bölümler yer alır. Ayrıca quest'lerin aktif edilmesi, durum yönetimi (quest_state), bayrak sistemleri (quest_flag), zamanlayıcılar (timer) gibi kavramlar da oldukça önemlidir.

Öncelikle basit bir quest yapısı oluşturalım:

quest example_quest begin
state start begin
when login begin
say('Yeni bir quest sistemiyle tanışmaya hazır mısın?')
end
end
quest example_quest end

Bu örnek, oyuncu giriş yaptığında ekrana bir mesaj yazdıran basit bir quest sistemidir. Burada when komutu, belirli bir olay gerçekleştiğinde çalışacak olan kısmı tanımlar. say() fonksiyonu ise oyuncuya bir metin gösterir. Metin2 quest sistemleri bu şekilde genişletilebilir ve daha karmaşık yapılar oluşturulabilir.

Quest sistemlerinde NPC'lerle etkileşim oldukça yaygındır. Bir NPC'ye tıklanarak quest başlatılabilir veya devam ettirilebilir. Bunun için when komutu içinde button veya click gibi tetikleyiciler kullanılabilir. Örneğin:

when npc.click begin
say('Görevini başlatmak ister misin?')
local s = select('Evet', 'Hayır')
if s == 1 then
set_state(1)
else
return
end
end

Bu yapı sayesinde oyuncu, NPC ile etkileşime girip evet dediğinde quest ilerlemeye başlar. Quest içinde item kazandırma, canavar öldürme, görev zincirleri (quest_chain) gibi birçok özellik entegre edilebilir._daily quest_ (günlük görevler) gibi sistemlerle oyuncuların her gün oyuna giriş yapmasını teşvik etmek de mümkündür.

Metin2 quest sistemlerinde hata ayıklama (debug) süreci de oldukça önemlidir. Hatalar, quest'lerin beklendiği gibi çalışmamasına neden olabilir. Hata ayıklama için notice fonksiyonu kullanılabilir. Örneğin:

notice('Quest adımda hata oluştu')

Bu sayede geliştiriciler, quest içindeki hataları kolayca tespit edebilirler. Ayrıca quest editörleri ve özel araçlar yardımıyla da sistemler daha hızlı test edilebilir.

Quest sistemlerinde ödüller (reward) büyük önem taşır. Oyuncular, görevleri tamamladıklarında item, para, tecrübe puanı veya özel yetenekler kazanabilirler. Reward sistemleri, oyuncu motivasyonunu artırmak için stratejik olarak planlanmalıdır. Örnek bir ödül kodu şu şekildedir:

pc.give_item('gold', 1000)
pc.give_exp(5000)[/COORD]

Bu komutlarla oyuncuya altın ve tecrübe puanı verilir. Quest sistemleri bu şekilde özelleştirilebilir ve sunucuya özel deneyimler yaratılabilir. Metin2Lobby olarak, quest geliştirme konusunda uzman kaynaklara ve örnek dosyalara ulaşabilirsiniz.


In the game Metin2, quest systems are among the most important elements that enrich players' experiences. Through this system, players can earn rewards by completing certain tasks, become part of the story, and experience the depth of the game. However, many server owners and developers struggle with correctly implementing effective quest systems. This is where quest codes come into play. In this article, we will share the knowledge required for everyone to write quests effectively.

Metin2 quest systems are generally written in the Lua programming language. Lua is a powerful and flexible language supported by Metin2's quest engine. Key structures to consider when writing quests include quest initiation (quest_begin), defining quest steps, quest conclusion (quest_end), as well as concepts like activation, state management (quest_state), flag systems (quest_flag), timers (timer), and more.

Firstly, let's create a simple quest structure:

quest example_quest begin
state start begin
when login begin
say('Are you ready to meet a new quest system?')
end
end
quest example_quest end

This example represents a basic quest system that displays a message to the player upon login. Here, the when command defines the portion of code to execute when a specific event occurs. The say() function shows a text message to the player. Metin2 quest systems can be expanded in this way to build more complex structures.

Interactions with NPCs are common in quest systems. Clicking on an NPC can initiate or advance a quest. For this, triggers such as button or click can be used within the when command. For example:

when npc.click begin
say('Would you like to start the quest?')
local s = select('Yes', 'No')
if s == 1 then
set_state(1)
else
return
end
end

With this structure, when the player interacts with the NPC and selects 'Yes', the quest begins. Features such as item rewards, monster kills, and quest chains (quest_chain) can be integrated into the quest. Systems like _daily quest_ can encourage players to log in every day.

Debugging (debug) is also crucial in Metin2 quest systems. Errors may cause quests not to work as expected. To identify errors, the notice function can be used. For example:

notice('An error occurred at this step')

This allows developers to easily detect errors within quests. Additionally, quest editors and specialized tools can speed up testing.

Rewards (reward) hold great importance in quest systems. Players can gain items, money, experience points, or special abilities upon completing quests. Reward systems should be strategically planned to increase player motivation. An example reward code looks like this:

pc.give_item('gold', 1000)
pc.give_exp(5000)

These commands award gold and experience points to the player. Quest systems can be customized in this manner to create unique server experiences. At Metin2Lobby, you can access expert resources and sample files related to quest development.
 

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

Geri
Üst Alt