Bow Distance bonusunu aktif etmek.

Denizeri24

Gentleman
Geliştirici
Usta Üye
Mesaj
580
Çözümler
18
Beğeni
577
Puan
829
Ticaret Puanı
0
Bonusları incelerken Bow Distance diye bir bonus gördüm ve bu bonus normalde yay ile vurma menzilini yükseltiyor. Yani örneğin bu bonus olmadan 20 metre uzaktan vuruyorsanız bu bonus 25, 30 (isteğe bağlı değerler) metre uzaktan vurabiliyorsunuz.


Öncelikle bu efsunu aktif etmemiz gerekiyor, navicat ile mysql'in içinde ki player->item_attr tablosunun içine aşağıda ki gibi Bow Distance bonusunu ekleyin;
navicat.png

Daha sonra bu bonusun her silaha gelmemesi (kılıç, mızrak, hançer vs vs), sadece yaylara gelmesi için serversource/game/src/item_attribute.cpp dosyasını açıp bunu aratalım;
C++:
Genişlet Daralt Kopyala
void CItem::PutAttributeWithLevel

bu fonksiyonun içinde bunu bulalım;
C++:
Genişlet Daralt Kopyala
std::vector<int> avail;

ve hemen altına bunu ekleyelim;
C++:
Genişlet Daralt Kopyala
const bool isbow = (GetType() == ITEM_WEAPON && GetSubType() == WEAPON_BOW);


tekrardan bunu aratalım;
C++:
Genişlet Daralt Kopyala
const TItemAttrTable & r = g_map_itemAttr[i];

ve hemen üstüne bunu ekleyelim;
C++:
Genişlet Daralt Kopyala
        if (!isbow && i == APPLY_BOW_DISTANCE)
        {
            continue;
        }


kod bloğunun son hali böyle gözükmeli;
Ekran görüntüsü_20221019_042441.png


ve gameyi derleyin.


Bonus artık eklendi, videolu merak eden olursa bonus şöyle;




UYARILAR;

1-) Siz mysql'e efsun oranlarını girerken 1 sıfır fazla ekleyin: mesela 50 metre istiyorsanız 50 değil 500 yazın.
2-) Bu bonusu çok önceden aktif etmiştim, unuttuğum kısımlar olabilir. Eğer hata alırsanız yazın buraya yardımcı olurum.
 
Geri
Üst