Sosyal açıldı! Bir göz at → Hemen gir →

YARDIM Damage Settings Tablosu Problemi

mbayrak25

KY Saygın Üye
Yardımsever
Server Sahibi
KAYIT
27 May 2024
Mesajlar
455
Çözümler
6
Tepki puanı
185
Kullanılan Source
ISTIRAP
Kullanılan Database
ISTIRAP
Versiyon
2369
Arkadaşlar selamlar, damage tablosunda classların birbirleri arasındaki damageler ayarlanabiliyor. Örneğin rogue to priest 1 iken 5 yaptım diyelim tabloyu reload yapınca damage muazzamn derecede fark ediyor. Ancak item türüne gelince , unique ya da high class gibi , burdan ayarlama yapınca ise maalesef işe yaramıyor. Src yi inceledim yani db de item tipleri, classları vs doğru, srcde ne yazıyorsa db de de o yazıyor ancak bir türlü düzeltemedim. Src de ilgili alanda şu kodlar var kodlarda da bir hata görünmüyor.
C++:
float CUser::getplusdamage()
{
    auto pLeftHand = GetItemPrototype(LEFTHAND);
    if (!pLeftHand.isnull())
    {
        if (pLeftHand.m_ItemType == 4 || pLeftHand.m_ItemType == 12) return g_pMain->pDamageSetting.uniqueitem;
        else if (pLeftHand.m_ItemType == 2) return g_pMain->pDamageSetting.rareitem;
        else if (pLeftHand.m_ItemType == 1) return g_pMain->pDamageSetting.magicitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 0 || pLeftHand.ItemClass == 1)) return g_pMain->pDamageSetting.lowclassitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 2 || pLeftHand.ItemClass == 7 || pLeftHand.ItemClass == 33)) return g_pMain->pDamageSetting.middleclassitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 3 || pLeftHand.ItemClass == 4 || pLeftHand.ItemClass == 8 || pLeftHand.ItemClass == 34)) return g_pMain->pDamageSetting.highclassitem;
        else if (pLeftHand.m_ItemType == 11) return g_pMain->pDamageSetting.highclassitem;
    }
    else
    {
        auto pRightHand = GetItemPrototype(RIGHTHAND);
        if (!pRightHand.isnull())
        {
            if (pRightHand.m_ItemType == 4 || pRightHand.m_ItemType == 12) return g_pMain->pDamageSetting.uniqueitem;
            else if (pRightHand.m_ItemType == 2) return g_pMain->pDamageSetting.rareitem;
            else if (pRightHand.m_ItemType == 1) return g_pMain->pDamageSetting.magicitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 0 || pRightHand.ItemClass == 1)) return g_pMain->pDamageSetting.lowclassitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 2 || pRightHand.ItemClass == 7 || pRightHand.ItemClass == 33)) return g_pMain->pDamageSetting.middleclassitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 3 || pRightHand.ItemClass == 4 || pRightHand.ItemClass == 8 || pRightHand.ItemClass == 34)) return g_pMain->pDamageSetting.highclassitem;
            else if (pRightHand.m_ItemType == 11) return g_pMain->pDamageSetting.highclassitem;
        }
    }
    return 1.0f;
}
Sizce başke ne yapmalıyım?
 
Çözüm
hocam sorunu çözdünüz mü bilmiyorum ama bu gün kurcalarken gördüm, getplusdamage() kullanımlarında karkaterin mage olma koşulu var sourcede, belki siz roguede vs. denediğiniz için sonuç alamadınız. İsterseniz mage koşulunu kaldırıp, tüm joblarda aktif edebilirsiniz.

Prenses

