vsro
vsro vsro
vsro vsro
vsro vsro
vsro vsro
vsro vsro
vsro

Reklam Alanları Hakkında Bilgilendirme !

Bu Alanlarda Bulunan Reklamlar Ücretlidir. Eğer Tarafımızda Bir Sunucu Hizmetiniz Varsa Eğer Daima Ücretsiz Olarak Kullanabilirsiniz. Detaylı Destek İçin Bizlere Ulaşınız.

Bilgi Silk Scroll Ekleme (Detaylı) (1 Viewer)

Admin

Site Kurucusu
Yönetici
Site Kurucusu
Offline
Merhabalar,
Bu konu her ne kadar daha önce açılmış olsa da, anlatımlar yetersiz kalabiliyor.
Dolayısıyla detaylı bir şekilde anlatma gereği duydum.
Silk scroll oluştururken 2 farklı yol izlenebilir,
Birincisi (dc verdirmeden)_addlogitem'e doğrudan itemin _RefObjCommon'da bulunan ID'si ile bağlanarak,
İkincisi (dc verdirerek) skill oluşturarak dc vermesini sağlayan _addtimedjob prosedürü ile.

İkinci yöntemle oluşturmanız önerilir, birinci yöntemde bug oluşabilir.

Öncelikle SQL'de yapacağımız işlem için gereken tabloları bilelim,
_RefObjCommon
_RefObjItem
_RefSkill
_RefSkillGroup
Prosedür _AddLogItem [SRO_VT_LOG]
Prosedür _AddTimedJob

Haydi başlayalım!
Excell veya notepad++'a gerekli değerli ayrı ayrı çekeceğiz.


#Birinci Yöntemle (dc verdirmeden) Silk scroll oluşturmak için;
#1.1 _RefObjCommon
Aşağıda vermiş olduğum query ile F10'da ekli olan hızlı return'un _RefObjCommon'daki satırlarını bulup alıyoruz.
SQL:
USE SRO_VT_SHARD
Select * FROM _RefObjCommon WHERE Codename128 like 'ITEM_MALL_RETURN_SCROLL_HIGH_SPEED'
Rich (BB code):
1 3769 ITEM_MALL_RETURN_SCROLL_HIGH_SPEED ????? xxx SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED_TT_DESC 1 0 3 3 3 1 180000 3 0 1 1 1 255 0 1 0 0 1 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 xxx item\etc\drop_mall_scroll.bsr item\etc\mall_return_scroll.ddj xxx xxx 2119
Buradaki
Codename128 (ITEM_MALL_RETURN_SCROLL_HIGH_SPEED)
NameStrID128 (SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED)
DescStrID128 (SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED_TT_DESC)
girdilerini yeni oluşturacağımız scroll'a göre değiştiriyoruz.

#1.2 _RefObjItem
Daha sonra aşağıda vermiş olduğum query ile _RefObjItem'deki satırlarını bulup alıyoruz.
SQL:
USE SRO_VT_SHARD
Select b.*
FROM _RefObjCommon AS a
JOIN _RefObjItem AS b ON a.Link=b.ID
WHERE Codename128 like 'ITEM_MALL_RETURN_SCROLL_HIGH_SPEED'
Rich (BB code):
2119 50 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 ???? 1 ?????? -1 RESURRECT -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx 0 0 0
Buradaki
MaxStack (50) yazan değeri 1 yapmayı unutmayın!

#Bu aldığımız satırları _RefObjCommon'a ve _RefObjItem'e giriyoruz, bu sayede scroll'u klonlamış oluyoruz.
#Yeni oluşturduğumuz itemin _RefObjItem ID'sini _RefObjCommon'daki son sütuna Link'e giriyoruz.

#1.3 _AddLogItem Prosedürü
Bu prosedür 2 farklı yerde olduğundan dolayı kafanız karışmasın,
SRO_VT_LOG>Programmability>Stored Procedures>dbo._AddLogItem'i açıyoruz ve as'den sonra prosedürümüzü ekliyoruz;
SQL:
---------Silk Scroll---------
DECLARE @JID int;

