NPC’lerdeki Buton İsimleri Nasıl Değiştirilir? (Videolu Anlatım İçin Detaylı Rehber)

DeltaSoft

Yönetici
MAREŞAL
Katılım
12 May 2026
Mesajlar
55
Tepkime puanı
34




NPC’LERDEKİ BUTON İSİMLERİ NASIL DEĞİŞTİRİLİR?

Knight Online Development Rehberi | DeltaSoft Sistem Anlatımı






Merhaba arkadaşlar,

Knight Online server geliştirme sürecinde en çok ihtiyaç duyulan sistemlerden biri NPC menü düzenlemeleridir. Bu rehberde NPC’lerin üzerindeki buton isimlerini nasıl değiştireceğinizi, sistemin nasıl çalıştığını ve hangi dosyalara müdahale etmeniz gerektiğini detaylı şekilde anlatıyorum.

Bu sistemi öğrendiğinizde sadece NPC yazılarını değil, tüm quest ve menü sistemini kontrol edebilecek seviyeye gelirsiniz.








NPC SİSTEMİ NASIL ÇALIŞIR?



Knight Online tarafında bir NPC’ye tıkladığınız anda sistem direkt olarak Gameserver üzerinden LUA dosyalarını çalıştırır.

Bu yapı tamamen quest tabanlıdır ve her NPC’nin ayrı bir kontrol dosyası vardır.

Örnek dosya yapısı:

Kod:
239999_Pontus.lua

Bu dosya içerisinde NPC’nin açacağı menüler, event sistemleri ve buton yönlendirmeleri bulunur.

NPC’ye tıklama işlemi aslında bir EVENT tetikleme sürecidir.






QUEST KLASÖR YAPISI



Server tarafında aşağıdaki dizine giriyoruz:

Kod:
Gameserver / Quest

Burada her NPC için ayrı LUA script dosyaları bulunur.

Örneğin Pontus NPC’si için:

Kod:
239999_Pontus.lua

NPC ile ilgili tüm işlemler bu dosya üzerinden yönetilir.

EVENT sistemi de burada devreye girer ve NPC’ye tıklanınca hangi menünün açılacağını belirler.






EVENT SİSTEMİ VE SELECTMSG



NPC’ye tıkladığınızda genellikle ilk çalışan sistem:

Kod:
if EVENT == 100 then

buradaki EVENT 100, NPC’nin ana menüsünü temsil eder.

Devamında SelectMsg sistemi ile butonlar oluşturulur:

Kod:
SelectMsg(UID, 3, -1, 45238, NPC, 45218, 300)

Bu satırın mantığı şöyledir:

- 45218 → NPC üzerinde görünen buton ID’si
- 300 → Butona tıklanınca çalışacak EVENT

Yani oyuncu bu butona bastığında sistem EVENT 300’e yönlenir.






BUTON İSİMLERİNİN KAYNAĞI



NPC üzerindeki görünen yazılar direkt olarak client tarafındaki TBL dosyasından gelir.

Bunun için şu dosyayı kullanırız:

Kod:
Quest_Menu_Us.tbl

Bu dosya tüm NPC menü yazılarını barındırır.

SelectMsg içinde geçen ID’ler burada karşılık bulur.

Örnek:

Kod:
45218 = Upgrade İşlemleri

Bu yazıyı değiştirdiğiniz anda NPC üzerindeki buton ismi de değişir.






TBL DOSYASI NEREDE BULUNUR?



Client klasörüne giriyoruz ve şu dizine ulaşıyoruz:

Kod:
Client / Tbl / Quest_Menu_Us.tbl

Bu dosya Pentagram TBL Editor veya benzeri bir tool ile açılır.

Burada ID’yi bulup karşısındaki yazıyı düzenleyebilirsiniz.






DEĞİŞİKLİK MANTIĞI



Örnek bir SelectMsg satırı:

Kod:
SelectMsg(UID, 3, -1, 45238, NPC, 45218, 300)

Buradaki 45218 ID’sini TBL içerisinde buluyoruz:

Kod:
45218 = Upgrade İşlemleri

Bunu değiştirdiğimizde sistem otomatik olarak NPC’de yeni ismi gösterir:

Kod:
45218 = DeltaSoft Premium Market

Bu işlem tamamen client-side çalışır.






SİSTEMİN GENEL MANTIĞI



Tüm yapı aslında çok basit bir zincire dayanır:

Kod:
NPC → LUA EVENT → SelectMsg → BUTTON ID → TBL FILE → GÖRÜNEN YAZI

Bu mantığı öğrendiğinizde sadece NPC değil, tüm quest sistemini kontrol edebilirsiniz.






ÖNEMLİ NOTLAR



- TBL düzenledikten sonra client restart gerekir
- Cache temizlenmesi gerekebilir
- Yanlış ID düzenlemek farklı NPC’leri etkileyebilir
- Yedek almadan işlem yapmayın
- Server/client uyumlu olmalı






SONUÇ



NPC buton sistemini çözdüğünüzde artık server tarafında çok daha profesyonel düzenlemeler yapabilirsiniz.

Bu sistem Knight Online development’ın temel taşlarından biridir.


İNDİRME LİNKİ :





DeltaSoft Development



 
Son düzenleme:

Konuyu Görüntüleyen Kullanıcılar (Toplam:2)