Metin2 İteme 4 Taş Ekleme

Metin2 İtemlere 4 Taş Ekleme
Metin2 İteme 4 Taş Ekleme
Metin2 İtemlere 4 Taş Ekleme
Metin2 İteme 4 Taş Ekleme

İtemlere 4 Taş Ekleme

Metin2 pvp serverler de bildiğiniz gibi itemlere 3 taş eklenebilmektedir fakat bu çok adaletli bir durum sayılmaz çünkü bir iteme savaşçı, sura, ninja taşı eklendiğinde şamanlar karşısında korumasız kalacaksınız ve oyuncular zorluk yaşayacaktır bu eşitliğin sağlanması adına sizlere source ile 4 taş eklemeyi anlatacağız. Bu sefer db üzerinde de değişiklik yapacağız. Sırası ile aşağıdaki işlemleri yapacağız.

 

1.common/item_lenght.h açıyoruz ve aşağıdaki gibi değiştiriyoruz.

2.db/src/ClientManagerPlayer.cpp açıyoruz. “str_to_number(item.alSockets[2], row[cur++]);” altına

str_to_number(item.alSockets[3], row[cur++]); ekliyoruz.

3. Yine aynı dosya içerisinde aşağıdakini aratıyoruz.

“SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2 ,

attrtype0,attrvalue0,attrtype1,attrvalue1,attrtyp e2,attrvalue2,

attrtype3,attrvalue3,attrtype4,attrv alue4,attrtype5,attrvalue5,attrtype6,attrvalue6 ”
aratıyoruz ve aşağıdaki ile değiştiriyoruz.

“SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,socket3,

attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,

attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 “

4. Aynı dosya içerisinde aşağıdaki kodu aratıyor ve değiştiriyoruz.

“SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,attrtype0,

attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,attrtype3,

attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 “

Aşağıdaki ile değiştiriyoruz.

“SELECT id,window+0,pos,count,vnum,socket0,socket1,socket2,socket3,

attrtype0,attrvalue0,attrtype1,attrvalue1,attrtype2,attrvalue2,

attrtype3,attrvalue3,attrtype4,attrvalue4,attrtype5,attrvalue5,attrtype6,attrvalue6 “

5. Clientmanager.cpp açıyoruz ve aşağıdakini aratıyoruz.

“SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2 “

Aşağıdaki ile değiştiriyoruz.

“SELECT id, window+0, pos, count, vnum, socket0, socket1, socket2, socket3 “

6. Cache.cpp açılır ve aşağıdaki aratılır.

iLen += snprintf(szColumns + iLen, sizeof(szColumns) – iLen, “, socket0, socket1, socket2, socket3”);

Aratıyoruz ve çıkanları komple, aşağıda yazan kod ile değiştiriyoruz.

7.Game içerisinde constants.cpp açıyoruz ve “aiWeaponSocketQty[WEAPON_NUM_TYPES] 

İşlemlerimiz server taraflı olarak tamamlanmış oldu. Şimdi yapmamız gereken son işlem ise client taraflı olarak değişim yapmaktır.

8. Adım da client içerisinde userinterface/gametype.h içersinde ” ITEM_SOCKET_SLOT_MAX_NUM”
aratıyoruz ve karşısındaki 3 sayısını 4 ile değiştiriyoruz son durum aşağıdaki gibi olacaktır.

İşlemlerimiz tamamlanmış oldu fakat oyun içerisine her 3 taş basılan iteme 4. taşı basamazsınız sebebi ise item_proto içerisinde iteme basılacak taş sayısından kaynaklıdır. Bu işlemi sadece item_proto yani navicat mysql üzerinden yapacağız sakın locale içerisindekini değiştirmeyin item parlamaları bozlur! Bu işlemin kısa yolu için aşağıdaki query kodunu kullanabilirsiniz.

UPDATE item_proto SET socket_pct=’4′ WHERE socket_pct=’3′;

Şeklinde bütün 3 taş basılan itemleri 4’e çekebilirsiniz.

UYARI!

4 taş ekledikten sonra serverinizde iç görü küresi çalışmayabilir bunun çözümü için client üzerinde değişiklik yapmanız gerekiyor buna buradaki yazımızda değindik buradan öğrenebilirsiniz.

Metin2 Rehberi
Metin2 oynamaya 2007 yılında Alesta serverında başladım. Alesta serverinde uzun süre sıralamada ilk 100de kaldım ve ardından PVP serverlar ile ilgilenmeye başladım. Çeşitli serverlarda GM'lik görevi yaptıktan sonra kendi serverlarımı kurmaya başladım. Yıllar boyunca kendi PVP serverlarımı yönettim ve geliştirmeler yaptım. Şimdi Metin2 Rehberi aracılığıyla bütün tecrübemi sizlerle paylaşmak istiyorum.