Silkroad — Bir Item'a Kırmızı “Proficiency Penalties” Yazısı Nasıl Eklenir?
admin
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.
vsro.webp



⚙️ 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)

DegreeItemClass
1234–36
1337–39
1440–42
1543–45
1646–48
1749–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




🔹 ADIM 3 — PENALTY MAPPING EKLE

Örnek: 45 → 51 kopyalama


DELETE 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



KolonAçıklama
1Service
2EquipType
3Character Level
4ItemClass
5PenaltyClass
6MultipleValue


⚠️ PENALTY CLASS MANTIĞI

ClassEtki
36Hafif
39Orta
42Ağı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
 
Üst
Reklam Ver
R10dev.net'i ana ekrana ekle!