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

vSro Paylaşım vSRO Otomatik Artı (+) Sınırlama (Max Plus Limiter)

Cevaplar0
Görüntüleme412
serkankacan paylaşımı beğendiysen ona bir kahve ısmarlayabilirsin
Kahve ısmarla
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
200
Tepkime puanı
33
Puanları
0
Mevcut Bakiye
290 ₺
[GÜVENLİK & SİSTEM] vSRO Otomatik Artı (+) Sınırlama (Max Plus Limiter)
_AddLogItem (@Operation = 90) Üzerinden Belirlenen Limitin Üzerine Çıkan Eşyaları Otomatik Geri Çekme​



Merhaba değerli forum sakinleri,

Silkroad Online sunucularınızda oyun dengesini korumak ve simya (alchemy) sınırını belirli bir seviyede (örneğin maksimum **+12**) tutmak isteyebilirsiniz.

İnternette dolaşan satır satır `LIKE '%Opt: +13%'` yazılmış eski sorgular hem sunucuda gereksiz gecikme (lag) yaratır hem de `+20`'nin üzerindeki basımları yakalayamaz. Ayrıca oyuncu DC edilmediği takdirde `GameServer` belleği eşyayı hala yüksek artı seviyesinde tutmaya devam eder.

Aşağıda paylaşılan optimize sistem; simya işlemi başarılı olduğunda eşyanın artı seviyesini anlık olarak kontrol eder, sınırın üstündeyse belirlenen maksimum değere geri sabitler ve bellek senkronizasyonu için oyuncuyu oyundan düşürür (DC eder).

Önemli Güvenlik Kuralları' Alıntı:
DİKKAT:
  • Bu kontrol SRO_VT_LOG içerisindeki **_AddLogItem** prosedürüne eklenir.
  • @Operation = 90, simya (Elixir / Alchemy) sonucunda eşyanın seviye atladığı log tipidir.
  • Eşyanın veritabanındaki yeni artısının istemciye ve GameServer'a tam yansıması için kuralı aşan oyuncu anında DC edilir.
  • İşlem öncesinde SRO_VT_LOG yedeğinizi almayı unutmayınız.



Hatasız & Optimize Edilmiş _AddLogItem Kodu

SRO_VT_LOG
veritabanındaki **_AddLogItem** prosedürünü açın (Modify) ve AS satırının altına şu optimize bloğu ekleyin:





Neden Bu Yöntem Tercih Edilmeli?

  1. Tekil ve Sayısal Denetim: String aramaları (`LIKE`) yerine doğrudan tamsayı karşılaştırması (`> @MaxPlusLimit`) kullanılır; işlemciyi yormaz ve kilitlenme (deadlock) oluşturmaz.
  2. Sınırsız Kapsam: Oyuncu +13, +20 veya exploit ile +50 dahi bassa tek satırlık büyüktür şartı tüm sınır aşımlarını eksiksiz yakalar.
  3. Bellek Eşitliği (Anti-Rollback): Sec_Primary = 1 komutu sayesinde oyuncunun istemcisi anında kapatılarak sunucu belleğindeki sahte güç değeri silinir.



Nasıl Uygulanır?

  1. SQL Server Management Studio (SSMS) üzerinden `_AddLogItem` prosedürünü açın.
  2. Yukarıdaki kodu ekleyip en üstteki @MaxPlusLimit = 12 değerini kendi sunucu politikanıza göre ayarlayın.
  3. F5 tuşuna basarak prosedürü derleyin.
  4. Sunucu restartı gerektirmez, hemen o saniye devreye girer.

Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!
 
Moderatör tarafında düzenlendi:

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 156 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,170
Mesajlar 4,301
Kullanıcılar 1,858
Son üye Dilara Baydemir
Geri
Üst