Tüm ITEM ve ITEM_UPGRADE Tablosunu Düzenleme

Yeni Üye
Katılım
23 Nisan 2025
Mesajlar
3
ITEM tablosuyla ITEM_UPGRADE tablosunu birbirine bağlayan 2 bağlam vardır. Bunları izah edelim. Bu bağlamlar uzun emekler sonucu keşfedilmiştir, okuyunuz ve anlayınız.




1) ITEM_UPGRADE tablosundaki nIndex sütunu ile ITEM tablosundaki Num sütunu arasında bağımlılık vardır.

ITEM tablosunun Num sütunundaki değerlerin baş sayısı ile (yani Num sütunundaki değerin baştan 1. basamağındaki sayı ile) ITEM_UPGRADE tablosunun nIndex sütunundaki değerlerin baş sayısı (yani nIndex sütunundaki değerin baştan 1. basamağındaki sayı) arasında bağımlılık vardır. Bu değerler aynı olmak zorundadırlar. Hem ITEM hem ITEM_UPGRADE tablosunu oluşturan satırlarımıza tablolarımızı açıp baktığımızda bu baş sayı değerlerinin 1 olduğu satırlar bir silahla/pusatla, 2 olduğu satırlar bir giysiyle/kıyafetle/kılıkla, 3 olduğu satırlar bir takıyla ilgilidir, her iki tablo için de bu geçerlidir.


* ITEM tablosundan örnekler verelim:

Hiçbir kağıtla basılmamış/çıplak Dagger (+6)'nın ITEM tablosundaki Num sütunu değeri 110110706'dır. Renklendirdiğim sayıya bakalım, 1'dir, yani ITEM tablosundan silaha ilişkin bir satıra bakıyorum demek oluyor bu.

STR bonuslu Priest Full Plate Armor Pauldron (+2)'nin ITEM tablosundaki Num sütunu değeri 284001832'dir. Renklendirdiğim sayıya bakalım, 2'dir, yani ITEM tablosundan kıyafete ilişkin bir satıra bakıyorum demek oluyor bu.

Secret-Silver Earring'in ITEM tablosundaki Num sütunu değeri 310410107'dir. Renklendirdiğim sayıya bakalım, 3'tür, yani ITEM tablosundan takıya ilişkin bir satıra bakıyorum demek oluyor bu.



* ITEM_UPGRADE tablosundan örnekler verelim:

Hiçbir kağıtla basılmamış/çıplak Dagger (+6)'nın ITEM_UPGRADE tablosundaki basım satırlarının nIndex sütunu değerlerine bakalım. Çıplak Dagger (+6)'nın; Low Class Reduce Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100006, Low Class Elemental scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100016, Low Class Upgrade Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100026, Middle Class Reduce Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100056, Middle Class Elemental Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100066, Middle Class Upgrade Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100076, Blessed Reduce Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100156, Blessed Elemental Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100166, Blessed Upgrade Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100176, Blessed Upgrade Scroll ve Trina's Piece ile basımına ilişkin satırın nIndex sütunundaki değer 100206, High Class Reduce Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100396, High Class Elemental Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 100406'dır, High Class Upgrade Scroll ile basımına ilişkin bir basım satırı yoktur, çünkü +6 bir item'den bahsediyoruz. Renklendirdiğim sayılara bakalım, hep 1'dir, yani ITEM_UPGRADE tablosundan bir silaha ilişkin basım satırlarına bakıyorum demek oluyor bu.

STR bonuslu Priest Full Plate Armor Pauldron (+2)'nin ITEM_UPGRADE tablosundaki basım satırlarının nIndex sütunu değerlerine bakalım. STR bonuslu Priest Full Plate Armor Pauldron (+2)'nin; Middle Class Upgrade Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 200422, Blessed Upgrade Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 200822, Blessed Upgrade Scroll ve Trina's Piece ile basımına ilişkin satırın nIndex sütunundaki değer 200902, High Class Upgrade Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 201452'dir. Renklendirdiğim sayılara bakalım, hep 2'dir, yani ITEM_UPGRADE tablosundan bir kıyafete ilişkin basım satırlarına bakıyorum demek oluyor bu.

