- #1
Konu Sahibi
: serkankacan
[REHBER & QUERY] Knight Online Sınırsız Can & Mana İksirlerini (Potion / Water) Sınırlı Hale Getirme
ITEM ve MAGIC Tabloları Üzerinden HP/MP İksirlerinin Tüketim Mekaniğini (Consume / Countable) Yeniden Aktif Etme
ITEM ve MAGIC Tabloları Üzerinden HP/MP İksirlerinin Tüketim Mekaniğini (Consume / Countable) Yeniden Aktif Etme
Merhaba değerli forum sakinleri,
Knight Online sunucularında (v1299, v1453, v1534, v2xxx) özellikle PK veya kolaylaştırılmış sunucu konseptlerinden sonra ekonomiyi, ağırlık dengesini (Weight) ve pazar dinamiklerini yeniden canlandırmak amacıyla **sınırsız (tükenmeyen) HP ve MP iksirlerini tekrar basıldıkça eksilen (sınırlı) orijinal haline** döndürmek gerekebilir.
Sorunun Kaynağı & Eski Kodlardaki Hatalar:
- İksirin Tükenmeme Nedeni: Knight Online motorunda bir iksirin basıldığında çantadan eksilmesi;
ITEMtablosundakiCountable = 1(sayılabilir) veDuration = 1değerleri ileMAGICtablosundaki tüketim bayrağı (ItemNumveItemCount = 1) üzerinden kontrol edilir. - Gereksiz DELETE & Veri Bozulması: Eski paylaşımlarda onlarca `DELETE` ve `INSERT INTO VALUES (...)` çalıştırılarak tablolar silinip tekrar doldurulmuştur. Bu yöntem sütun sayısı uyuşmazlığı (`Column count mismatch`) hatası vermekte, karakter kodlamalarını (Korean krName) bozmakta ve eşyaların orijinal ikon/açıklama bağlantılarını koparabilmektedir.
- En Temiz Çözüm (
UPDATE): Eşyaları ve becerileri tablodan tamamen silip baştan eklemek yerine, yalnızca tüketim ve sayılabilirlik parametrelerini doğrudanUPDATEetmek veritabanı bütünlüğünü korur ve milisaniyeler içinde kesin çözüm sağlar.
Aşağıda hem eşyaları silip risk almadan tek seferde sınırlı hale getiren **optimize UPDATE sorgusunu**, hem de eski yapıyı sıfırdan kurmak isteyenler için **açık sütun tanımlı güvenli INSERT şablonunu** bulabilirsiniz.
Teknik Bilgilendirme & Kapsam' Alıntı:
- Kapsanan İksir Grupları:
- Store HP / MP Pots: 389078xxx - 389082xxx & 389060xxx - 389064xxx
- Standart HP / MP Pots: 389010xxx - 389020xxx
- Colony Event (C.E.) Pots: 910001xxx - 910012xxx- Tüketim Şartı:
MAGIC.ItemCount = 1yapıldığında her sağ tıklamada çantadan tam 1 adet iksir eksilir.- İşlem öncesinde KN_Online veritabanı yedeğinizi almanız tavsiye edilir.
1. YÖNTEM: Eşyaları Silmeden Sınırlı Yapma (ÖNERİLEN OPTİMİZE KOD)
KN_Online veritabanınızı seçip aşağıdaki güvenli blok ile tüm iksirleri tek hamlede sınırlı hale getirin:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
2. YÖNTEM: Sıfırdan Temiz Kurulum (DELETE & Açık Sütun INSERT)
Eğer tablolarınızda eski kayıtlardan kaynaklı bozulma varsa ve tamamen temizleyip yeniden eklemek isterseniz aşağıdaki hatasız şablonu kullanabilirsiniz:
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
Nasıl Uygulanır & Test Edilir?
- SQL Server Management Studio (SSMS) programını açıp Knight Online veritabanınızı seçin.
- Önerilen **1. Yöntem (UPDATE)** sorgusunu yapıştırıp F5 tuşu ile çalıştırın.
- Sunucudaki **Ebenzer / GameServer** konsolunu yeniden başlatın (veya GM karakterle
/load_tableskomutunu uygulayın). - Oyuna girip üzerinize 100 adetlik bir pot paketi alın.
- Karakterinizle pot bastığınızda adedin 99, 98, 97 şeklinde eksildiğini ve sıfırlandığında çantadan silindiğini doğrulayın.
Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli ve dengeli geliştirmeler!

