Merhabalar, siz değerli TURKMMO üyelerine quest kodlamayı öğreteceğim merak edenlerinizin çok olduğunu biliyorum hele ki şu metin2'yi hurcalayan değiştirmeye çalışan arkadaşlar merakla dinlesin.
Arkadaşlar quest yazmak için bir takım dosyalar oluşturmamız gereklidir bunların temelinde NPC'de kullanmayı öğretmek istiyorum.
(Gerekli Program: Filezilla)
NPC'de kullanacağınız quest için /usr/game/share/locale/turkey/quest/object/ bölümüne bir klasör açıyoruz ve klasörün adını npc'nin kodunu yapıyoruz örnek vereyim;
/usr/game/share/locale/turkey/quest/object/ ' in içine Seon-Hae npc'sinin koduyla bir klasör açıyorum 20095 ' dir seon-hae'nin kodu açtıktan sonra /usr/game/share/locale/turkey/quest/object/20095 içine giriyoruz ve onun içine de bir klasör açıyoruz klasörümüzün adı chat olacak yani tıklayan oyuncuyla konuşacak ama yazıyla ...
Masaüstüne npcmiz.start.0.arg uzantılı bir dosya oluşturuyoruz ve not defteri veya notepad++ ile açıp örn: "Kutsama Küresi Al" yazıyoruz ve kaydediyoruz .
Arg uzantısı hangisi hakkında konuşacağını belirtir, konuşacağı konuya tıklayıncada script yani kodlar birşey verecekmi ne konuşacaklar onları yazacağız.
Script yapmak için de yine masaüstüne npcmiz.start.0.script uzantılı bir dosya oluşturuyoruz .
Ve notepad++ veya not defteri ile açıyoruz;
say_title : Konuşmanın başlığı veya konuşan NPC'nin adını yazarsınız örnek vereyim
say_title ( "Seon-Hae" ) diye yazılır ve konuşmanın sahibi veya başlığı bu olur.
say : Türkçe anlamıyla konuşmak normal konuşacağı yazıları yazarsınız bunuda örnek vereyim.
say ( "Kutsama Küresi mi istedin?" )
local opzioni = select
Bunun anlamıysa şıklardan birini seçmektir evet veya hayır evet derse kutsama kürelerini verecek hayır derse konuşmayı biterecek örnek vereyim hemen
local opzioni = select ( "Evet" , "Hayır" )
1'i yani evet i seçerse ne yapsın , 2'yi yani hayır ı seçerse ne yapsın onların kodlamasıda çok kolay
( kodlar )
elseif opzioni == 2 then
say ( "Keyfin bilir istemiyorsan!" )
say ( "Ama fikrin degisirse beklerim." )
say ( "" )
say ( "" )
end
elseif opzioni ( 2'yi yani hayır'ı seçtiyse bunları söyleyip konuşmayı biterecek bunu en alta yazın daha iyi olur . )
if opzioni == 1 then
say ("Kutsama Küresi verildi.")
pc . give_item2 ( "70024" , 1 )
end
1'i yani evet ' i seçerse 70024 (kutsama küresinin kodu) 1 ise adetidir kutsama küresi birleşmediği için 1 den fazla yapmayın pc . give_item2 item'i karaktere verme kodudur. Kutsama Küresi verildi yazısından sonra küreyi veriyor ve konuşmayı bitiriyor. Kodları yazıp kaydettikten sonra birde when dosyası oluşturmak lazım masaüstüne ne işe yaradığını bilmiyorum ama o olmazsa npc olmaz diye biliyorum hemen masaüstüne npcmiz.start.0.when uzantılı when oluşturduk içini boş bırakın birşey yazmayın.
Son işlemler server'a aktarmak;
Filezilla'ya giriniz /usr/game/share/locale/turkey/quest/object/20095/chat klasörüne masaüstüne oluşturduğumuz uzantılı materyalleri atıyoruz chat klasörünün içine atıyoruz daha sonra Putty'ye girip reboot çekiyoruz, reboot bittikten sonra oyunu açıyoruz /m 20095 yazın oyundan NPC'de işleminizin yer aldığını göreceksiniz .
Şimdiden hayırlı olsun .
Ancak tıklama ayarı yapılmadıysa npc'ye tıklayınca hiçbir şey olmaz, onuda navicattan on_click ayarını yapmalısınız google'da vardır biraz araştırın forumdada var, npc kodlamak yapmak sabır ister hatalarınız olacaktır üzülmeyin zaman herşeyi değiştirecektir.
Beni sonuna kadar okuduğunuz için teşekkür ediyorum, Tiquanzex yani gerçek adımla M.Sercan Babacan iyi günler diliyorum gece gece uğraştım sizler için yazdım + Rep hak ediyorumdur artık :ka19:
Kodlar bakidir, bir sürü kod vardır; server alınca bütün npc'lere bakın editleyin hemde nasıl yapılacağının kodunu öğrenirsiniz ben sadece kutsama küresi vermenin kodunu yaptım itemde verebilirsiniz onuda siz değiştirin kodunu felan yazılarını yapın pratik düşünün
Quest Yazma; NPC'ye Koyma
Metin2 Lobby olarak, Metin2 sunucularında quest geliştirme sürecini daha iyi anlayabilmek adına quest yazma konusunu detaylıca ele alıyoruz. Bu yazıda özellikle NPC'ye quest yazma sürecine odaklanarak, quest sistemleri, Lua script kullanımı ve quest geliştirme süreçleri hakkında kapsamlı bilgiler sunacağız. Metin2 sunucularında quest sistemi, oyuncuların ilerlemesini yönlendiren en temel unsurlardan biridir. Doğru şekilde tasarlanmış questler, oyuncu deneyimini artırır ve sunucunuzun sadık kitle kazanmasını sağlar.
Metin2 Quest Sistemi Nedir?
Metin2 oyununda quest sistemi, oyuncuların belirli görevleri tamamlayarak ödüller kazanmalarını sağlayan yapıdır. Questler genellikle NPC’ler üzerinden başlatılır. Oyuncu, bir NPC’ye konuşarak questi başlatabilir, görevleri yerine getirip tekrar NPC’ye dönerek ödülü alabilir. Bu sistem, hem oyun içi hikâyeyi ilerletmede hem de oyuncuların sunucuya olan bağlılığını artırmada büyük rol oynar.
NPC'ye Quest Yazma Süreci
NPC’ye quest yazmak için öncelikle Lua dili bilgisi gereklidir. Metin2 quest sistemleri Lua tabanlıdır. Quest dosyaları genellikle .lua uzantılıdır ve questmanager üzerinden çalışır. Bir quest yazarken aşağıdaki yapıları kullanmak gerekir:
- quest begin: Quest başlatma bloğu
- quest end: Quest bitirme bloğu
- state start: Questin başlangıç durumu
- state __complete: Questin tamamlanma durumu
- say, chat, give_item, kill_monster: Temel quest komutları
NPC'ye Quest Atama
NPC’ye quest atamak için önce questin yazılması, ardından NPC'nin konuşma menüsüne questin entegre edilmesi gerekir. Bu işlem genellikle locale/client/locale/quest_list.lua dosyasında tanımlanır. Quest listesi doğru şekilde tanımlanmadığında NPC, questi sunamaz.
Quest Trigger ve Timer Kullanımı
Quest trigger, oyuncunun questi başlatması için belirli bir eylem gerçekleştirmesiyle tetiklenen sistemdir. Örneğin, bir NPC’ye tıkladığında questin başlaması gibi. Timer ise questin belirli aralıklarla kontrol edilmesini veya belli bir süre sonra bitebilmesini sağlar. Bu yapılar, aktif quest sistemlerinde sıkça kullanılır.
Quest Debug ve Hata Ayıklama
Quest yazarken hatalar kaçınılmazdır. Quest debug işlemleri için log kayıtları önemlidir. Sunucu tarafında questin nerede hata verdiğini görmek için sys_log fonksiyonu kullanılabilir. Ayrıca, questin doğru çalışıp çalışmadığını test etmek için localhost üzerinde küçük sunucular kurulabilir.
Daily Quest ve Reward Sistemleri
Daily quest, oyuncuların her gün yapabileceği görevlerdir. Bu questler genellikle günlük ödül sistemleriyle desteklenir. Reward (ödül) kısmı, oyuncunun questi tamamlaması halinde alacağı ödülleri tanımlar. Item, EXP veya para gibi farklı ödüller verilebilir.
Metin2 Lobby olarak, quest sistemleri konusunda tecrübeli geliştiricilerle çalışarak, en iyi quest örneklerini ve scriptleri sizlere sunuyoruz. Quest yazımı ile ilgili daha fazla bilgi almak isterseniz sitemizi ziyaret edebilir, güncel quest scriptlerine ulaşabilirsiniz.
Writing Quests; Assigning to NPCs
Metin2 Lobby as, in order to better understand the process of quest development on Metin2 servers, we are examining the topic of writing quests in detail. In this article, we particularly focus on the process of assigning quests to NPCs, providing comprehensive information about quest systems, Lua scripting usage, and quest development. The quest system in Metin2 is one of the most fundamental elements that guide player progression. Well-designed quests enhance the gaming experience and help your server gain loyal players.
What is the Metin2 Quest System?
In the game Metin2, the quest system allows players to complete certain tasks and earn rewards. Quests usually start through NPCs. A player can initiate a quest by talking to an NPC, fulfill the tasks, then return to the NPC to receive the reward. This system plays a major role in advancing the in-game story and increasing player retention on your server.
The Process of Writing a Quest for NPCs
To write a quest for an NPC, you first need knowledge of the Lua language. Metin2 quest systems are Lua-based. Quest files are typically .lua extensions and run via the questmanager. When writing a quest, you should use the following structures:
- quest begin: Starts the quest block
- quest end: Ends the quest block
- state start: Defines the starting state of the quest
- state __complete: Defines the completion state of the quest
- say, chat, give_item, kill_monster: Basic quest commands
Assigning Quests to NPCs
To assign a quest to an NPC, the quest must first be written and then integrated into the NPC's dialogue menu. This process is generally defined in the locale/client/locale/quest_list.lua file. If the quest list is not properly configured, the NPC will not be able to offer the quest.
Using Quest Triggers and Timers
A quest trigger is activated when a player performs a specific action to start the quest. For example, clicking on an NPC to start the quest. A timer enables the quest to be checked periodically or to end after a certain amount of time. These structures are commonly used in active quest systems.
Debugging and Error Handling in Quests
Mistakes are inevitable when writing quests. Quest debugging relies heavily on log records. To see where the quest fails on the server side, you can use the sys_log function. Additionally, you can set up local test servers to check whether the quest runs correctly.
Daily Quests and Reward Systems
Daily quests are tasks players can perform every day. These quests often come with daily reward systems. The reward section defines what players receive upon completing the quest. Rewards can vary, including items, EXP, or gold.
As Metin2 Lobby, we work with experienced developers to provide you with the best examples of quest systems and scripts. Visit our site to learn more about quest writing and access updated quest scripts.
Arkadaşlar quest yazmak için bir takım dosyalar oluşturmamız gereklidir bunların temelinde NPC'de kullanmayı öğretmek istiyorum.
(Gerekli Program: Filezilla)
NPC'de kullanacağınız quest için /usr/game/share/locale/turkey/quest/object/ bölümüne bir klasör açıyoruz ve klasörün adını npc'nin kodunu yapıyoruz örnek vereyim;
/usr/game/share/locale/turkey/quest/object/ ' in içine Seon-Hae npc'sinin koduyla bir klasör açıyorum 20095 ' dir seon-hae'nin kodu açtıktan sonra /usr/game/share/locale/turkey/quest/object/20095 içine giriyoruz ve onun içine de bir klasör açıyoruz klasörümüzün adı chat olacak yani tıklayan oyuncuyla konuşacak ama yazıyla ...
Masaüstüne npcmiz.start.0.arg uzantılı bir dosya oluşturuyoruz ve not defteri veya notepad++ ile açıp örn: "Kutsama Küresi Al" yazıyoruz ve kaydediyoruz .
Arg uzantısı hangisi hakkında konuşacağını belirtir, konuşacağı konuya tıklayıncada script yani kodlar birşey verecekmi ne konuşacaklar onları yazacağız.
Script yapmak için de yine masaüstüne npcmiz.start.0.script uzantılı bir dosya oluşturuyoruz .
Ve notepad++ veya not defteri ile açıyoruz;
say_title : Konuşmanın başlığı veya konuşan NPC'nin adını yazarsınız örnek vereyim
say_title ( "Seon-Hae" ) diye yazılır ve konuşmanın sahibi veya başlığı bu olur.
say : Türkçe anlamıyla konuşmak normal konuşacağı yazıları yazarsınız bunuda örnek vereyim.
say ( "Kutsama Küresi mi istedin?" )
local opzioni = select
Bunun anlamıysa şıklardan birini seçmektir evet veya hayır evet derse kutsama kürelerini verecek hayır derse konuşmayı biterecek örnek vereyim hemen
local opzioni = select ( "Evet" , "Hayır" )
1'i yani evet i seçerse ne yapsın , 2'yi yani hayır ı seçerse ne yapsın onların kodlamasıda çok kolay
( kodlar )
elseif opzioni == 2 then
say ( "Keyfin bilir istemiyorsan!" )
say ( "Ama fikrin degisirse beklerim." )
say ( "" )
say ( "" )
end
elseif opzioni ( 2'yi yani hayır'ı seçtiyse bunları söyleyip konuşmayı biterecek bunu en alta yazın daha iyi olur . )
if opzioni == 1 then
say ("Kutsama Küresi verildi.")
pc . give_item2 ( "70024" , 1 )
end
1'i yani evet ' i seçerse 70024 (kutsama küresinin kodu) 1 ise adetidir kutsama küresi birleşmediği için 1 den fazla yapmayın pc . give_item2 item'i karaktere verme kodudur. Kutsama Küresi verildi yazısından sonra küreyi veriyor ve konuşmayı bitiriyor. Kodları yazıp kaydettikten sonra birde when dosyası oluşturmak lazım masaüstüne ne işe yaradığını bilmiyorum ama o olmazsa npc olmaz diye biliyorum hemen masaüstüne npcmiz.start.0.when uzantılı when oluşturduk içini boş bırakın birşey yazmayın.
Son işlemler server'a aktarmak;
Filezilla'ya giriniz /usr/game/share/locale/turkey/quest/object/20095/chat klasörüne masaüstüne oluşturduğumuz uzantılı materyalleri atıyoruz chat klasörünün içine atıyoruz daha sonra Putty'ye girip reboot çekiyoruz, reboot bittikten sonra oyunu açıyoruz /m 20095 yazın oyundan NPC'de işleminizin yer aldığını göreceksiniz .
Ancak tıklama ayarı yapılmadıysa npc'ye tıklayınca hiçbir şey olmaz, onuda navicattan on_click ayarını yapmalısınız google'da vardır biraz araştırın forumdada var, npc kodlamak yapmak sabır ister hatalarınız olacaktır üzülmeyin zaman herşeyi değiştirecektir.
Beni sonuna kadar okuduğunuz için teşekkür ediyorum, Tiquanzex yani gerçek adımla M.Sercan Babacan iyi günler diliyorum gece gece uğraştım sizler için yazdım + Rep hak ediyorumdur artık :ka19:
Kodlar bakidir, bir sürü kod vardır; server alınca bütün npc'lere bakın editleyin hemde nasıl yapılacağının kodunu öğrenirsiniz ben sadece kutsama küresi vermenin kodunu yaptım itemde verebilirsiniz onuda siz değiştirin kodunu felan yazılarını yapın pratik düşünün
Quest Yazma; NPC'ye Koyma
Metin2 Lobby olarak, Metin2 sunucularında quest geliştirme sürecini daha iyi anlayabilmek adına quest yazma konusunu detaylıca ele alıyoruz. Bu yazıda özellikle NPC'ye quest yazma sürecine odaklanarak, quest sistemleri, Lua script kullanımı ve quest geliştirme süreçleri hakkında kapsamlı bilgiler sunacağız. Metin2 sunucularında quest sistemi, oyuncuların ilerlemesini yönlendiren en temel unsurlardan biridir. Doğru şekilde tasarlanmış questler, oyuncu deneyimini artırır ve sunucunuzun sadık kitle kazanmasını sağlar.
Metin2 Quest Sistemi Nedir?
Metin2 oyununda quest sistemi, oyuncuların belirli görevleri tamamlayarak ödüller kazanmalarını sağlayan yapıdır. Questler genellikle NPC’ler üzerinden başlatılır. Oyuncu, bir NPC’ye konuşarak questi başlatabilir, görevleri yerine getirip tekrar NPC’ye dönerek ödülü alabilir. Bu sistem, hem oyun içi hikâyeyi ilerletmede hem de oyuncuların sunucuya olan bağlılığını artırmada büyük rol oynar.
NPC'ye Quest Yazma Süreci
NPC’ye quest yazmak için öncelikle Lua dili bilgisi gereklidir. Metin2 quest sistemleri Lua tabanlıdır. Quest dosyaları genellikle .lua uzantılıdır ve questmanager üzerinden çalışır. Bir quest yazarken aşağıdaki yapıları kullanmak gerekir:
- quest begin: Quest başlatma bloğu
- quest end: Quest bitirme bloğu
- state start: Questin başlangıç durumu
- state __complete: Questin tamamlanma durumu
- say, chat, give_item, kill_monster: Temel quest komutları
NPC'ye Quest Atama
NPC’ye quest atamak için önce questin yazılması, ardından NPC'nin konuşma menüsüne questin entegre edilmesi gerekir. Bu işlem genellikle locale/client/locale/quest_list.lua dosyasında tanımlanır. Quest listesi doğru şekilde tanımlanmadığında NPC, questi sunamaz.
Quest Trigger ve Timer Kullanımı
Quest trigger, oyuncunun questi başlatması için belirli bir eylem gerçekleştirmesiyle tetiklenen sistemdir. Örneğin, bir NPC’ye tıkladığında questin başlaması gibi. Timer ise questin belirli aralıklarla kontrol edilmesini veya belli bir süre sonra bitebilmesini sağlar. Bu yapılar, aktif quest sistemlerinde sıkça kullanılır.
Quest Debug ve Hata Ayıklama
Quest yazarken hatalar kaçınılmazdır. Quest debug işlemleri için log kayıtları önemlidir. Sunucu tarafında questin nerede hata verdiğini görmek için sys_log fonksiyonu kullanılabilir. Ayrıca, questin doğru çalışıp çalışmadığını test etmek için localhost üzerinde küçük sunucular kurulabilir.
Daily Quest ve Reward Sistemleri
Daily quest, oyuncuların her gün yapabileceği görevlerdir. Bu questler genellikle günlük ödül sistemleriyle desteklenir. Reward (ödül) kısmı, oyuncunun questi tamamlaması halinde alacağı ödülleri tanımlar. Item, EXP veya para gibi farklı ödüller verilebilir.
Metin2 Lobby olarak, quest sistemleri konusunda tecrübeli geliştiricilerle çalışarak, en iyi quest örneklerini ve scriptleri sizlere sunuyoruz. Quest yazımı ile ilgili daha fazla bilgi almak isterseniz sitemizi ziyaret edebilir, güncel quest scriptlerine ulaşabilirsiniz.
Writing Quests; Assigning to NPCs
Metin2 Lobby as, in order to better understand the process of quest development on Metin2 servers, we are examining the topic of writing quests in detail. In this article, we particularly focus on the process of assigning quests to NPCs, providing comprehensive information about quest systems, Lua scripting usage, and quest development. The quest system in Metin2 is one of the most fundamental elements that guide player progression. Well-designed quests enhance the gaming experience and help your server gain loyal players.
What is the Metin2 Quest System?
In the game Metin2, the quest system allows players to complete certain tasks and earn rewards. Quests usually start through NPCs. A player can initiate a quest by talking to an NPC, fulfill the tasks, then return to the NPC to receive the reward. This system plays a major role in advancing the in-game story and increasing player retention on your server.
The Process of Writing a Quest for NPCs
To write a quest for an NPC, you first need knowledge of the Lua language. Metin2 quest systems are Lua-based. Quest files are typically .lua extensions and run via the questmanager. When writing a quest, you should use the following structures:
- quest begin: Starts the quest block
- quest end: Ends the quest block
- state start: Defines the starting state of the quest
- state __complete: Defines the completion state of the quest
- say, chat, give_item, kill_monster: Basic quest commands
Assigning Quests to NPCs
To assign a quest to an NPC, the quest must first be written and then integrated into the NPC's dialogue menu. This process is generally defined in the locale/client/locale/quest_list.lua file. If the quest list is not properly configured, the NPC will not be able to offer the quest.
Using Quest Triggers and Timers
A quest trigger is activated when a player performs a specific action to start the quest. For example, clicking on an NPC to start the quest. A timer enables the quest to be checked periodically or to end after a certain amount of time. These structures are commonly used in active quest systems.
Debugging and Error Handling in Quests
Mistakes are inevitable when writing quests. Quest debugging relies heavily on log records. To see where the quest fails on the server side, you can use the sys_log function. Additionally, you can set up local test servers to check whether the quest runs correctly.
Daily Quests and Reward Systems
Daily quests are tasks players can perform every day. These quests often come with daily reward systems. The reward section defines what players receive upon completing the quest. Rewards can vary, including items, EXP, or gold.
As Metin2 Lobby, we work with experienced developers to provide you with the best examples of quest systems and scripts. Visit our site to learn more about quest writing and access updated quest scripts.