Secret-Silver Earring'in ITEM_UPGRADE tablosundaki basım satırının nIndex sütunu değerlerine bakalım. Secret-Silver Earring'in, Accessory Compound Scroll ile basımına ilişkin satırın nIndex sütunundaki değer 310011'dir. Renklendirdiğim sayı 3'tür, yani ITEM_UPGRADE tablosundan bir takıya ilişkin basım satırına bakıyorum demek oluyor bu.


* Anlatımı yoğunlaştıralım:

110110706 > ITEM tablosundaki bir silaha ilişkin satırın Num sütunundaki değer
284001832 > ITEM tablosundaki bir kıyafete ilişkin satırın Num sütunundaki değer
310410107 > ITEM tablosundaki bir takıya ilişkin satırın Num sütunundaki değer

100206 > ITEM_UPGRADE tablosundaki bir silaha ilişkin satırın nIndex sütunundaki değer
201452 > ITEM_UPGRADE tablosundaki bir kıyafete ilişkin satırın nIndex sütunundaki değer
310011 > ITEM_UPGRADE tablosundaki bir takıya ilişkin satırın nIndex sütunundaki değer


ITEM_UPGRADE tablosundaki nIndex sütunu ile ITEM tablosundaki Num sütunu birbirlerine bağımlıdır. Yani ITEM_UPGRADE tablosu için bir basım satırı oluştururken basım satırının nIndex sütunu değerini belirlemekte tam bir serbesti içinde değiliz. Bütün bu anlatım bu durumu kavratmak içindir. Bir silaha ilişkin basım satırı oluşturuyorsak bu nIndex sütununa ait değerin baştan 1. basamağındaki sayı, yani bu değerin baş sayısı 1 olmak zorundadır. Basım satırı kıyafete ilişkinse bu değer 2 olmak zorundadır. Basım satırı takıya ilişkinse bu değer 3 olmak zorundadır. Çünkü bu itemlerin ITEM tablosundaki satırlarının Num sütunu değerlerinin baş sayısı da silahsa 1'dir, kıyafetse 2'dir, takıysa 3'tür. Yani birbirlerine bağımlıdırlar.

Bir basım satırı oluştururken nIndex sütunu değerleri açısından tam bir serbesti içinde olmasak da baş sayıdan sonra gelen kısım için serbesti içindeyiz, örneğin 201452 değerinde 2'yi farklı bir değer yapamayız ama altını çizdiğim kısmı(01452) değiştirmekte serbestiz. Yani ITEM_UPGRADE tablosundaki nIndex sütunu değerlerini belirlemekte yarı serbesti içindeyiz diyebiliriz.

Hem unike hem sıradan silahların, hem ITEM tablosundaki Num sütunu değerlerinin baş sayısı hem de ITEM_UPGRADE tablosundaki bu itemlere ilişkin basım satırlarının nIndex değerlerinin baş sayısı 1'dir. Yani itemlerin unike ve sıradan oluşları baş sayı konusunda farklılık yaratmıyor. Aynı durum takılarda da vardır. Hem unike hem sıradan takıların her iki tabloda da ilgili sütun(Num ve nIndex) değerlerinin baş sayıları 3'tür. 70 Quest itemleri açısından farklı bir durum var, bu itemler silah olmasına karşın ITEM tablosundaki Num sütunu değerlerinin baş sayıları 9'dur. Böyle olunca bu 70 Quest itemlerine ilişkin ITEM_UPGRADE tablosundaki basım satırlarının nIndex sütun değerlerinin baş sayısı da 9 olmak zorunda oluyor.







