- #1
Konu Sahibi
: serkankacan
[REHBER] vSRO Godbless Hız Ayarlama & ID Çakışması (Duplicate) Çözümü
_RefSkill Hareket Hızı Parametresi ve _RefObjCommon Mükerrer ID Temizleme Rehberi
_RefSkill Hareket Hızı Parametresi ve _RefObjCommon Mükerrer ID Temizleme Rehberi
Merhaba değerli forum sakinleri,
Sunucu geliştirme sürecinde sıkça ihtiyaç duyulan iki önemli konuyu tek bir başlık altında topladık:
- Godbless (Devil's Spirit / Melek/Şeytan Kutsaması) yürüme-koşma hızını artırma
- Veritabanına yeni item veya mob eklerken oluşan ID çakışmalarını bulma ve güvenli temizleme
Önemli Uyarı' Alıntı:DİKKAT:
- Godbless hızını SQL'den değiştirdikten sonra aynı parametreyi Media.pk2 (server_dep\skilldata_xxx.txt) dosyasına da işlemeniz gerekir; aksi takdirde karakter koşarken geri atma (rubberband / desync) sorunu yaşar.
- ID çakışması temizlerken sorgusuz sualsiz
DELETE WHERE ID = ...çalıştırmayınız; aksi takdirde aynı ID'ye sahip geçerli olan asıl eşyayı da sistemden tamamen silmiş olursunuz!- İşlemlerden önce SRO_VT_SHARD yedeğinizi almayı unutmayınız.
1. BÖLÜM: Godbless Koşma Hızını Ayarlama
Godbless buff'ına ait hız değeri _RefSkill tablosundaki ilgili parametrede tutulur (standart dosyalarda çoğunlukla
Param10).SQL Sorgusu:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- GODBLESS HIZ DEĞERİNİ GÜNCELLEME
-- 480 değeri hız çarpanıdır. Değeri artırarak hızı yükseltebilirsiniz.
-- ===================================================================
UPDATE dbo._RefSkill
SET Param10 = 480
WHERE ID = 44278 -- Kendi veritabanınızdaki Godbless skill ID'sini yazın
Skill ID'sini Bilmiyorsanız Bulma Sorgusu:
SQL:
USE [SRO_VT_SHARD]
GO
SELECT ID, CodeName128, Param9, Param10, Param11
FROM dbo._RefSkill
WHERE CodeName128 LIKE '%GODBLESS%'
OR CodeName128 LIKE '%DEVIL%'
* Not: SQL'deki değişikliğin ardından ilgili skill satırını Media.pk2'deki skilldata dosyasında da güncelleyip patch atınız ve GameServer'ı yeniden başlatınız.
2. BÖLÜM: _RefObjCommon ID Çakışmasını Bulma ve Çözme
Yeni bir eşya veya canavar eklerken var olan bir ID'yi tekrar verirseniz `GameServer` açılışında çökme (crash) meydana gelir.
Adım 2.1: Çakışan (Mükerrer) ID'leri Listeleme
Birden fazla kez kullanılmış olan ID'leri tespit etmek için:
SQL:
USE [SRO_VT_SHARD]
GO
SELECT ID, COUNT(ID) AS [Tekrar_Sayisi]
FROM dbo._RefObjCommon
GROUP BY ID
HAVING COUNT(ID) > 1
Adım 2.2: Çakışan Satırların Detayını İnceleme
Örneğin çakışan ID
69 olarak çıktıysa, hangisinin orijinal hangisinin sonradan hatalı eklendiğini görmek için:
SQL:
USE [SRO_VT_SHARD]
GO
SELECT ID, CodeName128, Link, TypeID1, TypeID2, TypeID3, TypeID4
FROM dbo._RefObjCommon
WHERE ID = 69
Adım 2.3: Güvenli Silme İşlemi (Tekil Silme)
WHERE ID = 69 derseniz her iki satır da silinir ve orijinal eşyanız kaybolur. Bu yüzden **yalnızca hatalı/fazla olan satırı CodeName128 belirterek** silmelisiniz:
SQL:
USE [SRO_VT_SHARD]
GO
-- Sadece hatalı/mükerrer olan eşya kodunu silin:
DELETE FROM dbo._RefObjCommon
WHERE ID = 69
AND CodeName128 = 'HATALI_YADA_FAZLA_EKLENEN_ITEM_KODU'
Uygulama Özeti
- Godbless hızını belirledikten sonra client eşitlemesini unutmayın (Geri atma sorununu engeller).
- Mükerrer ID temizliği yaparken mutlaka
CodeName128koşulunu ekleyin. - Her iki işlem sonrasında da GameServer modüllerini yeniden başlatın.
Sorularınızı ve takıldığınız yerleri bu konu altından paylaşabilirsiniz. Herkese iyi forumlar!