SET @JID = (SELECT UserJID FROM [SRO_VT_SHARD].[dbo].[_User] Where CharID = @CharID);

IF (@Operation = 41 AND @ItemRefID = 0000 ) --Buradaki 0000 yerine refobjcommondaki itemin id sini yazınız
BEGIN
IF EXISTS (SELECT * FROM [SRO_VT_ACCOUNT].[dbo].[SK_Silk] where JID = @JID)
UPDATE [SRO_VT_ACCOUNT].[dbo].[SK_Silk] SET silk_own = silk_own + Xwhere JID = @JID --buradaki X yazan yere silk değerini yazınız
ELSE
INSERT INTO [SRO_VT_ACCOUNT].[dbo].[SK_Silk] values (@JID,X,0,0) --buradaki X yazan yere silk değerini yazınız
END

-------------------------------------------------------
##media kısmı için, yukarıda yaptığımız işlemlere göre sadece scroll oluşturduk,
dolayısıyla db2pk2 veya dbtomedia ile Itemdata_xxx.txt'leri çıkartacağız
ve textdata_obj'e yeni oluşturduğumuz scrollun adını ekleyeceğiz.
Textdata_Obj için örnek;
Rich (BB code):
1 SN_ITEM_SILK_SCROLL_10 10 Silk Scroll
1 SN_ITEM_SILK_SCROLL_10_TT_DESC <sml2><strong><font color="255,236,219,156">Talimatlar</font></strong><br><br><strong># </strong>Bu parşömenin kullanımı, kullanıcıya 10 silk bahşedilmesini sağlamaktadır.</sml2>
Itemdata_xxx.txt'leri ve textdata_object.txt'yi patch atacağız.
İşlem tamamlandı tebrikler.

====================================================================================================

Gelelim ikinci yönteme;
#İkinci yöntemle (dc verdirerek) silk scroll oluşturma;

#2.1 _RefSkillGroup
Öncelikle disconnect vermesi için skill oluşturacağız, skill oluşturmadan önce ise skillgroup oluşturmamız gerekiyor.

Rich (BB code):
1015 SKILL_CRYPTO_SILK10_DC
1015 refskillgroupID'miz bu değeri sql otomatik olarak veriyor, SKILL_CRYPTO_SILK10_DC ise bizim oluşturacağımız skill'in kodu.
Burada yapacağımız işlem bu kadar.

#2.2 _RefSkill
Şimdi ise aşağıdaki örnekteki gibi skill'imizi oluşturuyoruz.

Rich (BB code):
1 33791 1015 SKILL_CRYPTO_SILK10_DC ???? ???? SKILL_CRYPTO_SILK10_DC 0 1 1 0 0 0 0 0 1000 0 0 0 3599 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 3 0 0 255 255 0 0 0 0 0 255 255 255 255 crypto\mall_change_guild.ddj SN_SKILL_CRYPTO_SILK10_DC xxx SN_SKILL_CRYPTO_SILK10_DC_TT_DESC xxx 0 0 3 1667396966 1851946342 1685418593 1500 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Buradaki;
RefSkillID sql'in otomatik olarak verdiği ID değeridir.
GroupID _RefSkillGroup'da oluşturduğumuz ID ile aynı olmak zorundadır.
Basic_Code _RefSkillGroup'da oluşturduğumuz Skill koduyla aynı olmak zorundadır.
UI_IconFile clientinizde olan bir ddj yolunu tanımlayın.
SN_SKILL_CRYPTO_SILK10_DC oluşturduğumuz skill'e göre bunuda değiştirin.
SN_SKILL_CRYPTO_SILK10_DC_TT_DESC oluşturduğumuz skill'e göre bunuda değiştirin.

