Merhaba, Hoşgeldin!

VSRO.org, Silkroad Online, Knight Online, Metin2 ve diğer çevrimiçi oyunlar için öncü bir yardım ve geliştirme platformudur. Misyonumuz, bilgi ve deneyim sahibi bireyleri, bilgiye ihtiyaç duyanlarla bir araya getirerek, zengin bir etkileşim ortamı yaratmak ve farklı bakış açılarını birleştirmektir. Topluluğumuzda güçlü bir işbirliği ve öğrenme kültürü oluşturarak, herkesin değerli katkılarda bulunmasını sağlıyoruz.

Yeni başlayanlar için Silk Scroll Ekleme (Detaylı)

Katılım
31 Mar 2019
Mesajlar
713
Tepkime puanı
933
Puanları
93
Konum
Mersin
Türk Lirası
0.00₺
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.
##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):
İçeriği görebilmek için Giriş yap ya da üye ol.

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):
İçeriği görebilmek için Giriş yap ya da üye ol.
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):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

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:
İçeriği görebilmek için Giriş yap ya da üye ol.

##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 kullanmanızı öneririm.)
dbtomedia veya db2pk2 ile itemdata_xxx.txt'lerimizi çıkartacağız.
pk2 çıkarıcı ile textdata_object.txt'mizi çıkartacağız ve textdata_object.txt'ye yeni oluşturduğumuz scroll'u ekleyeceğiz.
Son olarak skilldata_xxx_enc.txt & itemdata_xxx.txt & textdata_object.txt'yi patch atacağız.
İşlem tamamlandı tebrikler!
 
Son düzenleme:
Açıklayıcı olmuş ama şunu belirtelim ki diğerine göre dc verdirtme, en sağlıklı yöntem
 
Bu nasıl anlatım? Kör olsan bile yaparsın bunu.
Harikasın kardeşim, eline emeğine sağlık.
@Spare sabitlersen mükemmel olur.
 
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.
##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):
İçeriği görebilmek için Giriş yap ya da üye ol.

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):
İçeriği görebilmek için Giriş yap ya da üye ol.
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):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.
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:
İçeriği görebilmek için Giriş yap ya da üye ol.

Rich (BB code):
İçeriği görebilmek için Giriş yap ya da üye ol.

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:
İçeriği görebilmek için Giriş yap ya da üye ol.

##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 kullanmanızı öneririm.)
dbtomedia veya db2pk2 ile itemdata_xxx.txt'lerimizi çıkartacağız.
pk2 çıkarıcı ile textdata_object.txt'mizi çıkartacağız ve textdata_object.txt'ye yeni oluşturduğumuz scroll'u ekleyeceğiz.
Son olarak skilldata_xxx_enc.txt & itemdata_xxx.txt & textdata_object.txt'yi patch atacağız.
İşlem tamamlandı tebrikler!
/ Konu sabittir.

Özlemişiz @trukafatsum kalitesini. ☺️
Eline emeğine sağlık harika anlatım olmuş Mustafa. ❤️

@minikbirkul etiketleme için teşekkürler. ?☺️
 
/ Konu sabittir.

Özlemişiz @trukafatsum kalitesini. ☺
Eline emeğine sağlık harika anlatım olmuş Mustafa. ❤

@minikbirkul etiketleme için teşekkürler. ?☺
Her zaman fırsat bulamıyorum, yapmışken iyi bir anlatım yapmak gerek ☺
Teşekkürler♥
Eline sağlık kardeşim.
Teşekkürler kardeşim. ;)
Bu nasıl anlatım? Kör olsan bile yaparsın bunu.
Harikasın kardeşim, eline emeğine sağlık.
@Spare sabitlersen mükemmel olur.
Övdün mü sövdün mü bilemedim yine de teşekkürler ?
Malum daha bu işlere girmemiş veya yeni başlamış arkadaşlar da gelecektir.
 
eline sağlık ancak bu hiç sağlıklı bir yöntem değil bilgin olsun cgi üzerinden ve timedjob bazlı yaparsan hem anlık gelecektir hemde gereksiz sorgu sorunu yaşamayacaksın şahsen bu anlatımdaki yöntemi önermiyorum
 
eline sağlık ancak bu hiç sağlıklı bir yöntem değil bilgin olsun cgi üzerinden ve timedjob bazlı yaparsan hem anlık gelecektir hemde gereksiz sorgu sorunu yaşamayacaksın şahsen bu anlatımdaki yöntemi önermiyorum
Hocam anlık gelmesi için ne yapmak gerekiyor ? Anlatır mısın ?
 
Geri
Üst Alt