- Katılım
- 23 Eki 2022
- Mesajlar
- 8,923
- Çözümler
- 13
- Tepkime puanı
- 6,557
- Puanları
- 113
- Yaş
- 28
(ItemClass + Penalty System + SQL + Media + Prosedür Mantığı)
Not
Bu rehber farklı vSRO / Silkroad files yapılarında küçük değişiklikler gösterebilir.Uygulama öncesi DB backup alınması önerilir.
Bu Rehber Ne İşe Yarar?
Silkroad'da bazı itemlarda görülen kırmızı:
"Proficiency Penalties"yazısının nasıl aktif edildiğini anlatır.
Bu sadece görsel bir text değil, aynı zamanda penalty sisteminin aktif olduğunu gösterir.

SİSTEM MİMARİSİ (FULL OVERVIEW)
Bu sistem 4 katmandan oluşur:
1. Database (Server Core)
- _RefObjItem
- _RefEquipItemPenalty
- _RefEquipItemPenaltyBalance
2. Server Runtime
- GameServer penalty loader
- Memory cache (runtime table)
3. Client (Media.pk2)
- refequipitempenalty.txt
- refequipitempenaltybalance.txt
4. UI Layer
- Text ID: UIIT_STT_UPGRADE_EXPERT_PENALTY (5109)
GERÇEK ÇALIŞMA MANTIĞI
ItemClass
↓
_RefEquipItemPenalty match kontrolü
↓
Server penalty cache
↓
Client UI condition check
↓
"Proficiency Penalties" yazısı
ITEMCLASS NEDİR?
ItemClass:- Item'ın "degree/class" kimliği
- Upgrade, equip ve penalty sistemlerinde kullanılır
- Yanlış değişirse item derecesi bozulur
ITEMCLASS → DEGREE MAP (GENEL)
| Degree | ItemClass |
|---|---|
| 12 | 34–36 |
| 13 | 37–39 |
| 14 | 40–42 |
| 15 | 43–45 |
| 16 | 46–48 |
| 17 | 49–51 |
NOT:ItemClass değişirse:
- item degree değişir
- upgrade sistemi etkilenir
- balance bozulabilir
2 FARKLI YÖNTEM
YÖNTEM 1 (DIRECT - RİSKLİ)
✔ ItemClass değiştir✔ Penalty otomatik gelir
Degree değişir
Stabil değildir
YÖNTEM 2 (PRO / ÖNERİLEN)
✔ ItemClass SABİT kalır✔ Penalty mapping eklenir
✔ Official sisteme en yakın yapı
FULL KURULUM ADIMLARI
ADIM 1 — DB BACKUP
BACKUP DATABASE YOUR_DB
ADIM 2 — ITEMCLASS KONTROL
İçeriği görüntülemek için Giriş yapın veya Kayıt olun.
ADIM 3 — PENALTY MAPPING EKLE
Örnek: 45 → 51 kopyalamaDELETE FROM _RefEquipItemPenalty
WHERE ItemClass = 51;
INSERT INTO _RefEquipItemPenalty
(Service, EquipType, PenaltyLevel, ItemClass, PenaltyClass, MultipleValue)
SELECT
Service,
EquipType,
PenaltyLevel,
51,
PenaltyClass,
MultipleValue
FROM _RefEquipItemPenalty
WHERE ItemClass = 45;
ADIM 4 — BALANCE KONTROL
SELECT *
FROM _RefEquipItemPenaltyBalance
WHERE PenaltyClass IN (36,39,42,45);
ADIM 5 — MEDIA DOSYASI
Dosya:media\server_dep\silkroad\textdata\refequipitempenalty.txt
Yapılacak:
- 45 satırını kopyala
- ItemClass = 51 yap
- Dosyaya ekle
Encoding:- UTF-16 LE zorunlu
ADIM 6 — PK2 REPACK
- media.pk2 rebuild
- client full restart
ADIM 7 — SERVER RESTART
- GameServer restart
veya - ref data reload (files'a bağlı)
ADIM 8 — TEST
✔ 101+ level karakter kullan✔ Item inspect et
✔ Kırmızı yazıyı kontrol et
PENALTY SATIR MANTIĞI
Örnek:1 | 0 | 101 | 51 | 36 | 2
| Kolon | Açıklama |
|---|---|
| 1 | Service |
| 2 | EquipType |
| 3 | Character Level |
| 4 | ItemClass |
| 5 | PenaltyClass |
| 6 | MultipleValue |
PENALTY CLASS MANTIĞI
| Class | Etki |
|---|---|
| 36 | Hafif |
| 39 | Orta |
| 42 | Ağır |
| 45 | Çok ağır |
Bunlar sadece ceza oranını belirler, yazı değildir.
MULTIPLE VALUE MANTIĞI
- Level arttıkça etkisi düşer
- 130 levelde tamamen silinir
- Penalty scaling sağlar
PROSEDÜR (SP) DURUMU
HER SİSTEMDE YOKTUR
Bu sistem iki tiptir:
STATIC SYSTEM (SENİN REHBER)
- DB insert yeterli
- restart gerekir
- SP yok
CACHE SYSTEM (ADVANCED vSRO)
Bazı files'larda:usp_RefEquipItemPenalty_Load
gibi prosedürler bulunur.
Görevleri:
- cache temizleme
- memory reload
- runtime sync
SENİN SİSTEM
SP kullanılmıyor
DB + Media + restart yeterli
SIK HATALAR
Yazı çıkmıyor
- Media güncellenmedi
- UTF-16 hatalı
- PK2 repack yapılmadı
Item derecesi değişti
- ItemClass yanlış değiştirildi
çözüm: Yöntem B
101 levelde görünmüyor
- Client version farklı
- Level gate değişmiş olabilir
SONUÇ
Bu sistem:✔ DB penalty mapping
✔ ItemClass eşleşmesi
✔ Client media UI kontrolü
✔ Level scaling
birleşiminden oluşur.
KISA ÖZET
- Yazı = penalty mapping sonucu çıkar
- ItemClass kritik ama tek başına yeterli değildir
- En doğru yöntem: mapping + media sync
