İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

Knight Online Tüm Karakterlere Toplu Seviye (Level) Ekleme

Cevaplar0
Görüntüleme1
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
145
Tepkime puanı
24
Puanları
0
Mevcut Bakiye
3975 ₺
[REHBER & QUERY] Knight Online Tüm Karakterlere Toplu Seviye (Level) Ekleme
USERDATA Tablosu Üzerinden Maksimum Level Sınırı (Cap) ve Stat Puanı Senkronizasyonu ile Güvenli Seviye Yükseltme​



Merhaba değerli forum sakinleri,

Knight Online sunucularında dönemlik etkinliklerde, sunucu seviye sınırının açıldığı (örneğin 60'tan 65'e veya 70'ten 75'e geçiş) güncellemelerde veya telafi süreçlerinde tüm oyunculara toplu seviye (Level) tanımlamak isteyebilirsiniz.

Eski / Yalın Koddaki Kritik Hatalar:
Sadece SET Level = Level + 5 şeklinde kör bir güncelleme yapmak sunucunuzda ciddi veritabanı bozulmalarına yol açar:
  • Maksimum Level Aşımı (Cap Overflow): Örneğin sunucu üst sınırı 80 veya 83 ise, 80 level bir karakter 80 + 5 = 85 seviyeye çıkar; istemci tarafında (Client UI) ve sunucuda tanımsız seviye oluşarak karakterin oyuna girememesine (Crash / Karakter Seçim Ekranında Atma) neden olur.
  • Stat Puanı Eksikliği (Point Desync): Knight Online motorunda kazanılan her seviye için karaktere 3 Stat Puanı verilir. Seviye artırılıp Points sütunu artırılmazsa oyuncular hak ettikleri stat puanlarını alamazlar.
  • Silinmiş / Hatalı Karakterler: Silinmiş veya askıda kalmış hesaplar filtrelenmezse çöp kayıtlar da güncellenir.

Aşağıda hem sunucu maksimum seviye sınırını (@MaxLevelCap) koruyan, hem de kazanılan seviye başına +3 stat puanını otomatik ekleyen optimize SQL şablonunu bulabilirsiniz.

Teknik Bilgilendirme & Parametreler' Alıntı:
  • Eklenecek Seviye (@AddLevel): Oyunculara hediye edilecek seviye miktarı (Örn: +5).
  • Stat Puanı Formülü: Kazanılan her net seviye için: $\text{Kazanılan Seviye} \times 3$ puan Points sütununa eklenir.
  • Maksimum Seviye Tavanı (@MaxLevelCap): Karakterin ulaşabileceği üst limit (Örn: 83 veya 80). Sınıra yaklaşan oyuncular yalnızca sınıra kadar yükseltilir.
  • İşlem öncesinde KN_Online veritabanı yedeğinizi almanız tavsiye edilir.
  • İşlem sırasında oyuncuların stat senkronizasyonunun bozulmaması için sunucunun bakımda/kapalı olması önerilir.



Hatasız & Güvenli Seviye Ekleme SQL Kodu

KN_Online
veritabanınızı seçip aşağıdaki optimize bloğu çalıştırın:





Neden Bu Optimize Versiyon Kullanılmalı?

  1. Karakter Çökmesini (Cap Bugu) Önler: 80 Cap bir sunucuda 78 level olan bir oyuncu +5 aldığında 83 olmaz; @MaxLevelCap şartı sayesinde doğrudan tavan seviye olan 80'e sabitlenir.
  2. Eksiksiz Stat Dağıtımı: 78'den 80'e çıkan oyuncu 5 seviyelik değil, yalnızca atladığı 2 seviyenin karşılığı olan $(2 \times 3) = +6$ stat puanını alır; stat dengesizliği ve haksız avantaj engellenir.
  3. Transaction Koruması: BEGIN TRANSACTION yapısı sayesinde elektrik kesintisi veya SQL kilitlenmelerinde yarım kalmış işlemler otomatik geri alınır (ROLLBACK).



Nasıl Uygulanır & Test Edilir?

  1. SQL Server Management Studio (SSMS) programını açıp veritabanınızı seçin.
  2. Yukarıdaki kodda @AddLevel (eklenecek seviye) ve @MaxLevelCap (maksimum seviye sınırı) değerlerini sunucunuza göre ayarlayın.
  3. F5 tuşuna basarak sorguyu çalıştırın.
  4. Sunucunuz açıkken uyguladıysanız Ebenzer / GameServer konsolunu yeniden başlatın (karakterlerin oyundan çıkmış olması gerekir).
  5. Oyuna giriş yaptığınızda karakterlerin seviyelerinin yükseldiğini ve "U" menüsünde stat puanlarının eksiksiz verildiğini kontrol edin.

Sorularınızı ve belirli sınıflara/ırklara özel filtreleme taleplerinizi konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 29,180 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,373
Mesajlar 4,351
Kullanıcılar 1,668
Son üye Senbonzakura
Geri
Üst