İ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.
Cevap ver