- #1
Konu Sahibi
: serkankacan
[REHBER & QUERY] vSRO Forgotten World (FGW) Kitap Ödüllerini Değiştirme
_RefQuestRewardItems Üzerinden Koleksiyon Kitaplarının (Collection Book) Verdiği Silah ve Eşyaları Güncelleme
_RefQuestRewardItems Üzerinden Koleksiyon Kitaplarının (Collection Book) Verdiği Silah ve Eşyaları Güncelleme
Merhaba değerli forum sakinleri,
**Forgotten World (FGW - Kayıp Dünya)** zindanlarında oyuncuların topladığı koleksiyon kitapları (Collection Book / Talisman koleksiyonu) tamamlandığında verilen ödül eşyalarını (standart olarak Sun / SOS silahlar) kendi sunucu konseptinize göre farklı bir itemle (örn: Yeni degree silah, coin veya özel bir scroll) değiştirmek isteyebilirsiniz.
Bu rehberde, görev ödül eşyalarını listeleyip referans ID'leri (
RefItemID) ile birlikte hatasız ve güvenli şekilde güncelleyen yöntemi anlatıyoruz.Önemli Uyarı' Alıntı:DİKKAT (Client - Server Senkronizasyonu):
- Sadece
ItemCodeNamemetnini değiştirmek yetmez; eşyanınRefItemIDdeğeri de `_RefObjCommon` ile eşitlenmelidir. Aşağıdaki kod bu eşitlemeyi otomatik yapar.- SQL tarafında yapılan ödül değişikliklerinin oyuncunun görev ekranında (Quest penceresi) doğru görünmesi için Media.pk2 (server_dep\refquestrewarditems.txt) dosyasında da aynı değişiklikleri yapıp patch atmanız gerekmektedir.
- İşlem öncesinde SRO_VT_SHARD yedeğinizi almayı unutmayınız.
1. Adım: Mevcut FGW Ödüllerini Listeleme
Hangi kitap görevinin hangi ödülü verdiğini ve mevcut eşya kodlarını görmek için bu sorguyu çalıştırın:
SQL:
USE [SRO_VT_SHARD]
GO
-- FGW Koleksiyon Kitap Ödüllerini Listeler
SELECT
QRI.QuestID,
QRI.RewardType,
QRI.RefItemID,
QRI.ItemCodeName,
QRI.RentCodeName
FROM dbo._RefQuestRewardItems QRI
WHERE QRI.ItemCodeName LIKE '%SET%'
OR QRI.ItemCodeName LIKE '%RARE%'
2. Adım: Ödül Eşyasını Güvenli Olarak Değiştirme (Tam Senkron)
Aşağıdaki sorgu, eski eşya kodunun yerine yeni belirlediğiniz eşya kodunu yazar ve `_RefObjCommon` tablosuna bağlanarak doğru `RefItemID` değerini otomatik atar:
SQL:
USE [SRO_VT_SHARD]
GO
-- ===================================================================
-- DEĞİŞKENLER
-- ===================================================================
DECLARE @EskiItem VARCHAR(128) = 'ESKI_ITEM_KODUNU_YAZIN' -- Değiştirilecek mevcut ödül kodu
DECLARE @YeniItem VARCHAR(128) = 'YENI_ITEM_KODUNU_YAZIN' -- Verilmesini istediğiniz yeni ödül kodu
-- ===================================================================
-- GÜNCELLEME İŞLEMİ (Kod ve RefItemID Birlikte Güncellenir)
-- ===================================================================
UPDATE QRI
SET QRI.ItemCodeName = @YeniItem,
QRI.RefItemID = ROC.ID
FROM dbo._RefQuestRewardItems QRI
CROSS JOIN dbo._RefObjCommon ROC
WHERE QRI.ItemCodeName = @EskiItem
AND ROC.CodeName128 = @YeniItem
3. Adım: Media.pk2 Güncellemesi
- SQL sorgusunu başarıyla çalıştırdıktan sonra bir PK2 Editörü yardımıyla `Media.pk2` dosyasını açın.
server_dep\refquestrewarditems.txtdosyasını dışarı aktarın (Export).- Notepad++ ile dosyayı açıp
CTRL + H(Değiştir) kombinasyonunu kullanarak eski item kodunu yeni item kodu ile değiştirin. - Dosyayı kaydedip tekrar Media.pk2 içine aktarın (Import).
- Sunucunuzdaki GameServer modüllerini yeniden başlatın.
Artık oyuncular koleksiyon kitabını teslim ettiklerinde tanımladığınız yeni ödülü eksiksiz teslim alacaktır. Sorularınızı konu altından belirtebilirsiniz!

