Neler yeni

Tüm ITEM ve ITEM_UPGRADE Tablosunu Düzenleme

Conqueror

Aktif Üye
Kullanıcı
Katılım
5 Ocak 2019
Mesajlar
17
Puanları
31
Konum
Türkiye
Kredi
14
Ayrımlı bir item basım sistemi yapmayı size aşama aşama anlatacağım. Tüm ITEM tablosunu düzenlememizdeki amaç da ayrımlı item basımını yapabilmektir. Bütün yapacağımız işlemler ITEM ve ITEM_UPGRADE tablolarında değişiklikler yapmaktır; ilk önce ITEM tablosundaki değişiklikler ve bu değişikliklerin gereği olan yan değişiklikler anlatılacaktır, sonra ITEM_UPGRADE tablosundaki değişiklikler anlatılacaktır.



1) Low-middle-high class ayrımını yapabilmemiz için ilk olarak ITEM tablomuzu düzenlememiz gerekiyor. Tüm ITEM tablosunu düzenleyen code'ları aşağıdaki bağlantıdan indirip database'inize uygulayınız. İşlem 10 dakika sürebilir, bekleyiniz. Tüm ITEM tablomuz yenilenecektir.

[hide]

Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol teşekkürler.


[/hide]

Bu ITEM tablosu birçok durum düşünülerek yapılmıştır. Code'lar exceptional item'leri barındırmaktadır, Bifrost(fragment), Juraid Mountain(gem) ve 70 Lvl Görev item'lerini zaten barındırmaktadır. Ayrıca klasik özel defans veren kıyafetlerin yanı sıra özel defans veren 46 lvl görevi chitin'lerini de barındırmaktadır. Bunlar basılabilmektedirler.




2) Gene ITEM tablosunda değişiklikler yaptığımız için yan düzenleme olarak silah ve kıyafet satılan npc'leri de düzenlememiz gerekiyor. Aşağıdaki code'ları da database'inize uygulayınız.

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]

Sword breaker, Horn Crossbow, plate, half plate gibi itemleri bu npc'lerden alacaksınız. Npc'lerin adlarından hangisinde ne satıldığı anlaşılmaktadır. Weapons silahlar/pusatlar, armors kıyafetler/kılıklar demektir, L ve M harfleri de low ve middle'ı temsil etmektedir. Örneğin Sword breaker'ı ele alalım, Sword breaker low class bir silahtır, bu durumda bu itemi Dr. Ichigaki adlı npc'den temin edebilirsiniz. Horn Crossbow için de düşünelim, middle class bir silahtır, bu durumda Dr. Gero'dan temin edilecektir. Plate'ler middle class kıyafetlerdir, bu durumda Dr. Wheelo'dan temin edilebilir.

Npc'ler şuradadır :




3) Son olarak ITEM tablosunda değişiklikler yaptığımız için yan düzenleme olarak ITEM_EXCHANGE tablosunu düzenlememiz gerekiyor. Aşağıdaki code'ları database'inize uygulayınız.

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]


4) Şimdi tüm ITEM tablosunu düzenlediğimiz için bu item'lere uyumlu tbl'lere ihtiyacımız vardır. ITEM tablosunda düzenleme yapmamız TBL'lerde de düzenleme yapmamızı zorunlu kılmaktadır. Değiştirilen item'lere uyumlu TBL'leri barındıran client'i aşağıdaki bağlantıdan indiriniz.

[hide]

Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol teşekkürler.


[/hide]



5) Yaratık droplarınızı onarmayı unutmayınız.


Bundan sonra ITEM_UPGRADE tablosundaki değişikleri anlatacağız.


Aşağıdan devam ediyoruz.
 

Conqueror

Aktif Üye
Kullanıcı
Katılım
5 Ocak 2019
Mesajlar
17
Puanları
31
Konum
Türkiye
Kredi
14
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, hem ITEM hem ITEM_UPGRADE tablosu için bu kural 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 201451 değerinde 2'yi farklı bir değer yapamayız ama altını çizdiğim kısmı(01451) 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ğı 900-999 arasındaki sayılarla değiştirdik. Yukarıdaki bağlantıdan 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:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.


Sıradan Silahların Basım Satırları :

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]

Sıradan item'lere ilişkin basım satırlarına aşağıdan devam ediyoruz.
 
Kişi Yorumladı

Conqueror

Aktif Üye
Kullanıcı
Katılım
5 Ocak 2019
Mesajlar
17
Puanları
31
Konum
Türkiye
Kredi
14
Kalkanlar ve Staff'ların Basım Satırları :

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.


Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]

Oyun, kalkanları silah/pusat saymaktadır.

*Niçin kalkanlar ve staff'lar için ayrı code'lar var?

İlk önce şu durumu görünüz. Kalkanlar ile ilgili code'lar, staff'lar ile ilgili code'lardan bir hayli fazla. Aslında buradan bile kalkanların ve staff'ların basım oranları bakımından sıradan silahlardan farklı bir rejime tabii tutulmadığını anlayabiliriz.


Detaylı bakalım. Silah için olan code'lara baktığımızda bir silaha/pusata ancak reduce ya da elemental basılabilir. Pekiyi kalkanlar böyle midir? Değildir. Ek olarak onlara str, dex vb. basılabilirken immune de basılabilir. İşte bu ek basımlar sebebiyle sadece kalkanlar için ek bazı basım code'ları vardır. Staff'lar için ise durum benzerdir. Staff'lara elemental ve reduce basarken silah code'ları çalışır, buraya kadar bir sorun çıkmaz. Ancak staff'ımızı light'tan fire ya da glacier'e dönüştürdüğümüzde ve bunu upgrade etmeye kalktığımızda ek bazı code'lara ihtiyaç duyulur.

Netice olarak code'lar kalkan ve staff'ları ayrı bir oransal rejime tabii kılmak için var değildir, eksiği kapatmak, aradaki farkı gidermek için varlardır. Bu sebepten kalkan ve staff code'larına kesinlikle silahlar için verdiğiniz upgrade oranlarından başka bir oran vermeyiniz. Eğer başka bir oran yazarsanız ne olur? Light staff zor basılırken flame staff kolay basılır hale gelebilir, bu kalitesizlik demek olur !

Sıradan item'lerin basım satırlarına aşağıdan devam ediyoruz.
 
Kişi Yorumladı

Conqueror

Aktif Üye
Kullanıcı
Katılım
5 Ocak 2019
Mesajlar
17
Puanları
31
Konum
Türkiye
Kredi
14
Kıyafetlerin Basım Satırları :

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]

*Öneri : Silah ve kıyafet basım oranlarını aynı yapmak zorunda olmadığımızı yukarıdaki code'lardan anlıyoruz. Bir karaktere silah 1-2 tane gerekli iken kıyafet 5 parça gerekmekte, bunu da biliyoruz. Bu durumda kıyafet oranlarını silahlara göre daha yüksek tutmalıyız. Yukarıdaki code'larda da kıyafet basım oranları silah basım oranlarına göre yüksek tutulmuştur.


Aşağıdan devam ediyoruz.
 
Kişi Yorumladı

Conqueror

Aktif Üye
Kullanıcı
Katılım
5 Ocak 2019
Mesajlar
17
Puanları
31
Konum
Türkiye
Kredi
14
Unike Silahların Basım Satırları :

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]

Bir şey dikkatinizi çekmiş olabilir.
"Lobo-Light.Ere.S." ve "Lupus-Ron¯s Staff" yazıları...

-Evet. Code'ların neticeleri çakışmaktadır. Yani siz Lightning Erenion Staff için upgrade oranı yazdığınızda aynı zamanda Lobo Staff için de upgrade oranı vermiş olursunuz. Birini diğerinden ayıramazsınız. Biri için ayrı code öbürü için ayrı code gireyim diyemezsiniz, girerseniz mükerrer satır girmiş olursunuz. Nadir bir durum olarak karşımıza çıktı bu. Lupus Staff ve Ron¯s Staff arasında da böyle bir ilişki var.
-Unike takılarda da bu durum karşımıza çıkacak. "LoPe-ReDraAmu" ve "LuPe-BlaDraNec" aşağıda görürsünüz. Ama mesela Defender of the Lord için verdiğiniz bir oran başka bir itemin upgrade oranlarını etkilemez, o oranlar Defender of the Lord'a özgü olacaktır. Çakışma durumu istisnadır.


Aşağıdan devam ediyoruz.
 
Kişi Yorumladı

Conqueror

Aktif Üye
Kullanıcı
Katılım
5 Ocak 2019
Mesajlar
17
Puanları
31
Konum
Türkiye
Kredi
14
Sıradan ve Unike Takıların Basım Satırları :

[hide]

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

Kod:
Değerli ziyaretçimiz, içeriği görebilmeniz için lütfen Giriş yap veya ücretsiz Kayıt ol anlayışınız için teşekkürler.

[/hide]



* Saptadığım başka kurallar:

1) nOriginItem değeri olarak 4 basamaklı sayılar girilebiliyor ama bu çalışmıyor.

2) Sol el yayların(Scorpion Bow, Enion Bow, Chitin Bow, Eagle¯s Eye...) nOriginType'ı 9 iken sağ el yayların(Helenid Crossbow...) nOriginType'ı 23'tür.

3)70 Quest itemlerine nOriginType değerlerini düzgün olarak verdiğimizde basılmıyorlar. Örneğin Dagger of <selfname> için 0, Staff of <selfname> için 10 olarak nOriginType değerlerini verdiğimizde basılmıyorlar. Hepsine genel nOriginType değeri dediğimiz -1'i verince basılıyorlar.



BITTI !
 
Kişi Yorumladı

Üst