#2.3 _RefObjCommon
Yukarıda da vermiş olduğum query ile F10 Hızlı return scroll'un _RefObjCommon'daki satırlarını alıyoruz;
SQL:
USE SRO_VT_SHARD
Select * FROM _RefObjCommon WHERE Codename128 like 'ITEM_MALL_RETURN_SCROLL_HIGH_SPEED'
Rich (BB code):
1 3769 ITEM_MALL_RETURN_SCROLL_HIGH_SPEED ????? xxx SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED_TT_DESC 1 0 3 3 3 1 180000 3 0 1 1 1 255 0 1 0 0 1 0 0 0 0 0 0 0 -1 0 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 xxx item\etc\drop_mall_scroll.bsr item\etc\mall_return_scroll.ddj xxx xxx 2119
Daha sonra bu aldığımız değerleri yeni oluşturacağımız scroll'a göre düzenliyoruz.

Codename128 (ITEM_MALL_RETURN_SCROLL_HIGH_SPEED)
NameStrID128 (SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED)
DescStrID128 (SN_ITEM_MALL_RETURN_SCROLL_HIGH_SPEED_TT_DESC)
Bu kısımları kendimize göre düzenliyoruz ve aşağıdaki verdiğim sütunların değerlerini düzeltiyoruz.
TypeID1 yerine 3
TypeID2 yerine 3
TypeID3 yerine 13
TypeID4 yerine 14
CanUse yerine 129
olacak şekilde değerlerimizi değiştiriyoruz.

#2.4 _RefObjItem
Daha sonra aşağıda vermiş olduğum query ile _RefObjItem'deki satırlarını bulup alıyoruz.
SQL:
USE SRO_VT_SHARD
Select b.*
FROM _RefObjCommon AS a
JOIN _RefObjItem AS b ON a.Link=b.ID
WHERE Codename128 like 'ITEM_MALL_RETURN_SCROLL_HIGH_SPEED'
Rich (BB code):
2119 50 2 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1000 ???? 1 ?????? -1 RESURRECT -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx -1 xxx 0 0 0
Buradaki işlemimiz birincidekinden biraz farklı olacak;
MaxStack 1 yapacağız ardından,

Desc2_128 kısmını RefSkill'de oluşturduğumuz basic_code'a göre düzenleyeceğiz, aşağıdaki örnekteki gibi.
[USU1:SKILL_CRYPTO_SILK10_DC]

Desc3_128'de bulunan RESURRECT'i xxx olarak değiştireceğiz.

#2.5 _AddTimedJob Prosedürü
Prosedürde bulunan return -3 disconnect vermesini sağlar. X yerine silk miktarını @JobID='den sonra 33791 yerine refskillID'nizi girerek tamamlayabilirsiniz.
SQL:
----------------------Silk Scrolls------------------------------
IF(@JobID= 33791) -- 33791 yerine refskillID mizi gireceğiz--
BEGIN
declare @USERID varchar(64) = (Select StrUserID from SRO_VT_ACCOUNT.dbo.TB_User inner join SRO_VT_SHARD.dbo._User
On SRO_VT_SHARD.dbo._User.UserJID = SRO_VT_ACCOUNT.dbo.TB_User.JID where SRO_VT_SHARD.dbo._User.CharID = @CharID)
EXEC [SRO_VT_ACCOUNT].[CGI].[CGI_WebPurchaseSilk] @OrderID = NULL, @UserID = @USERID, @PkgID = NULL, @NumSilk = X, @Price = X --X yerine silk miktarını gireceğiz--
return -3
END
----------------------------------------------------------------
##media kısmı için, yukarıda yaptığımız işlemlere göre;
dbtomedia veya db2pk2 ile skilldata_xxx_enc.txt'lerimizi çıkartacağız (dbtomedia'da sorun yaşayabilirsiniz o yüzden db2pk2...
İçeriğin tamamını görüntülemek için lütfen giriş yapınız. Giriş yap veya üye ol.