İçeriğe geç
Türkiye'nin SRO tanıtım & topluluk platformu

vSro Paylaşım vSRO Job Penalty Remover (Meslek Cezası Silici) Scroll

Cevaplar0
Görüntüleme6
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[REHBER & SİSTEM] vSRO Job Penalty Remover (Meslek Cezası Silici) Scroll
_AddLogItem Tetikleyicisi ve _TimedJob Tablosu Üzerinden Meslek Ayrılma Cezasını Anında Kaldırma



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında oyuncular mevcut mesleklerinden (Hunter, Trader veya Thief) ayrıldıklarında NPC tarafından standart olarak **7 günlük (veya sunucu ayarına göre belirli bir sürelik)** meslek değiştirme cezası (Job Penalty) alırlar.

Aşağıda paylaşılan sistem; oyuncu ceza silici parşömene sağ tıkladığında _TimedJob tablosundaki ceza kaydını güvenli şekilde temizler, oyuncunun Premium buff'ına zarar vermez ve sunucu belleğinin yenilenmesi için karakteri güvenle oyundan düşürür (DC eder).

Önemli Güvenlik Uyarısı' Alıntı:
DİKKAT (Premium Güvenliği & DC Şartı):
  • Eski paylaşımlardaki Category = 2 şartı meslek cezasını değil oyuncunun aktif Premium'unu silme riski taşır. Doğru ceza kategorisi Category = 0'dır.
  • Ceza tablodan silindikten sonra NPC'nin karakteri cezasız olarak kabul etmesi için oyuncu scroll basıldığı an otomatik olarak DC edilir.
  • İşlem öncesinde SRO_VT_LOG ve SRO_VT_SHARD yedeklerinizi almayı unutmayınız.



1. ADIM: _JOB_PENALTY_REMOVE Prosedürünü Oluşturma

SRO_VT_LOG
veritabanını seçip aşağıdaki temizleme prosedürünü derleyin:

SQL:
USE [SRO_VT_LOG]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE OR ALTER PROCEDURE dbo._JOB_PENALTY_REMOVE
    @CharID INT
AS
BEGIN
    SET NOCOUNT ON;

    -- 1. _TimedJob tablosundaki Meslek Cezası Kayıtlarını Sil
    -- vSRO'da Job cezası Category = 0 ve JobID IN (1, 2) altında tutulur.
    DELETE FROM SRO_VT_SHARD.dbo._TimedJob 
    WHERE CharID = @CharID 
      AND Category = 0 
      AND JobID IN (1, 2)

    -- 2. KRİTİK: NPC'nin cezayı kalkmış görmesi için karakteri anında DC et
    UPDATE SRO_VT_SHARD.dbo._User 
    SET Sec_Primary = 1 
    WHERE CharID = @CharID
END
GO



2. ADIM: _AddLogItem Tetikleyicisine Bağlama

SRO_VT_LOG
içerisindeki **_AddLogItem** prosedürünü açarak (Modify) AS satırının altına şu optimize bloğu ekleyin:

SQL:
-- ===================================================================
-- JOB PENALTY REMOVER SCROLL TETİKLEYİCİSİ
-- @Operation = 41 (Eşya Tüketimi)
-- 78016 (Job Ceza Silici Scroll RefItemID Değeri)
-- ===================================================================
IF (@Operation = 41 AND @ItemRefID = 78016)
BEGIN
    EXEC SRO_VT_LOG.dbo._JOB_PENALTY_REMOVE @CharID
END



Nasıl Test Edilir?

  1. SQL prosedürünü Management Studio üzerinde derleyin (F5 / Execute).
  2. Mevcut bir mesleğinizden (Örn: Hunter) ayrılarak ceza alın (NPC'ye tıkladığınızda cezanızın olduğunu doğrulayın).
  3. 78016 ID'li Job Ceza Silici parşömene sağ tıklayarak kullanın.
  4. Karakteriniz anında oyundan düşecektir (Disconnect).
  5. Oyuna tekrar girdiğinizde meslek NPC'sine gidin; cezanızın kalktığını ve anında yeni bir meslek seçebildiğinizi göreceksiniz.

Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli oyunlar ve iyi forumlar!
 

Konuyu görüntüleyenler

Yükleniyor...
Yükleniyor...
Şu anda sitemizde 40,333 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst