- #1
Konu Sahibi
: serkankacan
[GÜVENLİK & BUG FİX] Knight Online Seri "R" (Basic Attack / Cancel) Bug Fix
MAGIC ve MAGIC_TYPE Tabloları Üzerinden Seri R Vuruş İstismarını (Animation Cancel) Güvenle Temizleme
MAGIC ve MAGIC_TYPE Tabloları Üzerinden Seri R Vuruş İstismarını (Animation Cancel) Güvenle Temizleme
Merhaba değerli forum sakinleri,
Knight Online sunucularında (özellikle v1299, v1453, v1534 ve v2xxx sürümlerinde) oyuncuların klavyeden **"R" tuşu** (düz vuruş / basic attack) ile beceri animasyonlarını harici makro/pedal araçlarıyla manipüle ederek normal saldırı hızının çok üzerinde seri hasar çıkarması (Seri R Bugu) PvP dengesini altüst eden en yaygın istismarlardan biridir.
Sorunun Kaynağı:
Orijinal Skill tablolarında (Karas ve El Morad Rogue/Warrior sınıfları başta olmak üzere) düz saldırı ile beceri arasına bağlanan bazı animasyonlu vur-kaç kodları (
MagicNum: 105720, 105755, 106720, 106755, 106770 ve bunların El Morad karşılıkları 205xxx) makro yazılımları tarafından aralıksız tetiklenerek saldırı gecikmesini (Attack Delay) sıfırlayabilmektedir.Eski paylaşımlarda her satır için tek tek `DELETE` yazıldığı, üstelik alt tablolar (
MAGIC_TYPE1, MAGIC_TYPE2...) temizlenmediği için veritabanında **yetim kayıt (foreign key orphaning)** kalmakta ve sunucu açılışında Ebenzer/Server modüllerinde bellek hatalarına yol açabilmektedir.Aşağıda hem ana tabloyu hem de ilişkili alt beceri tablolarını tek seferde tertemiz yapan optimize SQL sorgusunu paylaşıyoruz.
Teknik Bilgilendirme & Hazırlık' Alıntı:DİKKAT:
- Kapsam: Bu işlem Rogue ve Warrior sınıflarında seri animasyon iptaline neden olan temel kombo/efekt kayıtlarını temizler; standart "R" düz vuruş mekaniğini bozmaz.
- Tablolardaki ilişkili kayıtların kalıntı bırakmaması için
MAGIC,MAGIC_TYPE1,MAGIC_TYPE2tabloları bir bütün olarak filtrelenir.- İşlem öncesinde KN_Online (veya veritabanınızın adı ne ise, örn:
kn_db) yedeğinizi almanız önerilir.- İşlem sonrasında değişikliklerin sunucuya yansıması için Ebenzer / GameServer yeniden başlatılmalıdır (veya GM karakterle
/load_tableskomutu girilmelidir).
Hatasız & Güvenli Seri "R" Bug Fix 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ı?
- Tek
IN (...)Bloğu ile Temizlik: 10 defa alt alta ayrı `DELETE` sorgusu çalıştırmak yerine tek bir küme işlemiyle milisaniyeler içinde tamamlanır. - İlişkili Tablo (Foreign) Desteği: Yalnızca ana
MAGICtablosunu değil; sunucu mimarisine göre açık bırakanMAGIC_TYPE1veMAGIC_TYPE2tablolarını da kontrol ederek olası Ebenzer çökme (crash) riskini ortadan kaldırır. - Transaction Güvencesi:
BEGIN TRY...CATCHbloğu sayesinde herhangi bir tabloda kilitlenme veya hata oluşursa işlem geri alınır, veri bütünlüğü bozulmaz.
Nasıl Uygulanır & Test Edilir?
- SQL Server Management Studio (SSMS) programını açın.
- Knight Online veritabanınızı (Örn:
KN_Online) seçin. - Üst panelden New Query penceresi açıp yukarıdaki SQL kodunu yapıştırın.
- F5 tuşuna basarak sorguyu çalıştırın.
- Sunucunuzdaki Ebenzer (GameServer) konsolunu kapatıp yeniden açın (veya GM karakterle oyuna girip
/load_tablesyazın). - Oyuna Assassin veya Warrior bir karakterle giriş yaparak "R" kombolarını ve beceri geçişlerini test edin; makro iptalinin artık çalışmadığını doğrulayın.
Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli ve hilesiz geliştirmeler!

