- #1
Konu Sahibi
: serkankacan
[REHBER] vSRO Mob & Unique Can (HP) ve Seviye (Level) Düzenleme
_RefObjChar ve _RefObjCommon Üzerinden Yaratık İstatistiklerini Optimize Etme
_RefObjChar ve _RefObjCommon Üzerinden Yaratık İstatistiklerini Optimize Etme
Merhaba değerli forum sakinleri,
vSRO sunucularında gerek etkinlik (event) canavarları gerekse standart Unique yaratıkların (Tiger Girl, Cerberus, Isyutaru, Lord Yarkan vb.) zorluk derecesini ayarlamak için en çok başvurulan işlem **MaxHP** (Can) ve **Lvl** (Seviye) değerlerini değiştirmektir.
Aşağıda mevcut değerleri kontrol etmenizi sağlayan sorguyu ve ardından iki değeri tek seferde güncelleyen optimize edilmiş SQL komutunu bulabilirsiniz.
Önemli Uyarı' Alıntı:DİKKAT (Client - Server Senkronizasyonu):
- Canavarın canı (MaxHP) sunucu taraflı hesaplandığı için SQL'den güncelleyip GameServer'ı yeniden başlattığınızda anında oyuna yansır.
- Canavarın seviye göstergesi ise oyuncuların ekranında (Client-side) Media.pk2 (server_dep\characterdata_xxx.txt) dosyasından okunur. Seviye değiştirdiğinizde canavarın başının üzerinde yazan sayının doğru gözükmesi için bu txt dosyasını da eşitleyip patch atmanız gerekir.
1. Adım: Mevcut Değerleri Listeleme (Kontrol)
İşlem yapmadan önce yaratığın mevcut ID, Seviye ve HP durumunu görüntülemek için:
SQL:
USE [SRO_VT_SHARD]
GO
SELECT
ROC.ID AS [CommonID],
ROC.CodeName128,
ROC.Link AS [CharLinkID],
CHAR.Lvl AS [MevcutLevel],
CHAR.MaxHP AS [MevcutMaxHP]
FROM dbo._RefObjCommon ROC
JOIN dbo._RefObjChar CHAR ON CHAR.ID = ROC.Link
WHERE ROC.CodeName128 = 'MOB_CH_TIGERWOMAN' -- Buraya yaratığın tam kodunu girin
2. Adım: HP ve Seviyeyi Tek Seferde Güncelleme
Aşağıdaki sorgu ile hem seviyeyi hem de canı tek işlemde güvenli bir şekilde değiştirebilirsiniz:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- DEĞİŞKENLER
-- ===================================================================
DECLARE @MobCode VARCHAR(128) = 'MOB_CH_TIGERWOMAN' -- Hedef Unique/Mob Kodu
DECLARE @YeniLevel INT = 40 -- Yeni Level (Sayısal)
DECLARE @YeniHP BIGINT = 2500000 -- Yeni Can Miktarı (Sayısal)
-- ===================================================================
-- GÜNCELLEME SORGUSU
-- ===================================================================
UPDATE CHAR
SET CHAR.Lvl = @YeniLevel,
CHAR.MaxHP = @YeniHP
FROM dbo._RefObjChar CHAR
JOIN dbo._RefObjCommon ROC ON ROC.Link = CHAR.ID
WHERE ROC.CodeName128 = @MobCode
Sık Kullanılan Standart Unique Kod Listesi
| Unique Adı | CodeName128 Değeri | Varsayılan Seviye |
|---|---|---|
| Tiger Girl | MOB_CH_TIGERWOMAN | 20 |
| Cerberus | MOB_EU_KERBEROS | 24 |
| Captain Ivy | MOB_EU_CAPTAINIVY | 30 |
| Uruchi | MOB_OA_URUCHI | 40 |
| Isyutaru | MOB_KK_ISYUTARU | 60 |
| Lord Yarkan | MOB_TK_BONELORD | 80 |
| Demon Shaitan | MOB_RM_ROC | 90 |
| Medusa | MOB_SD_ERIS | 105 |
İşlemi Tamamlama:
- Sorguyu SQL Management Studio üzerinde çalıştırın.
- Seviye değişikliği yaptıysanız PK2 editörü ile `characterdata_xxx.txt` dosyasını düzenleyip Media.pk2'ye import edin.
- Sunucunuzdaki GameServer modüllerini yeniden başlatın.
Sorularınızı ve takıldığınız yerleri konu altından belirtebilirsiniz. Herkese iyi forumlar!

