Oyun Ortağım sunucu Hizmetleri
  • Ana sayfa
  • Forumlar
  • Silkroad Online
  • Silkroad Private Server Kurulumu
  • vSRO Model Switcher Kurulum

    Tayfun Bey

    Süper Mod
    Süper Moderator
    T.C Vatandaşı
    19 Eki 2021
    91
    39
    Çevrimiçi zamanı
    19h 17m
    8
    Bursa
    Best answers
    0
    Oyuncu
    Metin2,Silkroad
    1- Model Switcher Nedir?

    Model Switcher'ı bilmeyenler için tanımlamak gerekirse ;

    Bir iteme yeni bir görünüm kazandırmak.

    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_DTRACTUS_SWITCHER_01    ???? ???? ??? (???)    xxx    SN_ITEM_MALL_DTRACTUS_SWITCHER_01    SN_ITEM_MALL_DTRACTUS_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_DTRACTUS_SWITCHER_01    ???? ???? ??? (???)    xxx    SN_ITEM_MALL_DTRACTUS_SWITCHER_01    SN_ITEM_MALL_DTRACTUS_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_DTRACTUS_SWITCHER_01                                1 Degree Model Switcher
    1    SN_ITEM_MALL_DTRACTUS_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 );

    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.
     
    Üst