2) ITEM_UPGRADE tablosundaki nOriginItem sütunu ile ITEM tablosundaki Num sütunu arasında bağımlılık vardır.

Bu bağımlılık az çok herkes tarafından bilinir. Low-middle-high class ayrımı bu bağımlılıktan gerçekleştirilir. Ellenmemiş bir ITEM tablosundaki sıradan item'lere ilişkin satırların Num sütunu değerlerinin son 3 basamağı 001-099 arasındaki sayılardan oluşur. Yani ellenmemiş bir ITEM tablosunda hem low hem middle hem high class item'lere ilişkin item satırları item basımını ayrımlı kılacak biçimde oluşturulmamıştır. Yani konunun başında ITEM tablosunda yaptığımız değişiklikler ayrımlı item basımını yapmak içindi. Biz low class itemlerin ITEM tablosundaki Num sütunu değerlerinin son 3 basamağını 700-799 arasındaki sayılarla, middle class itemlerin ITEM tablosundaki num sütunu değerlerinin son 3 basamağını 800-899 arasındaki sayılarla, high class itemlerin ITEM tablosundaki num sütunu değerlerinin son 3 basamağını 900-999 arasındaki sayılarla değiştirdik. Bağlantı 1'den ITEM tablosunda değişiklik yapan code'ları indirip database'inize uyguladıysanız ayrımlı ITEM tablosuna sahipsiniz demektir. Ayrımlı ITEM tablosu olmadan ayrımlı item basımı olamayacaktır.

Örnekle de açıklayalım :

Hiçbir kağıtla basılmamış/çıplak Sword breaker (+1)'i ele alalım, bunun ITEM tablosundaki Num sütunu değerinin son 3 basamağına bakalım, 701'dir. Reduce scroll ile basılmış Sword breaker (+1)'in ITEM tablosundaki Num sütunu değerinin son 3 basamağı ise 711'dir, elemental scroll ile basılsaydı 721 olacaktı, upgrade scroll ile basılsaydı (+2) olacağından 702 olacaktı. Sword breaker low class bir item olduğu için 700'lü sayılar arasında dolaştık. Cleaver için düşünseydik 800'lü sayılar arasında dolaşacaktık. Shard için düşünseydik 900'lü sayılar arasında dolaşacaktık. Gördüğünüz gibi sıradan itemlerin ITEM tablosundaki Num sütunu değerlerini ayrıştırdık, low class itemleri 700'lü, middle class itemleri 800'lü, high class itemleri 900'lü sayılara topladık, böylece ayrımlı item basımını elde edebileceğiz. Item basımı bu son 3 basamak değerine göre çalışır.

Ayrımlı item basımını yapmak için piyasadaki bazı database'lerde ITEM tablosunda değişikler yapıldığını gördüm, bu database'lerde high class itemlerin 900'lü sayılara toplandığı görülür. Bu database'lerde middle class itemlerin low class kağıtlarla basılabildiği görülür. Bu database'lerin ITEM_UPGRADE tabloları çok çok çok kötüdür, eğer böyle bir database kullanıyor ama gerçek anlamda ayrımlı item basımına sahip olmak istiyorsanız tüm ITEM tablosunu düzenleyen bu konunun başında verdiğim code'ları database'inize uygulayınız. Böylece sağlıklı ve ayrımlı bir ITEM tablosu elde etmiş olursunuz ve gerçek anlamda ayrımlı item basımına sahip olabilirsiniz.






Konu anlaşıldıysa ITEM tablomuza(item satırlarımıza) uyumlu ITEM_UPGRADE tablomuzun(basım satırlarımızın) yapımına geçelim.

ITEM_UPGRADE tablomuzu temizleyelim.

Kod:
-------

Delete from ITEM_UPGRADE

-------




Sıradan silahlar :

[Hidden content]

Aşağıdan devam ediyoruz.
QTTHXX
 
Üst Alt
Reklam
Reklam