Merhaba arkadaşlar gubün sizlere quest yazmada 10 altın tavsiyeyi paylaşıyorum. Eğer bir quest yazmak istiyor iseniz mutlaka okuyun derim.
1-Quest yazmaya başlamadan önce mutlaka yazacağınız questi iyi düşünün ne gerekli, gerekli olan olayları kodlamaya dökebilirmiyim olması muhtemel açık,buğ neler
ve bunlara nasıl çözüm bulurum..
2-Questlerinizi daima notepat++ ile yazın en kullanışlı ve anlaşılır kod editörü bana göre. notepat++ da kodlamaya başlamadan önce dil kısmından LUA yi seçin bu sayede
hangilerinin lua diline ait olduğunu anlarız
3-Türkçe karakter sorunu vardır genelde bu yüzden üçgen yerine ucgen yazarız bunun tedaviside ardadaşlar kodlama kısmından ANSI ile kodlamayı seçin bu sayede üçgen yazarsınız ve sorun olmaz
4-Eğer questlerinizde database (veri tabanı) kullanacak iseniz mutlaka questlib.lua,quest_function,questing.lua dosyalarınızda mysql_query() fonksiyonları bulunsun.
mysql_query() ile select komutları yazmayın ekranda 0 değerleri gelir. mysql_query10() ile string ifadeleri select ile çekin
5-Eğer bir veriyi database ye kaydedecek iseniz ilk olarak navicat den bir veri tabanı veya direk var olan bir veri tabanının içine (örnek player) bir tablo açın. ve gelecek sütün sayısını
iyi hesaplayın örnek: şikayet questi yazıorum kim etmiş kimi etmiş neden etmiş ne zaman etmiş 4 farklı sütün birde id olacak 5 şeklinde kodlarla konuşun
6-Kodlarla gerçekten konuşarak yazın bunun çok faydası olacaktır. her end yazmanız durumunda bir tab yapın içeriye girin hatalar genelde end den kaynaklı oluyor görmeniz açısından iyi olur
7-Her olayda bir questi oyuna atıp deneyin mesela select fonksiyonu yazdınız hemen oyuna ayıp deneyin. questlerinizi devamlı deneyerek yazın yoksa çalışmaz.
Her zaman derim bir questi istersen sorunsuz bir şekilde baştan sona kadar yazdığını zannet at oyuna kesin çalışmaz
8-Questi renklendirin. devamlı say("") kullanmayın iyibir quest_function dosyasına sahip iseniz içerisinde say_red say_green say_blue say_title bulunur.
Çokta renk cümbüşü yapmayın.Göz yoracak renklerden uzak durun.
say_green in fonksiyon hali bu şekilde renkleri siz ayarların: function say_green(name) say(color256(0, 238, 0)..name..color256(0, 238, 0)) end
9-inputlara dikkat edin oyuncudan alacağınız bir string ise input() yazın sorun yok fakat int yani sayı ise ilk olarak lua kodu olan tonumber(input()) şeklinde yazın.
Bu gelecek verinin her zaman rakamsal olmasını sağlar if ile sorgular iken size kolaylık sağlar.
10-Aynı şeyi 10 defa yazacak iseniz tek tek yazmayın FOR döngüsü kullanın mesela sıralama questiniz var SQL cümlesini yazdınız alta geçip bunu yapın hiç kod yazmadan
10 kişiyi sıralar (limit 10 olmalı ve gelen veriler * değil level name playtime ) olmalı
bir süre sıralaması questi
local ben = mysql_query10("select level,name,playtime from player.player order by id desc limit 10")
say_title("# | Seviye | İsim | Süre")
local line
for i = 1,table.getn(ben) do
line = i.." - "
for j = 1,table.getn(ben) do
line = line.." "..ben[j]
end
say_green(line)
end
11-Questteki konuşma metinlerini uzun tutmayın oyuncuları sıkmayın özellikle devamlı kullanacak ise karşı taraftaki oyuncu.. konuşmaları diplomatik yazmayın
oynu oynayan çok cocuk var neşeli cümleler kullanın sonuçta bu bir oyun..
12-Eğer questte oyuncunun ismini devamlı kullanacak iseniz veya başka bir cümleyi başlığı ilk olarak bunları değişkene atayın mesela oyuncunun ismini devamlı kullancam
o zmaan hemen local oyuncu = pc.get_name() atarım her oyuncu yazmam da oyuncunun ismini alırım
Bir kaç kolaylık ve bilgi notları:
1-say(""),say_green("") vb notice, notice_all("") vs vs bunlar kod değildir arkadaşlar bunlar hazır fonksiyondur her birinin aslında nasıl olduğu questlib.lua dosyanızda bulunmaktadır
2-Gerçek kodlar lua dili kodlarıdır bunların bazıları local,select,for,end,if,elseif,else vs yani lua kullanıyo isek lua dili bilmek şart kaynak fazla yok lua tr den ne öğrenir iseniz
3-Lua öğrenemiyo iseniz PHP öğrenin çok fazla kaynak var ve lua ile mantık aynı sadece yazılış farklı javascript ile de aynı.
Mesela php de if($sayi==1){}else{} şeklinde yazılır iken lua da if(sayi == 1) then else end şeklinde yazılır mantık aynı sayı bire eşitse demek.
mesela lua da global değişken a = 5 veya local değişken de local a = 5 dio isek php de $a = 5 deriz mantık aynı a yazarsak 5 gelir
php öğrenin dedim çünkü kaynak çok php de if yapısı for forech while değişken gibi kavramları öğrenin luaya bakın
4-Arada bir kahve için
Herkeze iyi günler yaralı bir konu olacağını düşünüyorum kendinize iyi bakın...kardeşlerim sorusu olan alttan yazsın
Quest Yazmada 12 Altın Tavsiye ve Bilgi Notları
Metin2 sunucularında quest (görev) sistemi, oyuncu deneyimini zenginleştirmek ve oyun içi etkileşimi artırmak için kritik öneme sahiptir. Quest yazımı, hem teknik bilgi gerektiren hem de yaratıcılıkla desteklenmesi gereken bir alandır. Bu yazıda, Metin2 quest sistemine dair 12 altın kural ve bilgi notu üzerinden nasıl kaliteli, sorunsuz ve etkileyici quest'ler yazabileceğinizi detaylıca ele alacağız.
1. Lua Diline Hakim Olun
Metin2 quest sistemleri genellikle Lua dilinde yazılmaktadır. Quest yazımında başarılı olmak için Lua programlama diline hâkim olmanız gerekir. Temel sentaks, değişken tanımlamaları, fonksiyonlar ve döngüler gibi konuları öğrenmek,.quest yazımının temelidir.
2. Quest Yapısını Anlayın
Her quest, begin ve end blokları arasında tanımlanır. Quest adı benzersiz olmalıdır. Örneğin:
quest quest_ismi begin
state start begin
when login or levelup begin
say('Hoş geldin!')
end
end
end
3. Trigger Kullanımını Doğru Yapın
When ifadesi, belirli olaylar gerçekleştiğinde quest'in tetiklenmesini sağlar. Login, levelup, item_use, click gibi trigger'lar kullanılabilir. Trigger seçimleriniz, quest'in akışını doğrudan etkiler.
4. Flag ve State Yönetimi
Questlerde durum yönetimi çok önemlidir. Oyuncunun quest tamamlama statüsünü takip etmek için flag kullanılır. Questin hangi aşamada olduğunu belirtmek için ise state yapısı kullanılır. Hatalı state yönetimi, quest çakışmalarına yol açabilir.
5. NPC ve Mob Entegrasyonu
Questlerde NPC'lerle etkileşim ve belirli canavarları öldürme gibi görevler yaygındır. NPC'lerin dialogları, mob'ların spawn noktaları ve düşürdüğü itemler gibi ayarlamalar, quest'in işleyişini etkiler. NPC ve mob ID'lerini doğru kullanmak önemlidir.
6. Timer Kullanımı
Zaman bazlı görevler için timer kullanılır. Günlük görevler (daily quest), sınırlı süreli etkinlikler gibi senaryolarda timer oldukça faydalıdır. Zamanlayıcılarla questin süresini kontrol edebilirsiniz.
7. Reward Sistemini Etkinleştirin
Quest tamamlandığında oyuncuya ödül verilmesi için reward sistemini iyi planlamalısınız. Item, EXP, gold veya özel efektler gibi ödüller sunulabilir. pc.give_item2, pc.give_exp2 gibi fonksiyonlar kullanılır.
8. Debug ve Test Etme
Quest yazarken hatalar kaçınılmazdır. Debug yaparak questin her adımını test etmelisiniz. Hata mesajlarını okuyarak sorunları çözebilirsiniz. Hatalı quest, sunucuda ciddi sorunlara neden olabilir.
9. Quest Zincirleri Kurun
Tekil görevlerden ziyade, birbiriyle bağlantılı quest zincirleri (chain quest) daha etkileyici bir deneyim sunar. Önceki questlerin tamamlanması sonraki questlerin açılmasını sağlayabilir.
10. Performansı Göz önünde Bulundurun
Questlerin fazla karmaşık olması sunucu performansını etkileyebilir. Gereksiz tekrarlardan, yüksek CPU tüketen kodlardan kaçınmalısınız. Optimize edilmiş kod, daha kararlı bir sunucu çalışmasına yardımcı olur.
11. Dökümantasyon Kullanın
Metin2 geliştiricileri için mevcut olan dökümantasyonları ve örnek quest scriptlerini incelemek, yeni fikirler edinmenizi sağlar. Metin2Lobby gibi sitelerde paylaşılan örneklerden yararlanabilirsiniz.
12. Topluluk Geri Bildirimleri
Oyuncuların geri bildirimleri, questlerin kullanıcı dostu ve eğlenceli olup olmadığını gösterir. Oyuncuların_questleri anlayışı ve kolay erişebilirliği, deneyimi artırır.
Quest yazımı, Metin2 sunucularında kaliteli içerik sunmanın temel taşlarından biridir. Bu altın kuralları uygulayarak, hem teknik olarak sağlam hem de kullanıcı odaklı quest sistemleri geliştirebilirsiniz.
12 Golden Tips and Notes for Writing Quests
In Metin2 servers, the quest system is crucial for enriching player experience and increasing in-game interaction. Writing quests requires both technical knowledge and creativity. In this article, we will elaborate on 12 golden rules and notes related to Metin2 quest systems to help you write high-quality, error-free, and engaging quests.
1. Master the Lua Language
Metin2 quests are generally written in Lua. To succeed in writing quests, you must be proficient in the Lua programming language. Understanding basic syntax, variable definitions, functions, and loops is fundamental to quest development.
2. Understand the Quest Structure
Every quest is defined between begin and end blocks. The quest name must be unique. Example:
quest quest_name begin
state start begin
when login or levelup begin
say('Welcome!')
end
end
end
3. Use Triggers Correctly
The when statement triggers the quest when certain events occur. Triggers such as login, levelup, item_use, click can be used. Your choice of triggers directly affects the flow of the quest.
4. Manage Flags and States
State management is very important in quests. To track the player's quest completion status, use flag. To indicate which stage the quest is at, use the state structure. Incorrect state management can lead to quest conflicts.
5. Integrate NPCs and Mobs
Interactions with NPCs and killing specific monsters are common in quests. Settings like NPC dialogs, monster spawn points, and drop items affect how the quest operates. Using correct NPC and mob IDs is essential.
6. Use Timers
Timers are useful for time-based quests. Daily quests, limited-time events, and similar scenarios benefit from timers. You can control the duration of your quest using timers.
7. Activate the Reward System
To give rewards upon quest completion, you need to plan your reward system well. Rewards such as items, EXP, gold, or special effects can be granted using functions like pc.give_item2 and pc.give_exp2.
8. Debug and Test
Mistakes are inevitable while writing quests. You should debug and test every step of your quest. By reading error messages, you can resolve issues. Faulty quests may cause serious problems on the server.
9. Create Quest Chains
Instead of isolated quests, interconnected quest chains provide a more engaging experience. Completing one quest can unlock the next, forming a chain.
10. Consider Performance
Overly complex quests can impact server performance. Avoid unnecessary repetitions and code that consumes high CPU resources. Optimized code helps ensure stable server operation.
11. Use Documentation
Review existing documentation and sample quest scripts available for Metin2 developers to gain new ideas. Sites like Metin2Lobby offer helpful examples.
12. Community Feedback
Player feedback indicates whether quests are user-friendly and enjoyable. Making quests understandable and accessible enhances the overall experience.
Writing quests is one of the core elements for delivering quality content in Metin2 servers. By applying these golden rules, you can develop technically sound and user-focused quest systems.
1-Quest yazmaya başlamadan önce mutlaka yazacağınız questi iyi düşünün ne gerekli, gerekli olan olayları kodlamaya dökebilirmiyim olması muhtemel açık,buğ neler
ve bunlara nasıl çözüm bulurum..
2-Questlerinizi daima notepat++ ile yazın en kullanışlı ve anlaşılır kod editörü bana göre. notepat++ da kodlamaya başlamadan önce dil kısmından LUA yi seçin bu sayede
hangilerinin lua diline ait olduğunu anlarız
3-Türkçe karakter sorunu vardır genelde bu yüzden üçgen yerine ucgen yazarız bunun tedaviside ardadaşlar kodlama kısmından ANSI ile kodlamayı seçin bu sayede üçgen yazarsınız ve sorun olmaz
4-Eğer questlerinizde database (veri tabanı) kullanacak iseniz mutlaka questlib.lua,quest_function,questing.lua dosyalarınızda mysql_query() fonksiyonları bulunsun.
mysql_query() ile select komutları yazmayın ekranda 0 değerleri gelir. mysql_query10() ile string ifadeleri select ile çekin
5-Eğer bir veriyi database ye kaydedecek iseniz ilk olarak navicat den bir veri tabanı veya direk var olan bir veri tabanının içine (örnek player) bir tablo açın. ve gelecek sütün sayısını
iyi hesaplayın örnek: şikayet questi yazıorum kim etmiş kimi etmiş neden etmiş ne zaman etmiş 4 farklı sütün birde id olacak 5 şeklinde kodlarla konuşun
6-Kodlarla gerçekten konuşarak yazın bunun çok faydası olacaktır. her end yazmanız durumunda bir tab yapın içeriye girin hatalar genelde end den kaynaklı oluyor görmeniz açısından iyi olur
7-Her olayda bir questi oyuna atıp deneyin mesela select fonksiyonu yazdınız hemen oyuna ayıp deneyin. questlerinizi devamlı deneyerek yazın yoksa çalışmaz.
Her zaman derim bir questi istersen sorunsuz bir şekilde baştan sona kadar yazdığını zannet at oyuna kesin çalışmaz
8-Questi renklendirin. devamlı say("") kullanmayın iyibir quest_function dosyasına sahip iseniz içerisinde say_red say_green say_blue say_title bulunur.
Çokta renk cümbüşü yapmayın.Göz yoracak renklerden uzak durun.
say_green in fonksiyon hali bu şekilde renkleri siz ayarların: function say_green(name) say(color256(0, 238, 0)..name..color256(0, 238, 0)) end
9-inputlara dikkat edin oyuncudan alacağınız bir string ise input() yazın sorun yok fakat int yani sayı ise ilk olarak lua kodu olan tonumber(input()) şeklinde yazın.
Bu gelecek verinin her zaman rakamsal olmasını sağlar if ile sorgular iken size kolaylık sağlar.
10-Aynı şeyi 10 defa yazacak iseniz tek tek yazmayın FOR döngüsü kullanın mesela sıralama questiniz var SQL cümlesini yazdınız alta geçip bunu yapın hiç kod yazmadan
10 kişiyi sıralar (limit 10 olmalı ve gelen veriler * değil level name playtime ) olmalı
bir süre sıralaması questi
local ben = mysql_query10("select level,name,playtime from player.player order by id desc limit 10")
say_title("# | Seviye | İsim | Süre")
local line
for i = 1,table.getn(ben) do
line = i.." - "
for j = 1,table.getn(ben) do
line = line.." "..ben[j]
end
say_green(line)
end
11-Questteki konuşma metinlerini uzun tutmayın oyuncuları sıkmayın özellikle devamlı kullanacak ise karşı taraftaki oyuncu.. konuşmaları diplomatik yazmayın
oynu oynayan çok cocuk var neşeli cümleler kullanın sonuçta bu bir oyun..
12-Eğer questte oyuncunun ismini devamlı kullanacak iseniz veya başka bir cümleyi başlığı ilk olarak bunları değişkene atayın mesela oyuncunun ismini devamlı kullancam
o zmaan hemen local oyuncu = pc.get_name() atarım her oyuncu yazmam da oyuncunun ismini alırım
Bir kaç kolaylık ve bilgi notları:
1-say(""),say_green("") vb notice, notice_all("") vs vs bunlar kod değildir arkadaşlar bunlar hazır fonksiyondur her birinin aslında nasıl olduğu questlib.lua dosyanızda bulunmaktadır
2-Gerçek kodlar lua dili kodlarıdır bunların bazıları local,select,for,end,if,elseif,else vs yani lua kullanıyo isek lua dili bilmek şart kaynak fazla yok lua tr den ne öğrenir iseniz
3-Lua öğrenemiyo iseniz PHP öğrenin çok fazla kaynak var ve lua ile mantık aynı sadece yazılış farklı javascript ile de aynı.
Mesela php de if($sayi==1){}else{} şeklinde yazılır iken lua da if(sayi == 1) then else end şeklinde yazılır mantık aynı sayı bire eşitse demek.
mesela lua da global değişken a = 5 veya local değişken de local a = 5 dio isek php de $a = 5 deriz mantık aynı a yazarsak 5 gelir
php öğrenin dedim çünkü kaynak çok php de if yapısı for forech while değişken gibi kavramları öğrenin luaya bakın
4-Arada bir kahve için
Herkeze iyi günler yaralı bir konu olacağını düşünüyorum kendinize iyi bakın...kardeşlerim sorusu olan alttan yazsın
Quest Yazmada 12 Altın Tavsiye ve Bilgi Notları
Metin2 sunucularında quest (görev) sistemi, oyuncu deneyimini zenginleştirmek ve oyun içi etkileşimi artırmak için kritik öneme sahiptir. Quest yazımı, hem teknik bilgi gerektiren hem de yaratıcılıkla desteklenmesi gereken bir alandır. Bu yazıda, Metin2 quest sistemine dair 12 altın kural ve bilgi notu üzerinden nasıl kaliteli, sorunsuz ve etkileyici quest'ler yazabileceğinizi detaylıca ele alacağız.
1. Lua Diline Hakim Olun
Metin2 quest sistemleri genellikle Lua dilinde yazılmaktadır. Quest yazımında başarılı olmak için Lua programlama diline hâkim olmanız gerekir. Temel sentaks, değişken tanımlamaları, fonksiyonlar ve döngüler gibi konuları öğrenmek,.quest yazımının temelidir.
2. Quest Yapısını Anlayın
Her quest, begin ve end blokları arasında tanımlanır. Quest adı benzersiz olmalıdır. Örneğin:
quest quest_ismi begin
state start begin
when login or levelup begin
say('Hoş geldin!')
end
end
end
3. Trigger Kullanımını Doğru Yapın
When ifadesi, belirli olaylar gerçekleştiğinde quest'in tetiklenmesini sağlar. Login, levelup, item_use, click gibi trigger'lar kullanılabilir. Trigger seçimleriniz, quest'in akışını doğrudan etkiler.
4. Flag ve State Yönetimi
Questlerde durum yönetimi çok önemlidir. Oyuncunun quest tamamlama statüsünü takip etmek için flag kullanılır. Questin hangi aşamada olduğunu belirtmek için ise state yapısı kullanılır. Hatalı state yönetimi, quest çakışmalarına yol açabilir.
5. NPC ve Mob Entegrasyonu
Questlerde NPC'lerle etkileşim ve belirli canavarları öldürme gibi görevler yaygındır. NPC'lerin dialogları, mob'ların spawn noktaları ve düşürdüğü itemler gibi ayarlamalar, quest'in işleyişini etkiler. NPC ve mob ID'lerini doğru kullanmak önemlidir.
6. Timer Kullanımı
Zaman bazlı görevler için timer kullanılır. Günlük görevler (daily quest), sınırlı süreli etkinlikler gibi senaryolarda timer oldukça faydalıdır. Zamanlayıcılarla questin süresini kontrol edebilirsiniz.
7. Reward Sistemini Etkinleştirin
Quest tamamlandığında oyuncuya ödül verilmesi için reward sistemini iyi planlamalısınız. Item, EXP, gold veya özel efektler gibi ödüller sunulabilir. pc.give_item2, pc.give_exp2 gibi fonksiyonlar kullanılır.
8. Debug ve Test Etme
Quest yazarken hatalar kaçınılmazdır. Debug yaparak questin her adımını test etmelisiniz. Hata mesajlarını okuyarak sorunları çözebilirsiniz. Hatalı quest, sunucuda ciddi sorunlara neden olabilir.
9. Quest Zincirleri Kurun
Tekil görevlerden ziyade, birbiriyle bağlantılı quest zincirleri (chain quest) daha etkileyici bir deneyim sunar. Önceki questlerin tamamlanması sonraki questlerin açılmasını sağlayabilir.
10. Performansı Göz önünde Bulundurun
Questlerin fazla karmaşık olması sunucu performansını etkileyebilir. Gereksiz tekrarlardan, yüksek CPU tüketen kodlardan kaçınmalısınız. Optimize edilmiş kod, daha kararlı bir sunucu çalışmasına yardımcı olur.
11. Dökümantasyon Kullanın
Metin2 geliştiricileri için mevcut olan dökümantasyonları ve örnek quest scriptlerini incelemek, yeni fikirler edinmenizi sağlar. Metin2Lobby gibi sitelerde paylaşılan örneklerden yararlanabilirsiniz.
12. Topluluk Geri Bildirimleri
Oyuncuların geri bildirimleri, questlerin kullanıcı dostu ve eğlenceli olup olmadığını gösterir. Oyuncuların_questleri anlayışı ve kolay erişebilirliği, deneyimi artırır.
Quest yazımı, Metin2 sunucularında kaliteli içerik sunmanın temel taşlarından biridir. Bu altın kuralları uygulayarak, hem teknik olarak sağlam hem de kullanıcı odaklı quest sistemleri geliştirebilirsiniz.
12 Golden Tips and Notes for Writing Quests
In Metin2 servers, the quest system is crucial for enriching player experience and increasing in-game interaction. Writing quests requires both technical knowledge and creativity. In this article, we will elaborate on 12 golden rules and notes related to Metin2 quest systems to help you write high-quality, error-free, and engaging quests.
1. Master the Lua Language
Metin2 quests are generally written in Lua. To succeed in writing quests, you must be proficient in the Lua programming language. Understanding basic syntax, variable definitions, functions, and loops is fundamental to quest development.
2. Understand the Quest Structure
Every quest is defined between begin and end blocks. The quest name must be unique. Example:
quest quest_name begin
state start begin
when login or levelup begin
say('Welcome!')
end
end
end
3. Use Triggers Correctly
The when statement triggers the quest when certain events occur. Triggers such as login, levelup, item_use, click can be used. Your choice of triggers directly affects the flow of the quest.
4. Manage Flags and States
State management is very important in quests. To track the player's quest completion status, use flag. To indicate which stage the quest is at, use the state structure. Incorrect state management can lead to quest conflicts.
5. Integrate NPCs and Mobs
Interactions with NPCs and killing specific monsters are common in quests. Settings like NPC dialogs, monster spawn points, and drop items affect how the quest operates. Using correct NPC and mob IDs is essential.
6. Use Timers
Timers are useful for time-based quests. Daily quests, limited-time events, and similar scenarios benefit from timers. You can control the duration of your quest using timers.
7. Activate the Reward System
To give rewards upon quest completion, you need to plan your reward system well. Rewards such as items, EXP, gold, or special effects can be granted using functions like pc.give_item2 and pc.give_exp2.
8. Debug and Test
Mistakes are inevitable while writing quests. You should debug and test every step of your quest. By reading error messages, you can resolve issues. Faulty quests may cause serious problems on the server.
9. Create Quest Chains
Instead of isolated quests, interconnected quest chains provide a more engaging experience. Completing one quest can unlock the next, forming a chain.
10. Consider Performance
Overly complex quests can impact server performance. Avoid unnecessary repetitions and code that consumes high CPU resources. Optimized code helps ensure stable server operation.
11. Use Documentation
Review existing documentation and sample quest scripts available for Metin2 developers to gain new ideas. Sites like Metin2Lobby offer helpful examples.
12. Community Feedback
Player feedback indicates whether quests are user-friendly and enjoyable. Making quests understandable and accessible enhances the overall experience.
Writing quests is one of the core elements for delivering quality content in Metin2 servers. By applying these golden rules, you can develop technically sound and user-focused quest systems.
