- #1
Konu Sahibi
: serkankacan
[REHBER & OPTİMİZASYON] vSRO Return & Reverse Scroll Hızlı Işınlanma Süresi Ayarlama
_RefObjItem Üzerinden Şehir (Return) ve Nokta (Reverse) Işınlanma Parşömenlerinin Kullanım Süresini (Cast Time) Kısaltma
_RefObjItem Üzerinden Şehir (Return) ve Nokta (Reverse) Işınlanma Parşömenlerinin Kullanım Süresini (Cast Time) Kısaltma
Merhaba değerli forum sakinleri,
Silkroad Online sunucularında oyuncuların şehir değiştirirken (Return Scroll) veya Unique/Slot noktalarına giderken (Reverse Return Scroll) **5 ila 10 saniye boyunca hareketsiz beklemek zorunda kalması** oyun akışını ve PvP/Unique kovalamaca temposunu yavaşlatabilir.
Bu süreyi kısaltarak oyuncuların parşömene sağ tıkladıktan sonra **1 saniye veya 2 saniye** içinde anında ışınlanmasını sağlayabilirsiniz.
Teknik Bilgilendirme (Milisaniye Mantığı)' Alıntı:DİKKAT (Saniye vs Milisaniye):
_RefObjItemtablosundaki ışınlanma süreleri milisaniye (ms) cinsindendir.- 1000: 1 Saniye (Akıcı ve hızlı kullanım).
- 2000: 2 Saniye (Dengeli orta süre).
- 5000: 5 Saniye (Orijinal varsayılan süre).
- Değeri `0` veya `1` gibi aşırı düşük rakamlara çekmek sunucunun paket animasyonunu tamamlayamadan karakteri ışınlamasına ve bazı durumlarda istemci kilitlenmelerine yol açabileceği için en az
1000 msönerilir.- İşlem öncesinde SRO_VT_SHARD yedeğinizi almayı unutmayınız.
Hatasız & Tüm Scrolları Kapsayan Dinamik SQL Kodu
SRO_VT_SHARD veritabanını seçip aşağıdaki optimize bloğu çalıştırın:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- 1. ADIM: İSTENEN IŞINLANMA SÜRESİ (MİLİSANİYE)
-- ===================================================================
DECLARE @NewCastDuration INT = 1000 -- 1000 = 1 Saniye | 2000 = 2 Saniye
-- ===================================================================
-- 2. ADIM: RETURN VE REVERSE PARŞÖMENLERİNİ GÜNCELLEME (_RefObjItem)
-- ID aramak zorunda kalmadan sistem kodlarından otomatik yakalar
-- ===================================================================
UPDATE ROI
SET ROI.Param1 = @NewCastDuration
FROM dbo._RefObjItem ROI
INNER JOIN dbo._RefObjCommon ROC ON ROC.Link = ROI.ID
WHERE ROC.Service = 1
AND (
-- Normal ve Hızlı Şehir Dönüş Parşömenleri (Return Scroll)
ROC.CodeName128 LIKE 'ITEM_ETC_SCROLL_RETURN%'
-- Noktasal Işınlanma Parşömenleri (Reverse Return Scroll)
OR ROC.CodeName128 LIKE 'ITEM_MALL_REVERSE_RETURN_SCROLL%'
OR ROC.CodeName128 LIKE 'ITEM_ETC_REVERSE_RETURN_SCROLL%'
)
PRINT '====================================================='
PRINT 'BAŞARILI: Return ve Reverse scroll kullanım süreleri ' + CAST(@NewCastDuration AS VARCHAR(10)) + ' ms yapıldı!'
PRINT 'Değişikliklerin aktif olması için GameServer yeniden başlatılmalıdır.'
PRINT '====================================================='
Neden Bu Optimize Versiyon Kullanılmalı?
- Tek Tek ID Aramaya Son:
WHERE ID = '2145'gibi tek bir ID yerineCodeName128filtresi kullanılarak sunucudaki tüm Return, Reverse ve Mall Reverse varyasyonları tek seferde güncellenir. - Desync ve Hata Koruması: Süre bilinçli olarak milisaniye bazında
1000 ms(1 sn) şeklinde normalize edilerek animasyon çökmesi riski ortadan kaldırılmıştır. - Doğru Veri Tipleri: T-SQL sayısal standartlarına uygun olarak tamsayı (
INT) değerler atanmıştır.
Nasıl Uygulanır & Senkronize Edilir?
- SQL Server Management Studio (SSMS) programını açıp yukarıdaki sorguyu çalıştırın.
- Sunucunuzdaki GameServer pencerelerini kapatıp yeniden başlatın.
- Client Senkronizasyonu (Media.pk2):
Ekranda dolan barın da 1 saniyede hızlıca dolup bitmesi için Media.pk2 içerisindekiserver_dep\silkroad\textdata\itemdata_xxx.txtdosyalarında ilgili Return ve Reverse scroll satırlarınınParam1sütunlarını1000yaparak oyuncularınıza patch olarak iletiniz. - Oyuna girip bir Return veya Reverse Scroll basarak 1 saniyede ışınlandığınızı doğrulayın.
Moderatör tarafında düzenlendi:

