Bow Distance bonusunu aktif etmek.

Denizeri24

Gentleman
Geliştirici
Usta Üye
Mesaj
600
Çözümler
18
Beğeni
620
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.
 
Uyarı: Bu konu açıldığından bu yana baya zaman geçmiş.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.
Geri
Üst