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

vSro Paylaşım vSRO Premium Reset / Delete (Premium Silici) Scroll

Cevaplar0
Görüntüleme7
Ticaret Puanı
0
Katılım
8 Eyl 2026
Mesajlar
88
Tepkime puanı
1
Puanları
0
Mevcut Bakiye
2960 ₺
[REHBER & SİSTEM] vSRO Premium Reset / Delete (Premium Silici) Scroll
_AddLogItem Tetikleyicisi ve _TimedJob Tablosu Üzerinden Aktif Premium'u Güvenle Sıfırlama



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında oyuncuların hesaplarında aktif olan düşük seviye bir Premium'u (örneğin Silver Time veya süresi bitmek üzere olan eski bir Premium) silip yerine daha yüksek özellikli bir Premium (Gold Time PLUS vb.) basabilmeleri için **Premium Delete / Reset Scroll** sistemi kullanılır.

Aşağıdaki prosedür; oyuncu parşömene sağ tıkladığında _TimedJob tablosunda yer alan aktif Premium kayıtlarını temizler ve GameServer belleğindeki buff etkisini tamamen sıfırlamak için karakteri güvenle oyundan düşürür (DC eder).

Önemli Uyarı' Alıntı:
DİKKAT (Bellek Eşitlemesi):
  • Aktif premium etkileri `GameServer` belleğinde tutulur. Veritabanından silindikten sonra yeni bir premiumun basılabilmesi için karakter otomatik olarak DC edilir.
  • Bu işlem sadece karakterdeki aktif süreli Premium buff kaydını siler; çantadaki veya kasadaki basılmamış eşyalara zarar vermez.
  • İşlem öncesinde SRO_VT_LOG ve SRO_VT_SHARD yedeklerinizi almayı unutmayınız.



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

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

SQL:
USE [SRO_VT_LOG]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

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

    -- 1. _TimedJob tablosundaki Premium Kayıtlarını Sil
    -- vSRO mimarisinde Premium görevleri Category = 2 olarak kaydedilir.
    DELETE FROM SRO_VT_SHARD.dbo._TimedJob
    WHERE CharID = @CharID 
      AND Category = 2 -- Premium / VIP Hizmet Kategorisi

    -- 2. KRİTİK: GameServer belleğindeki buff'ın sıfırlanması 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 tetikleyici bloğunu ekleyin:

SQL:
-- ===================================================================
-- PREMIUM DELETE SCROLL TETİKLEYİCİSİ
-- @Operation = 41 (Eşya Tüketimi)
-- 78015 (Premium Silici Scroll RefItemID Değeri)
-- ===================================================================
IF (@Operation = 41 AND @ItemRefID = 78015)
BEGIN
    EXEC SRO_VT_LOG.dbo._PREMIUM_REMOVE @CharID
END



Nasıl Test Edilir?

  1. SQL prosedürünü Management Studio üzerinde derleyin (F5 / Execute).
  2. Üzerinde aktif Premium bulunan bir karakterle oyuna girin.
  3. 78015 ID'li Premium Silici parşömene sağ tıklayarak kullanın.
  4. Karakteriniz anında oyundan düşecektir (Disconnect).
  5. Oyuna tekrar girdiğinizde sol üst köşedeki Premium ikonunun kalktığını ve dilediğiniz yeni Premium'u basabildiğinizi göreceksiniz.

Sorularınızı ve takıldığınız yerleri bu konu altından iletebilirsiniz. Herkese keyifli geliştirmeler!
 

Konuyu görüntüleyenler

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