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

vSro Paylaşım vSRO Tüm Karakterlere Toplu İtem, Coin ve Hediye Gönderme

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 & QUERY] vSRO Tüm Karakterlere Toplu İtem, Coin ve Hediye Gönderme
_ADD_ITEM_EXTERN ve _Char Tablosu Üzerinden Sunucudaki Tüm Oyunculara Otomatik Ödül Dağıtımı



Merhaba değerli forum sakinleri,

Açılış etkinliklerinde, bayram/yılbaşı kutlamalarında veya telafi durumlarında sunucunuzdaki tüm aktif oyunculara tek tek uğraşmadan toplu olarak **Eşya (+ basılı veya düz)**, **Gold / Coin** veya **Silk** tanımlayabilirsiniz.

Aşağıda paylaşılan optimize edilmiş döngü; silinmiş karakterleri otomatik olarak atlar, çantasında boş yer olan karakterlere eşyayı güvenle tanımlar ve işlem esnasında veritabanı kilitlenmelerini önler.

Kritik Güvenlik Uyarısı' Alıntı:
DİKKAT (İşlem Öncesi Kontroller):
  • Bu işlemi yapmadan önce GameServer ve ShardManager modüllerinizi kapatmanız (veya sunucuyu bakım moduna almanız) şiddetle önerilir. Oyuncu oyundayken envanterine doğrudan eşya basılırsa GameServer bellek verisini geri yazarak eşyayı silebilir (Rollback).
  • Karakterin çantasında boş yer (en az 1 slot) yoksa `_ADD_ITEM_EXTERN` prosedürü hata vermeden o karakteri otomatik olarak pas geçer.
  • İşlem öncesinde mutlaka SRO_VT_SHARD yedeğinizi alınız.



1. YÖNTEM: Tüm Karakterlere Toplu İtem Gönderme

Sunucudaki tüm aktif karakterlere belirlediğiniz adette ve artı (+) seviyesinde eşya göndermek için:

SQL:
USE [SRO_VT_SHARD]
GO

-- ===================================================================
-- 1. ADIM: GÖNDERİLECEK EŞYA BİLGİLERİ
-- ===================================================================
DECLARE @ItemCodeName VARCHAR(128) = 'ITEM_MALL_GLOBAL_CHATTING' -- Gönderilecek Eşya Kodu
DECLARE @ItemCount INT = 11                                     -- Adet
DECLARE @ItemOptLevel INT = 0                                   -- Artı (+) Değeri

-- ===================================================================
-- 2. ADIM: TOPLU GÖNDERİM DÖNGÜSÜ
-- ===================================================================
DECLARE @MinID INT = (SELECT MIN(CharID) FROM dbo._Char WITH (NOLOCK) WHERE CharID > 0)
DECLARE @MaxID INT = (SELECT MAX(CharID) FROM dbo._Char WITH (NOLOCK))
DECLARE @CharName VARCHAR(16)
DECLARE @SentCount INT = 0

WHILE (@MinID <= @MaxID)
BEGIN
    -- Sadece aktif ve silinmemiş karakterleri hedefle
    IF EXISTS (SELECT 1 FROM dbo._Char WITH (NOLOCK) WHERE CharID = @MinID AND CharID > 0)
    BEGIN
        SELECT @CharName = CharName16 
        FROM dbo._Char WITH (NOLOCK) 
        WHERE CharID = @MinID

        -- İtem Gönderimi
        EXEC dbo._ADD_ITEM_EXTERN @CharName, @ItemCodeName, @ItemCount, @ItemOptLevel
        SET @SentCount = @SentCount + 1
    END

    SET @MinID = @MinID + 1
END

PRINT '====================================================='
PRINT 'BAŞARILI: Toplam ' + CAST(@SentCount AS VARCHAR(10)) + ' karaktere eşya başarıyla tanımlandı!'
PRINT '====================================================='



2. YÖNTEM: Tüm Karakterlere Toplu Gold veya SP Ekleme

Eşya yerine tüm karakterlerin mevcut parasına veya SP havuzuna doğrudan ekleme yapmak isterseniz:

SQL:
USE [SRO_VT_SHARD]
GO

-- Tüm aktif karakterlere 100M Gold ve 500K SP ekler
UPDATE dbo._Char
SET 
    RemainGold = RemainGold + 100000000,
    RemainSkillPoint = RemainSkillPoint + 500000
WHERE CharID > 0

PRINT 'Tüm karakterlere Gold ve SP başarıyla yüklendi.'



Nasıl Uygulanır?

  1. Oyun sunucunuzu bakıma alın veya GameServer pencerelerini kapatın.
  2. SQL Server Management Studio (SSMS) programını açın.
  3. Sol menüden SRO_VT_SHARD veritabanına sağ tıklayıp New Query deyin.
  4. Yukarıdaki SQL kodunu yapıştırın ve göndermek istediğiniz eşyanın kodunu (@ItemCodeName), adedini ve artısını ayarlayın.
  5. F5 tuşuna basarak çalıştırın.
  6. İşlem tamamlandıktan sonra GameServer'ı açıp oyuncularınızı davet edebilirsiniz.

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,467 Aktif Kullanıcı
Çevrimiçi üyeler
Konular 1,311
Mesajlar 4,191
Kullanıcılar 1,624
Son üye mrt
Geri
Üst