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

vSro Paylaşım vSRO Snow Shield Açıcı & Stat Recall (Stat Sıfırlama) Scrolları

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 Snow Shield Açıcı & Stat Recall (Stat Sıfırlama) Scrolları
_AddLogItem Tetikleyicisi Üzerinden INT Sınırı Olmadan Snow Shield Verme ve Kusursuz Stat Puanı İadesi



Merhaba değerli forum sakinleri,

Silkroad Online sunucularında oyuncuların build yapılandırmalarını özelleştirmeleri için iki popüler scroll sistemi kullanılır:
  1. Snow Shield Açıcı Scroll: Pure STR veya Hybrid karakterlerin INT sınırı yüzünden açamadığı Snow Shield yeteneğini karaktere doğrudan kazandırır.
  2. Stat Recall Scroll: Karakterin dağıttığı tüm STR ve INT puanlarını başlangıç seviyesine (20 / 20) çeker ve karakterin seviyesine göre hak ettiği tüm stat puanlarını RemainStatPoint havuzuna eksiksiz iade eder.

Önemli Güvenlik Kuralları' Alıntı:
DİKKAT:
  • Stat ve yetenek güncellemelerinde GameServer bellek çakışmalarını ve geri sarma (rollback) sorunlarını önlemek için oyuncu scroll'a bastığı an otomatik olarak oyundan düşürülür (DC edilir).
  • Stat Recall işleminde karakterin formülü (Level - 1) * 3 kuralına göre hesaplanır; eksik veya fazla stat verilmesi imkansızdır.
  • İşlem öncesinde SRO_VT_LOG ve SRO_VT_SHARD yedeklerinizi almayı unutmayınız.



1. BÖLÜM: Arka Plan Prosedürleri (SRO_VT_LOG)

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

SQL:
USE [SRO_VT_LOG]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

-- ===================================================================
-- 1. SNOW SHIELD AÇICI PROSEDÜRÜ
-- ===================================================================
CREATE OR ALTER PROCEDURE dbo._SNOW_SHIELD_UNLOCK
    @CharID INT
AS
BEGIN
    SET NOCOUNT ON;

    -- Hedef Snow Shield Skill ID (Örnek: Cold Mastery Snow Shield Seviye 1 veya Seviye 4)
    -- Kendi DB'nizdeki açılmasını istediğiniz Snow Shield ID'sini yazın:
    DECLARE @SnowSkillID INT = 1116 -- SKILL_CH_COLD_SHIELD_A

    -- Karakterde bu skill zaten yoksa doğrudan ekle
    IF NOT EXISTS (SELECT 1 FROM SRO_VT_SHARD.dbo._CharSkill WHERE CharID = @CharID AND SkillID = @SnowSkillID)
    BEGIN
        INSERT INTO SRO_VT_SHARD.dbo._CharSkill (CharID, SkillID, Enable)
        VALUES (@CharID, @SnowSkillID, 1)

        -- Değişikliğin işlenmesi için karakteri DC et
        UPDATE SRO_VT_SHARD.dbo._User 
        SET Sec_Primary = 1 
        WHERE CharID = @CharID
    END
END
GO

-- ===================================================================
-- 2. STAT RECALL (STAT SIFIRLAMA & İADE) PROSEDÜRÜ
-- ===================================================================
CREATE OR ALTER PROCEDURE dbo._STAT_RECALL
    @CharID INT
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @CurLevel INT

    -- Karakterin mevcut seviyesini al
    SELECT @CurLevel = CurLevel 
    FROM SRO_VT_SHARD.dbo._Char WITH (NOLOCK) 
    WHERE CharID = @CharID

    IF (@CurLevel IS NULL OR @CurLevel <= 0)
        RETURN;

    -- Karakterin seviyesine göre kazanılan toplam stat puanı hesabı: (Level - 1) * 3
    DECLARE @TotalStatPoints INT = (@CurLevel - 1) * 3

    -- STR ve INT değerlerini taban seviyeye (20) çek ve hak ettiği puanları iade et
    UPDATE SRO_VT_SHARD.dbo._Char
    SET 
        Strength = 20,
        Intellect = 20,
        RemainStatPoint = @TotalStatPoints
    WHERE CharID = @CharID

    -- Bellek senkronizasyonu için karakteri DC et
    UPDATE SRO_VT_SHARD.dbo._User 
    SET Sec_Primary = 1 
    WHERE CharID = @CharID
END
GO



2. BÖLÜM: _AddLogItem Tetikleyicilerine Bağlama

SRO_VT_LOG
içerisindeki **_AddLogItem** prosedürünü açarak (Modify) AS satırının hemen altına ekleyin:

SQL:
-- ===================================================================
-- ÖZEL SCROLL TETİKLEYİCİLERİ (@Operation = 41 Eşya Kullanımı)
-- ===================================================================
IF (@Operation = 41)
BEGIN
    -- 1. SNOW SHIELD AÇICI SCROLL (ID: 78014)
    IF (@ItemRefID = 78014)
    BEGIN
        EXEC SRO_VT_LOG.dbo._SNOW_SHIELD_UNLOCK @CharID
    END

    -- 2. STAT RECALL SCROLL (ID: 70001)
    ELSE IF (@ItemRefID = 70001)
    BEGIN
        EXEC SRO_VT_LOG.dbo._STAT_RECALL @CharID
    END
END



Nasıl Test Edilir?

  1. SQL prosedürlerini Management Studio üzerinde derleyin (F5 / Execute).
  2. 78014 veya 70001 ID'li eşyayı karakterinize aktarın.
  3. Oyuna girip scroll'a sağ tıklayarak kullanın.
  4. Karakteriniz anında oyundan düşecektir (Disconnect).
  5. Tekrar giriş yaptığınızda;
    • Snow Shield kullandıysanız yetenek penceresinde skill'in açık olduğunu,
    • Stat Recall kullandıysanız STR/INT değerinizin 20'ye indiğini ve tüm stat puanlarınızın dağıtılmak üzere RemainStatPoint hanesinde hazır beklediğini 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,448 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst