Вопрос Weave V2 damage = 0

Трахов
Пользователь
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
490
Реакции[?]
87
Поинты[?]
2K
Привет всем.

Недавно начал делать вейви с его убогими сканами.
Наткулся на прикол что зачастую происходит что он не выбивает дамаг, а именно он равняется 0 из-за чего происходят миссы по сприду.
CsWeaponInfo пофиксил так что дело не в нем, копал уже все что можно но так понять и не смогу, можете сказать кто сталкивался с этим?
 
Пользователь
Статус
Оффлайн
Регистрация
12 Июн 2019
Сообщения
865
Реакции[?]
127
Поинты[?]
1K
Привет всем.

Недавно начал делать вейви с его убогими сканами.
Наткулся на прикол что зачастую происходит что он не выбивает дамаг, а именно он равняется 0 из-за чего происходят миссы по сприду.
CsWeaponInfo пофиксил так что дело не в нем, копал уже все что можно но так понять и не смогу, можете сказать кто сталкивался с этим?
скорее всего скейл дамага неправльный
 
Трахов
Пользователь
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
490
Реакции[?]
87
Поинты[?]
2K
скорее всего скейл дамага неправльный
фиг знает.
вроде стандартный.

C++:
void CAutoWall::ScaleDamage(IBasePlayer* player, CCSWeaponInfo* weapon_info, int hitgroup, float& damage)
{
    if (!player)
        return;

    auto new_damage = damage;

    const auto is_zeus = csgo->weapon->GetItemDefinitionIndex() == weapon_taser;

    static auto is_armored = [](IBasePlayer* player, int armor, int hitgroup) {
        if (player && player->GetArmor() > 0)
        {
            if (player->HasHelmet() && hitgroup == HITGROUP_HEAD || (hitgroup >= HITGROUP_CHEST && hitgroup <= HITGROUP_RIGHTARM))
                return true;
        }
        return false;
    };

    if (!is_zeus) {
        switch (hitgroup)
        {
        case HITGROUP_HEAD:
            new_damage *= 4.f;
            break;
        case HITGROUP_STOMACH:
            new_damage *= 1.25f;
            break;
        case HITGROUP_LEFTLEG:
        case HITGROUP_RIGHTLEG:
            new_damage *= .75f;
            break;
        default:
            break;
            /*4.0; 1
            1.0; 2
            1.25; 3
            1.0; 4
            1.0; 5
            0.75; 6
            0.75; 7
            1.0; 8*/
        }
    }
    else
        new_damage *= 0.92f;

    auto weaponData = csgo->weapon->GetCSWpnData();
    if (!weaponData)
        return;

    if (is_armored(player, player->GetArmor(), hitgroup))
    {
        float flHeavyRatio = 1.0f;
        float flBonusRatio = 0.5f;
        float flRatio = weaponData->flArmorRatio * 0.5f;
        float flNewDamage;

        if (!player->HeavyArmor())
        {
            flNewDamage = new_damage * flRatio;
        }
        else
        {
            flBonusRatio = 0.33f;
            flRatio = weaponData->flArmorRatio * 0.5f;
            flHeavyRatio = 0.33f;
            flNewDamage = (new_damage * (flRatio * 0.5)) * 0.85f;
        }

        int iArmor = player->GetArmor();

        if (((new_damage - flNewDamage) * (flBonusRatio * flHeavyRatio)) > iArmor)
            flNewDamage = new_damage - (iArmor / flBonusRatio);

        new_damage = flNewDamage;
    }

    damage = new_damage;
}
upd: хотя выглядит стремно в конце))))
 
Сверху Снизу