Merhabalar,
Yine istek üzerine kodlandı. Basit bir quest o yüzden üzerinde fazla durmayacağım.
1-) usr/game/share/locale/turkey/quest bölümüne "npcac.lua" adında bir lua dosyası açalım. Daha sonra dosyasının içine aşağıdaki kodları yazalım:
Bunu kaydedip çıkıyoruz.
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc npcac.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra 20087 kodlu NPC'den sistemi kontrol edebilirsiniz.
NOT: Şuan 3 tane NPC kayıtlıdır. Eğer daha fazla NPC eklemek istiyorsanız yapmanız gereken şudur:
Bu kısma NPC'ye tıklanınca görülecek ismi ekliyoruz.(ÇOK ÇOK önemli, isimlerin sonu " ı " harfi ile bitmemeli! Eğer " ı " harfi ile biterse sistem çalışmaz. Örneğin: Silahçı yada Zırhçı yapamazsınız!)
Daha sonra aşağıdaki kısma da aynı şekilde ekliyorsunuz:
Karşısındaki 4,5 değerlerini siz player veritabanından shop.sql tablosuna girip bulacaksınız.
Shop.sql'i açınca: vnum sütunu buradaki 1,2,3,4,5 değerlerini temsil eder. npc_vnum'sa o değerlerin hangi NPC olacağını. Örneğin shop.sql'i açtığınızda vnum'u 4 yapıp npc_vnum'u 9001 yapmalısınız. Sistemin mantığı bu şekilde.(Buradaki ilk isimler Zirhci, Balikci, Silahci... yukarıdaki kısımla aynı isimde ve aynı sırada olmalı yoksa sistem karışır.)
Metin2 İçin Çoklu NPC Sistemi LUA ile Geliştirme Rehberi
Metin2 sunucularında quest sistemleri, oyuncuların oyun içindeki deneyimini zenginleştiren önemli unsurlardır. Bu sistemlerin en gelişmiş örneklerinden birisi olan 'Çoklu NPC Sistemi', LUA diliyle yazılmıştır ve Metin2 geliştiricileri tarafından sıkça tercih edilmektedir.
NPC Nedir?
NPC (Non-Player Character), yani oyuncu olmayan karakterlerdir. Metin2'de NPC'ler, oyunculara görev veren, envanter sunan veya özel etkileşimler sağlayan sanal karakterlerdir. Quest sistemlerinde merkezi roller üstlenirler.
LUA Dili ile NPC Sistemleri
Metin2,.quest sistemleri LUA dilinde yazılmaktadır. LUA, hafif ve esnek bir betik dili olduğu için quest geliştiricileri tarafından tercih edilir. Çoklu NPC sistemi, birden fazla NPC'nin farklı görevlerle oyuncuya etkileşim sunmasını sağlar. Bu sistem,.quest dosyalarının daha organize ve dinamik çalışmasını sağlar.
Çoklu NPC Sisteminin Özellikleri
• Aynı.quest dosyası içinde birden fazla NPC ile etkileşim
• Görev zincirleri ile kompleks storyline
• Hızlı ve optimize scriptler
• Oyuncu durum takibi (state, flag)
Quest Dosyası Yapısı
Çoklu NPC sistemi, bir LUA.quest dosyası içinde tanımlanır. Her NPC,.quest dosyasında ayrı bir fonksiyon olarak tanımlanabilir. Bu fonksiyonlar, oyuncu NPC ile etkileşime girdiğinde çağrılır.
NPC Tanımı Örneği:
Quest Trigger ve Timer Kullanımı
Quest sistemlerinde trigger (tetikleyici) ve timer (zamanlayıcı) önemli kavramlardır. Trigger, belirli bir eylemle.quest başlatılmasını sağlar. Timer ise belirli süreli görevler için kullanılır. Çoklu NPC sisteminde bu özellikler, görevlerin zamanlamasını ve tetiklenmesini yönetmek için idealdir.
Reward (Ödül) ve Item Yönetimi
NPC'ler, görevler tamamlandığında oyuncuya ödül verebilir. Bu ödüller item, exp veya para olabilir. LUA.quest sisteminde reward işlemleri,.item.add(), party.set_exp() gibi fonksiyonlarla kolayca yapılır.
Debug ve Hata Ayıklama
Quest geliştirme sırasında hatalar oluşabilir. LUA.quest sistemlerinde hata ayıklamak için loglama ve kontrol mekanizmaları kullanılmalıdır. Hatalar,.quest.state, flag, veya syntax hatası olabilir. Geliştiriciler, hata mesajlarını inceleyerek.quest sistemini optimize edebilir.
Daily Quest ve Görev Zincirleri
Daily quest sistemleri, oyuncuların her gün tekrar eden görevleri yapmasını sağlar. Çoklu NPC sistemi ile bu görevler farklı NPC'ler üzerinden yönlendirilebilir. Görev zincirleri ise oyuncunun önceki görevleri tamamlamasına bağlı olarak yeni görevler sunar.
Sonuç
Metin2 için geliştirilen Çoklu NPC Sistemi LUA ile,.quest geliştirme sürecini hem daha esnek hem de kullanıcı dostu hale getirir. Doğru yapılandırılmış bir.quest sistemi, oyuncuların oyun içindeki motivasyonunu artırır. Bu nedenle, özellikle Metin2 sunucularında quest sistemlerinin doğru yönetimi büyük önem taşır.
Kaynak: Metin2 Lobby
Guide to Developing Multi-NPC System in LUA for Metin2
In Metin2 servers, quest systems are crucial elements that enhance the player experience within the game. One of the most advanced examples of these systems is the 'Multi-NPC System', which is written in LUA and frequently used by Metin2 developers.
What is an NPC?
NPC stands for Non-Player Character. In Metin2, NPCs are virtual characters that provide quests to players, offer inventories, or allow special interactions. They play central roles in quest systems.
NPC Systems with LUA Language
Metin2's quest systems are coded in LUA. Since LUA is a lightweight and flexible scripting language, it is preferred by quest developers. The Multi-NPC system allows multiple NPCs to interact with players through different quests. This system helps organize and make.quest files more dynamic.
Features of the Multi-NPC System
• Interaction with multiple NPCs in the same.quest file
• Complex storylines via quest chains
• Fast and optimized scripts
• Player status tracking (state, flag)
Structure of a Quest File
The Multi-NPC system is defined within a LUA.quest file. Each NPC can be defined as a separate function inside the.quest file. These functions are called when the player interacts with the NPC.
Example NPC Definition:
Using Triggers and Timers in Quests
Triggers and timers are important concepts in quest systems. A trigger starts a.quest upon a specific action. A timer is used for timed quests. In the Multi-NPC system, these features help manage the timing and triggering of quests effectively.
Reward and Item Management
NPCs can give rewards to players once quests are completed. These rewards can be items, experience, or gold. In LUA quest systems, reward processes are easily handled using functions like.item.add() or party.set_exp().
Debugging and Error Handling
Errors may occur during quest development. In LUA quest systems, logging and checking mechanisms should be used for debugging. Errors might stem from.quest states, flags, or syntax errors. Developers can optimize their quest systems by reviewing error messages.
Daily Quests and Quest Chains
Daily quest systems allow players to perform repeatable quests each day. With the Multi-NPC system, these quests can be directed through different NPCs. Quest chains present new quests only after previous ones are completed.
Conclusion
The Multi-NPC System developed in LUA for Metin2 makes the quest development process more flexible and user-friendly. Properly configured quest systems increase player motivation within the game. Therefore, correctly managing quest systems in Metin2 servers is of great importance.
Source: Metin2 Lobby
Yine istek üzerine kodlandı. Basit bir quest o yüzden üzerinde fazla durmayacağım.
1-) usr/game/share/locale/turkey/quest bölümüne "npcac.lua" adında bir lua dosyası açalım. Daha sonra dosyasının içine aşağıdaki kodları yazalım:
Kod:
quest npcac begin state start begin when 20087.chat."Çoklu NPC" begin npcKategori = { "Silah Satıcısi", "Balıkçi", "Market", } npcKategoriSay = tonumber(table.getn(npcKategori)) npcKategori[npcKategoriSay + 1 ] = "Kapat" npcKategoriSec = select_table(npcKategori) for i=1,npcKategoriSay,1 do if npcKategoriSec == npcKategoriSay + 1 then return end if npcKategoriSec == i then npc.open_shop(npcac.npcVeri(tostring(npcKategori[i]))) end end end function npcVeri(npcKodu) npcVeri = { ["Silah Satıcısi"] = {1}, ["Balıkçi"] = {2}, ["Market"] = {3} } return npcVeri[npcKodu][1] end end end
Bunu kaydedip çıkıyoruz.
2-)Putty'e geliyoruz.
cd /usr/game/share/locale/turkey/quest yazıp enterliyoruz. Daha sonra şu komutu yazıyoruz.
./qc npcac.lua
Putty ile de işimiz bitti.
3-) Oyuna dönüyoruz ve bir GM karakter ile "/reload q" çekiyoruz.
4-) Daha sonra 20087 kodlu NPC'den sistemi kontrol edebilirsiniz.
NOT: Şuan 3 tane NPC kayıtlıdır. Eğer daha fazla NPC eklemek istiyorsanız yapmanız gereken şudur:
Kod:
npcKategori = { "Silah Satıcısi", "Balıkçi", "Market", "Silahci", "Zırhci" }
Bu kısma NPC'ye tıklanınca görülecek ismi ekliyoruz.(ÇOK ÇOK önemli, isimlerin sonu " ı " harfi ile bitmemeli! Eğer " ı " harfi ile biterse sistem çalışmaz. Örneğin: Silahçı yada Zırhçı yapamazsınız!)
Daha sonra aşağıdaki kısma da aynı şekilde ekliyorsunuz:
Kod:
npcVeri = { ["Silah Satıcısi"] = {1}, ["Balıkçi"] = {2}, ["Market"] = {3}, ["Silahci"] = {4}, ["Zirhci"] = {5} }
Karşısındaki 4,5 değerlerini siz player veritabanından shop.sql tablosuna girip bulacaksınız.
Shop.sql'i açınca: vnum sütunu buradaki 1,2,3,4,5 değerlerini temsil eder. npc_vnum'sa o değerlerin hangi NPC olacağını. Örneğin shop.sql'i açtığınızda vnum'u 4 yapıp npc_vnum'u 9001 yapmalısınız. Sistemin mantığı bu şekilde.(Buradaki ilk isimler Zirhci, Balikci, Silahci... yukarıdaki kısımla aynı isimde ve aynı sırada olmalı yoksa sistem karışır.)
Metin2 İçin Çoklu NPC Sistemi LUA ile Geliştirme Rehberi
Metin2 sunucularında quest sistemleri, oyuncuların oyun içindeki deneyimini zenginleştiren önemli unsurlardır. Bu sistemlerin en gelişmiş örneklerinden birisi olan 'Çoklu NPC Sistemi', LUA diliyle yazılmıştır ve Metin2 geliştiricileri tarafından sıkça tercih edilmektedir.
NPC Nedir?
NPC (Non-Player Character), yani oyuncu olmayan karakterlerdir. Metin2'de NPC'ler, oyunculara görev veren, envanter sunan veya özel etkileşimler sağlayan sanal karakterlerdir. Quest sistemlerinde merkezi roller üstlenirler.
LUA Dili ile NPC Sistemleri
Metin2,.quest sistemleri LUA dilinde yazılmaktadır. LUA, hafif ve esnek bir betik dili olduğu için quest geliştiricileri tarafından tercih edilir. Çoklu NPC sistemi, birden fazla NPC'nin farklı görevlerle oyuncuya etkileşim sunmasını sağlar. Bu sistem,.quest dosyalarının daha organize ve dinamik çalışmasını sağlar.
Çoklu NPC Sisteminin Özellikleri
• Aynı.quest dosyası içinde birden fazla NPC ile etkileşim
• Görev zincirleri ile kompleks storyline
• Hızlı ve optimize scriptler
• Oyuncu durum takibi (state, flag)
Quest Dosyası Yapısı
Çoklu NPC sistemi, bir LUA.quest dosyası içinde tanımlanır. Her NPC,.quest dosyasında ayrı bir fonksiyon olarak tanımlanabilir. Bu fonksiyonlar, oyuncu NPC ile etkileşime girdiğinde çağrılır.
NPC Tanımı Örneği:
Kod:
[BR][/BR]quest multi_npc begin[BR][/BR] state start begin[BR][/BR] when 1234.click begin -- NPC ID 1234[BR][/BR] say('Merhaba, bir görevim var sana!')[BR][/BR] local select = select('Görevi al', 'Vazgeç')[BR][/BR] if select == 1 then[BR][/BR] set_warehouse_size(1)[BR][/BR] say('Görev tamamlandığında buraya dön!')[BR][/BR] end[BR][/BR] end[BR][/BR][BR][/BR] when 5678.click begin -- Farklı NPC, ID 5678[BR][/BR] say('Diğer görev için buraya gel!')[BR][/BR] end[BR][/BR] end[BR][/BR]end[BR][/BR]
Quest Trigger ve Timer Kullanımı
Quest sistemlerinde trigger (tetikleyici) ve timer (zamanlayıcı) önemli kavramlardır. Trigger, belirli bir eylemle.quest başlatılmasını sağlar. Timer ise belirli süreli görevler için kullanılır. Çoklu NPC sisteminde bu özellikler, görevlerin zamanlamasını ve tetiklenmesini yönetmek için idealdir.
Reward (Ödül) ve Item Yönetimi
NPC'ler, görevler tamamlandığında oyuncuya ödül verebilir. Bu ödüller item, exp veya para olabilir. LUA.quest sisteminde reward işlemleri,.item.add(), party.set_exp() gibi fonksiyonlarla kolayca yapılır.
Debug ve Hata Ayıklama
Quest geliştirme sırasında hatalar oluşabilir. LUA.quest sistemlerinde hata ayıklamak için loglama ve kontrol mekanizmaları kullanılmalıdır. Hatalar,.quest.state, flag, veya syntax hatası olabilir. Geliştiriciler, hata mesajlarını inceleyerek.quest sistemini optimize edebilir.
Daily Quest ve Görev Zincirleri
Daily quest sistemleri, oyuncuların her gün tekrar eden görevleri yapmasını sağlar. Çoklu NPC sistemi ile bu görevler farklı NPC'ler üzerinden yönlendirilebilir. Görev zincirleri ise oyuncunun önceki görevleri tamamlamasına bağlı olarak yeni görevler sunar.
Sonuç
Metin2 için geliştirilen Çoklu NPC Sistemi LUA ile,.quest geliştirme sürecini hem daha esnek hem de kullanıcı dostu hale getirir. Doğru yapılandırılmış bir.quest sistemi, oyuncuların oyun içindeki motivasyonunu artırır. Bu nedenle, özellikle Metin2 sunucularında quest sistemlerinin doğru yönetimi büyük önem taşır.
Kaynak: Metin2 Lobby
Guide to Developing Multi-NPC System in LUA for Metin2
In Metin2 servers, quest systems are crucial elements that enhance the player experience within the game. One of the most advanced examples of these systems is the 'Multi-NPC System', which is written in LUA and frequently used by Metin2 developers.
What is an NPC?
NPC stands for Non-Player Character. In Metin2, NPCs are virtual characters that provide quests to players, offer inventories, or allow special interactions. They play central roles in quest systems.
NPC Systems with LUA Language
Metin2's quest systems are coded in LUA. Since LUA is a lightweight and flexible scripting language, it is preferred by quest developers. The Multi-NPC system allows multiple NPCs to interact with players through different quests. This system helps organize and make.quest files more dynamic.
Features of the Multi-NPC System
• Interaction with multiple NPCs in the same.quest file
• Complex storylines via quest chains
• Fast and optimized scripts
• Player status tracking (state, flag)
Structure of a Quest File
The Multi-NPC system is defined within a LUA.quest file. Each NPC can be defined as a separate function inside the.quest file. These functions are called when the player interacts with the NPC.
Example NPC Definition:
Kod:
[BR][/BR]quest multi_npc begin[BR][/BR] state start begin[BR][/BR] when 1234.click begin -- NPC ID 1234[BR][/BR] say('Hello, I have a quest for you!')[BR][/BR] local select = select('Accept Quest', 'Cancel')[BR][/BR] if select == 1 then[BR][/BR] set_warehouse_size(1)[BR][/BR] say('Come back here after completing the quest!')[BR][/BR] end[BR][/BR] end[BR][/BR][BR][/BR] when 5678.click begin -- Different NPC, ID 5678[BR][/BR] say('Come here for the other quest!')[BR][/BR] end[BR][/BR] end[BR][/BR]end[BR][/BR]
Using Triggers and Timers in Quests
Triggers and timers are important concepts in quest systems. A trigger starts a.quest upon a specific action. A timer is used for timed quests. In the Multi-NPC system, these features help manage the timing and triggering of quests effectively.
Reward and Item Management
NPCs can give rewards to players once quests are completed. These rewards can be items, experience, or gold. In LUA quest systems, reward processes are easily handled using functions like.item.add() or party.set_exp().
Debugging and Error Handling
Errors may occur during quest development. In LUA quest systems, logging and checking mechanisms should be used for debugging. Errors might stem from.quest states, flags, or syntax errors. Developers can optimize their quest systems by reviewing error messages.
Daily Quests and Quest Chains
Daily quest systems allow players to perform repeatable quests each day. With the Multi-NPC system, these quests can be directed through different NPCs. Quest chains present new quests only after previous ones are completed.
Conclusion
The Multi-NPC System developed in LUA for Metin2 makes the quest development process more flexible and user-friendly. Properly configured quest systems increase player motivation within the game. Therefore, correctly managing quest systems in Metin2 servers is of great importance.
Source: Metin2 Lobby
