Reklam
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;
}
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.
Sizce başke ne yapmalıyım?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; }
Burada sizin bakmanız gereken yer bu getplusdamageden dönen değeri işleme alıyor mu source. Sorun o kısımda hocam.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.
Sizce başke ne yapmalıyım?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; }
Burası tam da damage sistemi, item clanına göre katsayı döndürüyor, bunun da damage ile çarpıma girmesi lazı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())