- #1
Konu Sahibi
: serkankacan
[REHBER & SİSTEM] Knight Online Özel NPC & Quest Helper (LUA) Ekleme
K_NPC, K_NPCPOS ve QUEST_HELPER Tabloları Üzerinden Özel Görev / Etkinlik NPC'si Tanımlama ve Konumlandırma
K_NPC, K_NPCPOS ve QUEST_HELPER Tabloları Üzerinden Özel Görev / Etkinlik NPC'si Tanımlama ve Konumlandırma
Merhaba değerli forum sakinleri,
Knight Online sunucularında (v1299, v1453, v1534, v2xxx) özel etkinlikler, takas sistemleri veya görev zincirleri için haritaya yeni bir NPC yerleştirmek ve bu NPC'ye tıklandığında özel bir LUA betiğinin (
.lua) çalışmasını sağlamak sunucu geliştiricilerinin en sık kullandığı yöntemdir.Ham paylaşımlarda tablo sütun isimleri belirtilmediği için farklı veritabanı sürümlerinde sütun sayısı uyuşmazlığı (`Column name or number of supplied values does not match table definition`) hatası alınabilir. Ayrıca mükerrer kayıt kontrolü yapılmadığından NPC ID çakışmaları yaşanabilir.
Aşağıda paylaşılan optimize kurulum şablonu; **K_NPC** (NPC kimlik ve model bilgisi), **K_NPCPOS** (Harita ve doğma koordinatları) ve **QUEST_HELPER** (Tıklanınca çalışacak LUA dosyası) tablolarını sütun eşleştirmeli, güvenli ve çakışma kontrollü olarak tek seferde kaydeder.
Teknik Bilgilendirme & Parametreler' Alıntı:
- NPC ID (sSid):
18072(Örnek ID'dir, tablonuzda boş olan bir ID seçebilirsiniz).- Zone ID (Harita):
21(Moradon haritası).- Koordinatlar (X / Z):
X: 299, Z: 335(Moradon içi örnek koordinat).- LUA Tetikleyicisi:
772_QUICKLE.lua(Ebenzer/Server içerisindeki `Quest_Talk` klasöründe yer almalıdır).- İşlem öncesinde KN_Online veritabanı yedeğinizi almayı unutmayınız.
Hatasız & Güvenli NPC + Quest Kurulum SQL Kodu
KN_Online veritabanınızı seçip aşağıdaki optimize bloğu çalıştırın:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
Neden Bu Optimize Versiyon Kullanılmalı?
- Açık Sütun Tanımları: Doğrudan
INSERT INTO Tablo VALUES (...)yazmak yerine her sütunun adı açıkça belirtilmiştir. Veritabanınızda sonradan eklenmiş veya sırası farklı sütunlar olsa bile hata vermez. - Çakışma Koruması (
IF NOT EXISTS): Aynı sorgu birden fazla kez çalıştırıldığında hata vermez, mükerrer veya çift doğan hayalet NPC'ler oluşturmaz. - Transaction Güvencesi: Üç tablodan herhangi birinde bir uyuşmazlık çıkarsa
ROLLBACKyapılarak yarım kalmış bozuk kayıt oluşması engellenir.
Nasıl Uygulanır & Test Edilir?
- SQL Server Management Studio (SSMS) üzerinde veritabanınızı seçip sorguyu çalıştırın.
- Hazırladığınız
772_QUICKLE.luadosyasını sunucunuzun **Quest / Quest_Talk** dizini içerisine kopyalayın. - Değişikliklerin oyuna yansıması için Ebenzer (GameServer) konsolunu yeniden başlatın (veya oyun içinde GM karakterle
/load_tableskomutunu uygulayın). - Oyuna girip Moradon
299, 335koordinatına gidin; NPC'nin doğduğunu ve tıklandığında LUA menüsünün sorunsuz açıldığını test edin.
Sorularınızı ve özel LUA yazımı konusundaki taleplerinizi konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!

