Çoklu NPC Sistemi[LUA]

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

Admin

Metin2Lobby
Yönetici
Founder
Katılım
6 Mayıs 2022
Mesajlar
52,647
Ticaret : 1 / 0 / 0
Merhabalar,

Yine istek üzerine kodlandı. Basit bir quest o yüzden üzerinde fazla durmayacağım.


b5ZpJZ.jpg

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'de Çoklu NPC Sistemi LUA ile Nasıl Geliştirilir?

Metin2 sunucularında quest geliştirme sürecinde, çoklu NPC sistemleri büyük önem taşır. Özellikle LUA tabanlı quest scripting ile geliştirilen bu sistemler, oyuncu deneyimini zenginleştirir ve görev akışlarını daha akıcı hale getirir.

NPC Nedir ve Quest Sistemine Etkisi
NPC (Non-Player Character), yani oyuncu olmayan karakterlerdir. Metin2'de NPC'ler, oyunculara görevler veren, ödüller dağıtan veya belirli eylemleri tetikleyen temel yapı taşlarıdır. Standart sistemlerde bir NPC sadece bir görevi yönetir ancak gelişmiş quest sistemlerinde bir NPC birden fazla görevi yönetebilir ya da farklı NPC'ler birbirleriyle entegre çalışabilir.

LUA ile Çoklu NPC Sistemi Nedir?
LUA, Metin2'nin quest sistemlerinde kullanılan betik dili olarak bilinir. Çoklu NPC sistemi, birden fazla NPC'nin aynı quest üzerinden koordineli çalışmasını sağlar. Bu sayede oyuncuya daha karmaşık görev zincirleri sunulabilir. Örneğin bir görevin başlangıcı NPC A'da, devamı NPC B'de, sonu ise NPC C'de olabilir.

Sistem Kurulumu ve Yapılandırması
Bu sistemin kurulumu için öncelikle LUA dosyalarında gerekli fonksiyonlar tanımlanmalıdır. NPC'lerin görev durumlarını kontrol eden flag'ler, görevin hangi aşamada olduğunu belirten state'ler ve görev tetiklemeleri için trigger'lar kullanılır. Bu yapıyı doğru kurmak, quest'in sağlıklı işlemesi için kritiktir.

Örnek Kullanım Senaryosu
Örnek olarak, bir oyuncu 'Görev Başlat' seçeneğini NPC A'dan seçer. Quest başlar ve oyuncudan belirli bir item toplaması istenir. Item toplandığında NPC B'ye gidip teslim eder. Sonrasında NPC C'de görev tamamlanır ve ödül alınır. Bu süreçte tüm NPC'ler aynı quest üzerinden haberleşir.

Hata Ayıklama ve Debug İşlemleri
Quest geliştirme sırasında karşılaşılan en yaygın sorunlardan biri, NPC'lerin görev durumlarını doğru okuyamamasıdır. Bu gibi durumlarda LUA scriptlerde debug işlemleri yapılır. Flag kontrolleri, timer ayarlamaları ve quest state geçişleri detaylı incelenmelidir.

Avantajları
Çoklu NPC sistemi, oyuncuların görevleri daha interaktif ve dinamik yaşamasını sağlar. Ayrıca sunucu yöneticileri için quest yönetimini kolaylaştırır. Görev zincirleri daha uzun ve zengin hale getirilebilir. Bu da oyuncu sadakati ve sunucu popülerliği açısından büyük artı sağlar.

Sonuç
Metin2'de LUA tabanlı çoklu NPC sistemleri, quest geliştirmenin ileri düzey tekniklerindendir. Doğru yapılandırıldığında hem oyuncular hem de sunucu sahipleri için faydalı sonuçlar doğurur. Bu sistemi öğrenmek isteyen geliştiricilerin, quest scripting konusunda temel bilgiye sahip olması gerekir.


How to Develop Multi-NPC System in Metin2 with LUA?

In the process of quest development on Metin2 servers, multi-NPC systems are of great importance. Especially with LUA-based quest scripting, these systems enrich the player experience and make quest flows more fluid.

What is NPC and Its Impact on Quest Systems
NPCs (Non-Player Characters) are characters that are not controlled by players. In Metin2, NPCs are fundamental building blocks that provide quests to players, distribute rewards, or trigger certain actions. In standard systems, one NPC manages only one quest, but in advanced quest systems, an NPC can manage multiple quests or different NPCs can work in coordination.

What is the Multi-NPC System with LUA?
LUA is known as the scripting language used in Metin2's quest systems. The multi-NPC system allows multiple NPCs to operate in coordination through the same quest. This enables more complex quest chains to be presented to the player. For example, a quest might start at NPC A, continue at NPC B, and end at NPC C.

System Installation and Configuration
To set up this system, necessary functions must first be defined in the LUA files. Flags controlling the quest status of NPCs, states indicating which stage the quest is in, and triggers for initiating quests are used. Properly setting up this structure is critical for the quest to run smoothly.

Example Use Case
As an example, a player selects 'Start Quest' from NPC A. The quest begins, and the player is asked to collect a specific item. Once collected, they go to NPC B to deliver it. Finally, the quest is completed at NPC C where the reward is claimed. Throughout this process, all NPCs communicate via the same quest.

Debugging and Error Handling
One of the most common issues during quest development is NPCs failing to correctly read quest statuses. In such cases, debugging is performed within the LUA scripts. Checks on flags, timer adjustments, and quest state transitions must be thoroughly reviewed.

Advantages
The multi-NPC system allows players to experience quests in a more interactive and dynamic way. It also simplifies quest management for server administrators. Quest chains can become longer and richer, significantly increasing player retention and server popularity.

Conclusion
Multi-NPC systems based on LUA in Metin2 are among the advanced techniques in quest development. When configured correctly, they yield beneficial outcomes for both players and server owners. Developers interested in learning this system should have foundational knowledge in quest scripting.
 

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

Benzer konular

Geri
Üst Alt