KY Cezalı Üye
KAYIT
4 May 2024
Mesajlar
305
Çözümler
18
Tepki puanı
375
Konum
Türkiye / İstanbul / Anadolu
Arkadaşlar selamlar, damage tablosunda classların birbirleri arasındaki damageler ayarlanabiliyor. Örneğin rogue to priest 1 iken 5 yaptım diyelim tabloyu reload yapınca damage muazzamn derecede fark ediyor. Ancak item türüne gelince , unique ya da high class gibi , burdan ayarlama yapınca ise maalesef işe yaramıyor. Src yi inceledim yani db de item tipleri, classları vs doğru, srcde ne yazıyorsa db de de o yazıyor ancak bir türlü düzeltemedim. Src de ilgili alanda şu kodlar var kodlarda da bir hata görünmüyor.
C++:
float CUser::getplusdamage()
{
    auto pLeftHand = GetItemPrototype(LEFTHAND);
    if (!pLeftHand.isnull())
    {
        if (pLeftHand.m_ItemType == 4 || pLeftHand.m_ItemType == 12) return g_pMain->pDamageSetting.uniqueitem;
        else if (pLeftHand.m_ItemType == 2) return g_pMain->pDamageSetting.rareitem;
        else if (pLeftHand.m_ItemType == 1) return g_pMain->pDamageSetting.magicitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 0 || pLeftHand.ItemClass == 1)) return g_pMain->pDamageSetting.lowclassitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 2 || pLeftHand.ItemClass == 7 || pLeftHand.ItemClass == 33)) return g_pMain->pDamageSetting.middleclassitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 3 || pLeftHand.ItemClass == 4 || pLeftHand.ItemClass == 8 || pLeftHand.ItemClass == 34)) return g_pMain->pDamageSetting.highclassitem;
        else if (pLeftHand.m_ItemType == 11) return g_pMain->pDamageSetting.highclassitem;
    }
    else
    {
        auto pRightHand = GetItemPrototype(RIGHTHAND);
        if (!pRightHand.isnull())
        {
            if (pRightHand.m_ItemType == 4 || pRightHand.m_ItemType == 12) return g_pMain->pDamageSetting.uniqueitem;
            else if (pRightHand.m_ItemType == 2) return g_pMain->pDamageSetting.rareitem;
            else if (pRightHand.m_ItemType == 1) return g_pMain->pDamageSetting.magicitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 0 || pRightHand.ItemClass == 1)) return g_pMain->pDamageSetting.lowclassitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 2 || pRightHand.ItemClass == 7 || pRightHand.ItemClass == 33)) return g_pMain->pDamageSetting.middleclassitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 3 || pRightHand.ItemClass == 4 || pRightHand.ItemClass == 8 || pRightHand.ItemClass == 34)) return g_pMain->pDamageSetting.highclassitem;
            else if (pRightHand.m_ItemType == 11) return g_pMain->pDamageSetting.highclassitem;
        }
    }
    return 1.0f;
}
Sizce başke ne yapmalıyım?

Bu sağ ve sol sistemi damaga değil bu class itemi sag ve sol kontrol sistemi

Damaga ayarlamak için yer burası
int16_t CUser::GetDamage

Alta görürsün :

if (pTarget->isPlayer())
 

mbayrak25

KY Saygın Üye
Yardımsever
Server Sahibi
KAYIT
27 May 2024
Mesajlar
455
Çözümler
6
Tepki puanı
185
Hocam benim söylemek istediğim kısım bu kod blogunun komple çalışmıyor olması ya damage ayarlamayı dbo.damage_settings üzerinden yapmamızı sağlayan bu blok işini yapmıyor bahsettiğiniz kısma girdim ancak spesifik olarak item türüne göre bir damage düzenleme bölümü göremedim
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
Coder
ACS Sağlayıcısı
Yardımsever
KY Kod Editörü
KAYIT
5 Tem 2021
Mesajlar
865
Çözümler
127
Tepki puanı
547
Yaş
34
Arkadaşlar selamlar, damage tablosunda classların birbirleri arasındaki damageler ayarlanabiliyor. Örneğin rogue to priest 1 iken 5 yaptım diyelim tabloyu reload yapınca damage muazzamn derecede fark ediyor. Ancak item türüne gelince , unique ya da high class gibi , burdan ayarlama yapınca ise maalesef işe yaramıyor. Src yi inceledim yani db de item tipleri, classları vs doğru, srcde ne yazıyorsa db de de o yazıyor ancak bir türlü düzeltemedim. Src de ilgili alanda şu kodlar var kodlarda da bir hata görünmüyor.
C++:
float CUser::getplusdamage()
{
    auto pLeftHand = GetItemPrototype(LEFTHAND);
    if (!pLeftHand.isnull())
    {
        if (pLeftHand.m_ItemType == 4 || pLeftHand.m_ItemType == 12) return g_pMain->pDamageSetting.uniqueitem;
        else if (pLeftHand.m_ItemType == 2) return g_pMain->pDamageSetting.rareitem;
        else if (pLeftHand.m_ItemType == 1) return g_pMain->pDamageSetting.magicitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 0 || pLeftHand.ItemClass == 1)) return g_pMain->pDamageSetting.lowclassitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 2 || pLeftHand.ItemClass == 7 || pLeftHand.ItemClass == 33)) return g_pMain->pDamageSetting.middleclassitem;
        else if (pLeftHand.m_ItemType == 5 && (pLeftHand.ItemClass == 3 || pLeftHand.ItemClass == 4 || pLeftHand.ItemClass == 8 || pLeftHand.ItemClass == 34)) return g_pMain->pDamageSetting.highclassitem;
        else if (pLeftHand.m_ItemType == 11) return g_pMain->pDamageSetting.highclassitem;
    }
    else
    {
        auto pRightHand = GetItemPrototype(RIGHTHAND);
        if (!pRightHand.isnull())
        {
            if (pRightHand.m_ItemType == 4 || pRightHand.m_ItemType == 12) return g_pMain->pDamageSetting.uniqueitem;
            else if (pRightHand.m_ItemType == 2) return g_pMain->pDamageSetting.rareitem;
            else if (pRightHand.m_ItemType == 1) return g_pMain->pDamageSetting.magicitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 0 || pRightHand.ItemClass == 1)) return g_pMain->pDamageSetting.lowclassitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 2 || pRightHand.ItemClass == 7 || pRightHand.ItemClass == 33)) return g_pMain->pDamageSetting.middleclassitem;
            else if (pRightHand.m_ItemType == 5 && (pRightHand.ItemClass == 3 || pRightHand.ItemClass == 4 || pRightHand.ItemClass == 8 || pRightHand.ItemClass == 34)) return g_pMain->pDamageSetting.highclassitem;
            else if (pRightHand.m_ItemType == 11) return g_pMain->pDamageSetting.highclassitem;
        }
    }
    return 1.0f;
}
Sizce başke ne yapmalıyım?
Burada sizin bakmanız gereken yer bu getplusdamageden dönen değeri işleme alıyor mu source. Sorun o kısımda hocam.
Gönderi otomatik olarak birleştirildi:

Bu sağ ve sol sistemi damaga değil bu class itemi sag ve sol kontrol sistemi

Damaga ayarlamak için yer burası
int16_t CUser::GetDamage

Alta görürsün :

if (pTarget->isPlayer())
Burası tam da damage sistemi, item clanına göre katsayı döndürüyor, bunun da damage ile çarpıma girmesi lazım.
 

Aakinci

Co-Admin
Premium Üye
KY Saygın Üye
Coder
ACS Sağlayıcısı
Yardımsever
KY Kod Editörü
KAYIT
5 Tem 2021
Mesajlar
865
Çözümler
127
Tepki puanı
547
Yaş
34
hocam sorunu çözdünüz mü bilmiyorum ama bu gün kurcalarken gördüm, getplusdamage() kullanımlarında karkaterin mage olma koşulu var sourcede, belki siz roguede vs. denediğiniz için sonuç alamadınız. İsterseniz mage koşulunu kaldırıp, tüm joblarda aktif edebilirsiniz.
 
Çözüm
Anasayfa Kayıt ol Giriş yap
Üst Alt