- Katılım
- 10 Ara 2024
- Mesajlar
- 13
- Tepkime puanı
- 1
- Puanları
- 103
- Ülke
- TÜRKİYE
- Ad
- Yasko
- Soyad
- Coder
- Discord
ı- Model Switcher Nedir?
Model Switcher'ı bilmeyenler için tanımlamak gerekirse en basitinden şöyle tanımlanabilir herhalde ;
Bir iteme yeni bir görünüm kazandırmak. Örnek ile anlatmam gerekirse sanırım daha iyi anlaşılacak ;
Misal diyelim elinizde 10 Degree Moon Sword var. Ve siz bunun özelliklerini kaybetmeden 1 Degree'ye çevirmek istiyorsunuz. İşte tamda budur Model Switcher.
-- Model Switcher Kurulumu Gerekenler
İhtiyacımız olanlar ;
SRO_VT_SHARD / RefobjCommon Tablosu
SRO_VT_SHARD / Refobjitem Tablosu
Media / itemdata4500
Media / texdata_object.txt
Model Switcher Kurulum Aşaması (DATABASE KISMI)
Bu işlemde kademeli gidelim istiyorum. Çünkü oluşturmamız gereken hem Model Switcher Scroll'u hemde itemlerimizi oluşturmamız gerek. Dilerseniz önce basite kaçıp Model Switcher Scroll'umuzu ekleyelim.
Model Switcher Scroll'u Kurulum Aşaması (DATABASE KISMI)
Öncelikle kafanız karışmasın diye yeniden _RefObjItem Tablosunu kullanarak şu satırları eklemenizi istiyorum;
23097 sizin _RefObjItem ID'niz olmasına dikkat edin biraz sonra kullanacağız.
Şimdi burada işimiz bitti, sırada _RefObjCommon adlı tabloya giriş yapmaya geldi;
44759 ID _RefObjCommon için vermiş olduğunuz yeni ID olsun.
Satır sonu 23097 vermiş olduğum ID, Biraz Önceki _RefObjItem ID'si ile aynı olmasına dikkat edin.
Model Switcher Scroll'u Kurulum Aşaması (MEDIA KISMI)
ItemData45000'i çıkartıyoruz ve en alta şu eklmemizi yapıyoruz;
44759 _RefObjCommon alanı olacak.
Hadi buna da isim verelim;
textdata_object'i açalım ve şunları ekleyelim;
Evvet, Switcher kısmını tamamladık. Şimdi dönüşüm işinden bahsedelim.
Model Switcher Dönüşecek İtemin Kurulum Aşaması (DATABASE KISMI)
Şimdi biraz kafanız karışabilir, yahu kardeşim yukarıdaki ne bu ne diye. Onu da şöyle açıklayayım ;
Yukarıda sadece değişim için scroll hazırladık. Ama düşünsenize bu item aynı özelliklerde bi iteme nasıl dönüşsün diye. İmkansız gibi geliyor değil mi? Ama değil. Sadece biraz yorulacağız o kadar. Ama sonu müthiş olacak söyleyeyim.
Yukarıda örneği 10 Degree Moon Sword için vermiştim hatırlıyorsanız, gelin örneği hiç bozmadan, kafanızı karıştırmadan 10 Degree Moon Sword'u 1 Degree görünümüne nasıl vereceğimizi anlatalım.
Bize neler lazım;
10D Moon Sword İteminin Özellikleri.
Bu özellikleri nerede bulacağım diyorsanız aslında çok basit. Yapmamız gereken dönüşüm yapacak olduğumuz itemin _RefObjCommon'dan Linkini almak ve o Link ID'si ile _RefObjItem'den satırı kopyalamak.
Misal 10 Degree Moon Sword'u ben RefObjCommonda aratıyorum ve aldığım sonuç ;
Peki kardeş bunun Link'i neresi diye sorarsanız yukarıda satırın en sonunda görmüş olduğunuz , 2319
Şimdi bunu _RefObjItem'in ID'sinde arayacağız. Yani ID'si 2319 olanı bulacağız. Bakalım buradan ne sonuç alıyorum ben ;
Gördüğünüz gibi 2319 ID'sine ait aldığım sonuç budur. Şimdi kardeş ben bunu ne yapacağım derseniz, RefObjItem'e yeni bir satır ekleyeceksiniz. Hemde hiçbirşeyini değiştirmeyeceksiniz. Değişen sadece ID olacak yani 2319 yerine Yeni bir ID sahibi olacaksınız.
Hadi onuda verelim bakalım ;
Gördünüz mü, değişen sadece ID. gerisi hepsi aynı. Şimdi işin zevkli yanına yani _RefObjCommona ekleme yerine gelelim. 10 Degree Moon Sword için yukarıda RefObjCommon bilgilerini göstermiştik, biraz ekleme yapıp birkaç yeri değiştireceğiz o kadar.
Neleri değiştirdiğimize ve neden değiştirdiğimize bir göz atalım ki akılda kalıcı olsun;
44773, sahip olduğu yeni ID'si bunu zaten değiştirmeniz gerektiğiniz anlamışsınızdır.
1 Degree görünüm için "_LOOK1" , 2 Degree Görünüm için "_LOOK2" şeklinde devam etmek zorundasınız.Aksi takdirde çalışmaz.
item\china\weapon\sword_01.bsr , item\china\weapon\sword_01.ddj yollarını 10D itemimiz 1Degree Swic'e dönüşecegi için onun bsr ve ddj yollarını yazıyoruz.
23111 ID ise az önce _RefObjItem de yeni oluşturduğumuz ID'dir.
Model Switcher Dönüşecek İtemin Kurulum Aşaması (MEDIA KISMI)
ItemData45000'i çıkartıyoruz ve en alta şu eklememizi yapıyoruz;
Harikasınız! Bunları Update edin, son olarak Model Switcher'ımız için Prosedürümüzü yazalım ve deneyelim.
SRO_VT_LOG > Programmability > Stored Procedures yolundaki _AddLogItem'i açalım ve şunu ekleyelim ;
Burada da dikkat etmeniz gerek yukarıdaki koddaki kırmızı ID. Bu ID : Yukarıda Model Switcher Scroll için RefObjCommon tablosuna giriş yapmıştık hatırlıyorsanız. İşte onun ID'si olacak.
Model Switcher Kullanımı Dikkat Edilmesi Gereken Nokta
Değiştirmek istediğiniz item çantanızda "1." slotta olması gerekmekte. Ama model switcher isterseniz 3. sayfada olsun önemli değil. Ama item 1. slotta olmak zorunda.
Model Switcher'ı bilmeyenler için tanımlamak gerekirse en basitinden şöyle tanımlanabilir herhalde ;
Bir iteme yeni bir görünüm kazandırmak. Örnek ile anlatmam gerekirse sanırım daha iyi anlaşılacak ;
Misal diyelim elinizde 10 Degree Moon Sword var. Ve siz bunun özelliklerini kaybetmeden 1 Degree'ye çevirmek istiyorsunuz. İşte tamda budur Model Switcher.
-- Model Switcher Kurulumu Gerekenler
İhtiyacımız olanlar ;
SRO_VT_SHARD / RefobjCommon Tablosu
SRO_VT_SHARD / Refobjitem Tablosu
Media / itemdata4500
Media / texdata_object.txt
Model Switcher Kurulum Aşaması (DATABASE KISMI)
Bu işlemde kademeli gidelim istiyorum. Çünkü oluşturmamız gereken hem Model Switcher Scroll'u hemde itemlerimizi oluşturmamız gerek. Dilerseniz önce basite kaçıp Model Switcher Scroll'umuzu ekleyelim.
Model Switcher Scroll'u Kurulum Aşaması (DATABASE KISMI)
Öncelikle kafanız karışmasın diye yeniden _RefObjItem Tablosunu kullanarak şu satırları eklemenizi istiyorum;
SQL:
23097 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
23097 sizin _RefObjItem ID'niz olmasına dikkat edin biraz sonra kullanacağız.
Şimdi burada işimiz bitti, sırada _RefObjCommon adlı tabloya giriş yapmaya geldi;
SQL:
1 44759 ITEM_MALL_YASKO_SWITCHER_01 ???? ???? ??? (???) xxx SN_ITEM_MALL_YASKO_SWITCHER_01 SN_ITEM_MALL_YASKO_SWITCHER_01_TT_DESC 1 0 3 3 3 1 180000 3 0 1 1 1 255 1 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\model_switcher.ddj xxx xxx 23097
44759 ID _RefObjCommon için vermiş olduğunuz yeni ID olsun.
Satır sonu 23097 vermiş olduğum ID, Biraz Önceki _RefObjItem ID'si ile aynı olmasına dikkat edin.
Model Switcher Scroll'u Kurulum Aşaması (MEDIA KISMI)
ItemData45000'i çıkartıyoruz ve en alta şu eklmemizi yapıyoruz;
SQL:
1 44759 ITEM_MALL_YASKO_SWITCHER_01 ???? ???? ??? (???) xxx SN_ITEM_MALL_YASKO_SWITCHER_01 SN_ITEM_MALL_YASKO_SWITCHER_01_TT_DESC 1 0 3 3 3 1 180000 3 0 1 1 1 255 1 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\model_switcher.ddj xxx xxx 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
44759 _RefObjCommon alanı olacak.
Hadi buna da isim verelim;
textdata_object'i açalım ve şunları ekleyelim;
SQL:
1 SN_ITEM_MALL_YASKO_SWITCHER_01 1 Degree Model Switcher
1 SN_ITEM_MALL_YASKO_SWITCHER_01_TT_DESC 1 Degree Model Switcher
Evvet, Switcher kısmını tamamladık. Şimdi dönüşüm işinden bahsedelim.
Model Switcher Dönüşecek İtemin Kurulum Aşaması (DATABASE KISMI)
Şimdi biraz kafanız karışabilir, yahu kardeşim yukarıdaki ne bu ne diye. Onu da şöyle açıklayayım ;
Yukarıda sadece değişim için scroll hazırladık. Ama düşünsenize bu item aynı özelliklerde bi iteme nasıl dönüşsün diye. İmkansız gibi geliyor değil mi? Ama değil. Sadece biraz yorulacağız o kadar. Ama sonu müthiş olacak söyleyeyim.
Yukarıda örneği 10 Degree Moon Sword için vermiştim hatırlıyorsanız, gelin örneği hiç bozmadan, kafanızı karıştırmadan 10 Degree Moon Sword'u 1 Degree görünümüne nasıl vereceğimizi anlatalım.
Bize neler lazım;
10D Moon Sword İteminin Özellikleri.
Bu özellikleri nerede bulacağım diyorsanız aslında çok basit. Yapmamız gereken dönüşüm yapacak olduğumuz itemin _RefObjCommon'dan Linkini almak ve o Link ID'si ile _RefObjItem'den satırı kopyalamak.
Misal 10 Degree Moon Sword'u ben RefObjCommonda aratıyorum ve aldığım sonuç ;
SQL:
1 4042 ITEM_CH_SWORD_10_B_RARE 10? ? (?) xxx SN_ITEM_CH_SWORD_10_B_RARE SN_ITEM_CH_SWORD_10_B_RARE_TT_DESC 0 0 3 1 6 2 180000 0 6 1 1 1 255 3 1 1 1 0 0 8426000 6980 10471 0 9000 2949100 1 90 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 item\china\weapon\sword_10.bsr item\etc\drop_ch_equip_rare.bsr item\china\weapon\sword_10.ddj xxx xxx 2319
Peki kardeş bunun Link'i neresi diye sorarsanız yukarıda satırın en sonunda görmüş olduğunuz , 2319
Şimdi bunu _RefObjItem'in ID'sinde arayacağız. Yani ID'si 2319 olanı bulacağız. Bakalım buradan ne sonuç alıyorum ben ;
SQL:
2319 1 2 0 0 29 79 123 151 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 2 0 6 1483 1573 1650 1740 45 2528 2683 2863 3018 77,4 2189 2278 2468 2567 3725 3876 4282 4456 116 244 0 5 17 -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 -1 xxx -1 xxx 0 ?? ??? ?? ?? ? 9 0 0
Gördüğünüz gibi 2319 ID'sine ait aldığım sonuç budur. Şimdi kardeş ben bunu ne yapacağım derseniz, RefObjItem'e yeni bir satır ekleyeceksiniz. Hemde hiçbirşeyini değiştirmeyeceksiniz. Değişen sadece ID olacak yani 2319 yerine Yeni bir ID sahibi olacaksınız.
Hadi onuda verelim bakalım ;
SQL:
23111 1 2 0 0 29 79 123 151 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 2 0 6 1483 1573 1650 1740 45 2528 2683 2863 3018 77,4 2189 2278 2468 2567 3725 3876 4282 4456 116 244 0 5 17 -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 -1 xxx -1 xxx 0 ?? ??? ?? ?? ? 9 0 0
Gördünüz mü, değişen sadece ID. gerisi hepsi aynı. Şimdi işin zevkli yanına yani _RefObjCommona ekleme yerine gelelim. 10 Degree Moon Sword için yukarıda RefObjCommon bilgilerini göstermiştik, biraz ekleme yapıp birkaç yeri değiştireceğiz o kadar.
SQL:
1 44773 ITEM_CH_SWORD_10_B_RARE_LOOK1 10? ? (?) xxx SN_ITEM_CH_SWORD_10_B_RARE SN_ITEM_CH_SWORD_10_B_RARE_TT_DESC 0 0 3 1 6 2 180000 0 6 1 1 1 255 3 1 1 1 0 0 8426000 6980 10471 0 9000 2949100 1 90 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 item\china\weapon\sword_01.bsr item\etc\drop_ch_equip_rare.bsr item\china\weapon\sword_01.ddj xxx xxx 23111
Neleri değiştirdiğimize ve neden değiştirdiğimize bir göz atalım ki akılda kalıcı olsun;
44773, sahip olduğu yeni ID'si bunu zaten değiştirmeniz gerektiğiniz anlamışsınızdır.
1 Degree görünüm için "_LOOK1" , 2 Degree Görünüm için "_LOOK2" şeklinde devam etmek zorundasınız.Aksi takdirde çalışmaz.
item\china\weapon\sword_01.bsr , item\china\weapon\sword_01.ddj yollarını 10D itemimiz 1Degree Swic'e dönüşecegi için onun bsr ve ddj yollarını yazıyoruz.
23111 ID ise az önce _RefObjItem de yeni oluşturduğumuz ID'dir.
Model Switcher Dönüşecek İtemin Kurulum Aşaması (MEDIA KISMI)
ItemData45000'i çıkartıyoruz ve en alta şu eklememizi yapıyoruz;
SQL:
1 44773 ITEM_CH_SWORD_10_B_RARE_LOOK1 10? ? (?) xxx SN_ITEM_CH_SWORD_10_B_RARE SN_ITEM_CH_SWORD_10_B_RARE_TT_DESC 0 0 3 1 6 2 180000 0 6 1 1 1 255 3 1 1 1 0 0 8426000 6980 10471 0 9000 2949100 1 90 -1 0 -1 0 -1 0 -1 0 0 0 0 0 0 0 100 0 0 0 item\china\weapon\sword_01.bsr item\etc\drop_ch_equip_rare.bsr item\china\weapon\sword_01.ddj xxx xxx 1 2 0 0 29 79 123 151 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 2 0 6 1483 1573 1650 1740 45 2528 2683 2863 3018 77.4 2189 2278 2468 2567 3725 3876 4282 4456 116 244 0 5 17 -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 -1 xxx -1 xxx 0 ?? ??? ?? ?? ? 9 0
Harikasınız! Bunları Update edin, son olarak Model Switcher'ımız için Prosedürümüzü yazalım ve deneyelim.
SRO_VT_LOG > Programmability > Stored Procedures yolundaki _AddLogItem'i açalım ve şunu ekleyelim ;
SQL:
------ Model Switcher 1DG
IF(@Operation = 41 AND @ItemRefID= 45487) -- 1 Dg Model Switcher (SOM)
Begin
Declare @refItemID int;
Declare @ItemCode varchar(64);
Declare @NewItemID varchar(64);
SET @refItemID = (SELECT RefItemID From [SRO_VT_SHARD].[dbo].[_Items] Where ID64 = ( Select ItemID From [SRO_VT_SHARD].[dbo].[_Inventory] Where CharID = @CharID and Slot = '13' and ItemID > 0 ));
SET @ItemCode = (SELECT NameStrID128 From [SRO_VT_SHARD].[dbo].[_RefObjCommon] Where ID = @refItemID);
SET @NewItemID = (SELECT ID From [SRO_VT_SHARD].[dbo].[_RefObjCommon] Where NameStrID128 = @ItemCode AND CodeName128 like '%LOOK1' );
Update [SRO_VT_SHARD].[dbo].[_Items] Set RefItemID = @NewItemID Where ID64 = ( Select ItemID From [SRO_VT_SHARD].[dbo].[_Inventory] Where CharID = @CharID and Slot = '13' and ItemID > 0 );
END
Burada da dikkat etmeniz gerek yukarıdaki koddaki kırmızı ID. Bu ID : Yukarıda Model Switcher Scroll için RefObjCommon tablosuna giriş yapmıştık hatırlıyorsanız. İşte onun ID'si olacak.
Model Switcher Kullanımı Dikkat Edilmesi Gereken Nokta
Değiştirmek istediğiniz item çantanızda "1." slotta olması gerekmekte. Ama model switcher isterseniz 3. sayfada olsun önemli değil. Ama item 1. slotta olmak zorunda.
Moderatör tarafında düzenlendi: