Bow Distance bonusunu aktif etmek.

Denizeri24

Gentleman
Geliştirici
Usta Üye
Mesaj
517
Çözümler
14
Beğeni
462
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++:
void CItem::PutAttributeWithLevel

bu fonksiyonun içinde bunu bulalım;
C++:
std::vector<int> avail;

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


tekrardan bunu aratalım;
C++:
const TItemAttrTable & r = g_map_itemAttr[i];

ve hemen üstüne bunu ekleyelim;
C++:
        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