Исходник Proper converted mutiny Autowall to LW

Статус
В этой теме нельзя размещать новые ответы.
Трахов
Пользователь
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
490
Реакции[?]
87
Поинты[?]
2K
C++:
float inline GetHitgroupDamageMultiplier(int iHitGroup)
{
    switch (iHitGroup)
    {
    case HITGROUP_HEAD:
    {
        return 4.0f;
    }
    case HITGROUP_STOMACH:
    {
        return 1.25f;
    }
    case HITGROUP_LEFTLEG:
    {
        return 0.75f;
    }
    }
    return 1.0f;
}

bool autowall::EntityHasArmor(player_t* e, int hitgroup)
{
    if (e->m_ArmorValue() > 0)
    {
        if ((hitgroup == HITGROUP_HEAD && e->m_bHasHelmet()) || (hitgroup >= HITGROUP_CHEST && hitgroup <= HITGROUP_RIGHTARM))
            return true;
    }
    return false;
}

void autowall::scale_damage(player_t* e, CGameTrace& enterTrace, weapon_info_t* weaponData, float& currentDamage)
{
    auto bHasHeavyArmor = e->m_bHasHeavyArmor();
    auto hitgroup = enterTrace.hitgroup;

    switch (hitgroup)
    {
    case HITGROUP_HEAD:
        if (!bHasHeavyArmor)
            currentDamage *= 4.0f;
        else
            currentDamage = (currentDamage * 4.0f) * 0.5f;
        break;
    case HITGROUP_STOMACH:
        currentDamage *= 1.25f;
        break;
    case HITGROUP_LEFTLEG:
        currentDamage *= 0.75f;
        break;
    }

    if (e && EntityHasArmor(e, hitgroup))
    {
        float flHeavyRatio = 1.0f;
        float flBonusRatio = 0.5f;
        float flRatio = weaponData->flArmorRatio * 0.5f;
        float flNewDamage;

        if (!bHasHeavyArmor)
        {
            flNewDamage = currentDamage * flRatio;
        }
        else
        {
            flBonusRatio = 0.33f;
            flRatio = weaponData->flArmorRatio * 0.25f;
            flHeavyRatio = 0.33f;
            flNewDamage = (currentDamage * flRatio) * 0.85f;
        }

        int iArmor = e->m_ArmorValue();

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

        currentDamage = flNewDamage;
    }

    currentDamage = floorf(currentDamage);

}

bool autowall::trace_to_exit(Vector startPosition, const Vector& direction, CGameTrace& enterTrace, CGameTrace& exit_trace)

{
    auto enter_point_contents = 0;
    auto point_contents = 0;

    auto is_window = 0;
    auto flag = 0;

    auto fDistance = 0.0f;
    Vector start, end;

    do
    {
        fDistance += 4.0f;

        end = startPosition + direction * fDistance;
        start = end - direction * 4.0f;

        if (!enter_point_contents)
        {
            enter_point_contents = m_trace()->GetPointContents(end, 0x4600400B);
            point_contents = enter_point_contents;
        }
        else
            point_contents = m_trace()->GetPointContents(end, 0x4600400B);

        if (point_contents & MASK_SHOT_HULL && (!(point_contents & CONTENTS_HITBOX) || enter_point_contents == point_contents))
            continue;

        static auto trace_filter_simple = util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F0 83 EC 7C 56 52")) + 0x3D;

        uint32_t filter_[4] =
        {
            *(uint32_t*)(trace_filter_simple),
            (uint32_t)g_ctx.local(),
            0,
            0
        };

        util::trace_line(end, start, MASK_SHOT_HULL | CONTENTS_HITBOX, (CTraceFilter*)filter_, &exit_trace); //-V641

        if (exit_trace && exit_trace.surface.flags & SURF_HITBOX)
        {
            CTraceFilter filter;
            filter.pSkip = exit_trace.hit_entity;

            filter_[1] = (uint32_t)exit_trace.hit_entity;
            util::trace_line(end, startPosition, MASK_SHOT_HULL, (CTraceFilter*)filter_, &exit_trace); //-V641

            if (exit_trace.DidHit() && !exit_trace.startsolid)
                return true;

            continue;
        }

        auto name = (int*)enterTrace.surface.name; //-V206

        if (name)
        {
            if (*name == 1936744813 && name[1] == 1601397551 && name[2] == 1768318575 && name[3] == 1731159395 && name[4] == 1936941420 && name[5] == 1651668271 && name[6] == 1734307425 && name[7] == 1936941420)
                is_window = 1;
            else
            {
                is_window = 0;

                if (*name != 1936744813)
                    goto LABEL_34;
            }

            if (name[1] == 1600480303 && name[2] == 1701536108 && name[3] == 1634494255 && name[4] == 1731162995 && name[5] == 1936941420)
            {
                flag = 1;

            LABEL_35:
                if (is_window || flag)
                {
                    exit_trace = enterTrace;
                    exit_trace.endpos = end + direction;
                    return true;
                }

                goto LABEL_37;
            }
        LABEL_34:
            flag = 0;
            goto LABEL_35;
        }

    LABEL_37:
        if (!exit_trace.DidHit() || exit_trace.startsolid)
        {
            if (enterTrace.hit_entity && enterTrace.hit_entity->EntIndex() && is_breakable_entity(enterTrace.hit_entity))
            {
                exit_trace = enterTrace;
                exit_trace.endpos = startPosition + direction;
                return true;
            }

            continue;
        }

        if (exit_trace.surface.flags & SURF_NODRAW)
        {
            if (is_breakable_entity(exit_trace.hit_entity) && is_breakable_entity(enterTrace.hit_entity))
                return true;

            if (!(enterTrace.surface.flags & SURF_NODRAW))
                continue;
        }

        if (exit_trace.plane.normal.Dot(direction) <= 1.0)
            return true;

    } while (fDistance <= 90.0f);

    return false;
}

bool autowall::handle_bullet_penetration(weapon_info_t* weaponData, CGameTrace& enterTrace, Vector& eyePosition, const Vector& direction, int& possibleHitsRemaining, float& currentDamage, float penetrationPower, float entry_surface_damage_modifier, float ff_damage_reduction_bullets, float ff_damage_bullet_penetration, bool draw_impact)
{
    auto enterSurfaceData = m_physsurface()->GetSurfaceData(enterTrace.surface.surfaceProps);
    int enter_material = enterSurfaceData->game.material;

    bool contents_grate = enterTrace.contents & CONTENTS_GRATE;
    int is_nodraw = (enterTrace.surface.flags) & SURF_NODRAW;

    float entry_penetration_modifier = enterSurfaceData->game.flPenetrationModifier;

    auto isPlayer = ((player_t*)enterTrace.hit_entity)->is_player();
    auto isEnemy = ((player_t*)enterTrace.hit_entity)->m_iTeamNum() != g_ctx.local()->m_iTeamNum();

    bool cannotpenetrate = false;

    trace_t exit_trace;

    if (!possibleHitsRemaining)
    {
        if (!is_nodraw && !contents_grate)
        {
            if (enter_material != CHAR_TEX_GLASS)
                cannotpenetrate = enter_material != CHAR_TEX_GRATE;
        }
    }

    if (penetrationPower <= 0.0f || possibleHitsRemaining <= 0)
        cannotpenetrate = true;

    if (!trace_to_exit(enterTrace.endpos, direction, enterTrace, exit_trace)
        && !(m_trace()->GetPointContents(enterTrace.endpos, MASK_SHOT_HULL, 0) & MASK_SHOT_HULL)
        || cannotpenetrate)
    {
        return false;
    }

    auto exit_surface_data = m_physsurface()->GetSurfaceData(exit_trace.surface.surfaceProps);
    bool use_new_penetration_system = m_cvar()->FindVar("sv_penetration_type") ? m_cvar()->FindVar("sv_penetration_type")->GetBool() : true;

    float damage_modifier;
    float average_penetration_modifier;
    unsigned short exit_material = exit_surface_data->game.material;

    const float reduction_bullets = m_cvar()->FindVar("ff_damage_reduction_bullets") != nullptr ? m_cvar()->FindVar("ff_damage_reduction_bullets")->GetFloat() : 0.1f;
    const float damage_bullet_pen = m_cvar()->FindVar("ff_damage_bullet_penetration") != nullptr ? m_cvar()->FindVar("ff_damage_bullet_penetration")->GetFloat() : 0.f;

    if (!use_new_penetration_system)
    {
        if (contents_grate || is_nodraw)
        {
            average_penetration_modifier = 1.0f;
            damage_modifier = 0.99f;
        }
        else
        {
            average_penetration_modifier = fminf(exit_surface_data->game.flPenetrationModifier, entry_penetration_modifier);
            damage_modifier = fminf(entry_surface_damage_modifier, exit_surface_data->game.flDamageModifier);
        }

        if (enter_material == exit_material && (exit_material == CHAR_TEX_METAL || exit_material == CHAR_TEX_WOOD))
            average_penetration_modifier += average_penetration_modifier;

        float thickness = (exit_trace.endpos - enterTrace.endpos).Length();

        if (sqrt(thickness) <= average_penetration_modifier * penetrationPower)
        {
            ff_damage_bullet_penetration *= damage_modifier;
            //if (bDoEffects) //note: not on windows version, is it inlined into the function?
            //ImpactTrace(exit_trace, weaponmask);
            eyePosition = exit_trace.endpos;
            --possibleHitsRemaining;

            return false;
        }

        return true;
    }
    else
    {
        damage_modifier = 0.16f;
        if (!contents_grate && !is_nodraw)
        {
            if (enter_material == CHAR_TEX_GLASS)
                goto LABEL_51;

            if (enter_material != CHAR_TEX_GRATE)
            {
                if (enterTrace.hit_entity)
                {
                    if (isPlayer)
                    {
                        goto LABEL_45;
                    }
                }

                if (enter_material != CHAR_TEX_FLESH
                    || reduction_bullets != 0.0f
                    || !enterTrace.hit_entity
                    || !isPlayer
                    || isEnemy)
                {
                    average_penetration_modifier = (exit_surface_data->game.flPenetrationModifier + entry_penetration_modifier) * 0.5f;
                    goto LABEL_46;
                }
                if (damage_bullet_pen == 0.0f)
                    return false;

                entry_penetration_modifier = damage_bullet_pen;

            LABEL_45:
                average_penetration_modifier = entry_penetration_modifier;
            LABEL_46:
                damage_modifier = 0.16f;
                goto LABEL_52;
            }
        }

        if (enter_material != CHAR_TEX_GRATE && enter_material != CHAR_TEX_GLASS)
        {
            average_penetration_modifier = 1.0f;
            goto LABEL_52;
        }

    LABEL_51:
        damage_modifier = 0.05f;
        average_penetration_modifier = 3.0f;
    }
LABEL_52:

    if (enter_material == exit_material)
    {
        if (exit_material == CHAR_TEX_WOOD || exit_material == CHAR_TEX_CARDBOARD)
            average_penetration_modifier = 3.0f;
        else if (exit_material == CHAR_TEX_PLASTIC)
            average_penetration_modifier = 2.0f;
    }

    float penetration_length = (exit_trace.endpos - enterTrace.endpos).Length();
    float modifier = fmaxf(1.0f / average_penetration_modifier, 0.0f);
    float taken_first = (fmaxf(((3.0f / penetrationPower) * 1.25f), 0.0f) * (modifier * 3.0f) + (currentDamage * damage_modifier));
    float taken_damage = (((penetration_length * penetration_length) * modifier) / 24.0f) + taken_first;

    currentDamage -= fmaxf(0.0f, taken_damage);

    if (currentDamage < 1.0f)
        return false;

    //if (bDoEffects) //note: not on windows version, is it inlined into the function?
    //ImpactTrace(exit_trace, weaponmask);

    eyePosition = exit_trace.endpos;

    --possibleHitsRemaining;

    return true;
}
добавлена анти-паста!
по причине того что сгорела пятая точка от сообщений людей в мой адрес, по поводу того что я просто пащю все что вижу и откуда вижу а также что я "вырезаю половину нужных функций от недопастеров" и конвертирую через одно место.
Правда не важно что именно этот Автоволл полностью такой-же как в оригинале без каких либо изменений т.е from mutiny to LW.

azazinc иди дальше конвертируй свой rifk7 awall через кривые ручки и говори что это хуже дефа лв и я не правильно что-то сделал, не важно что мутини автоволл это самый лучший паблик аволл который есть на данный момент.

анти-паста легчайшая просто убрал 3 слова в коде.
 
Последнее редактирование:
retard
Пользователь
Статус
Оффлайн
Регистрация
13 Мар 2021
Сообщения
365
Реакции[?]
67
Поинты[?]
10K
boshe moi a russian would say, you did a good job but some of the code looks like shit, anyway thanks ig
 
Забаненный
Статус
Оффлайн
Регистрация
28 Янв 2021
Сообщения
137
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
float inline GetHitgroupDamageMultiplier(int iHitGroup)
{
    switch (iHitGroup)
    {
    case HITGROUP_HEAD:
    {
        return 4.0f;
    }
    case HITGROUP_STOMACH:
    {
        return 1.25f;
    }
    case HITGROUP_LEFTLEG:
    case HITGROUP_RIGHTLEG:
    {
        return 0.75f;
    }
    }
    return 1.0f;
}

bool autowall::EntityHasArmor(player_t* e, int hitgroup)
{
    if (e->m_ArmorValue() > 0)
    {
        if ((hitgroup == HITGROUP_HEAD && e->m_bHasHelmet()) || (hitgroup >= HITGROUP_CHEST && hitgroup <= HITGROUP_RIGHTARM))
            return true;
    }
    return false;
}

void autowall::scale_damage(player_t* e, CGameTrace& enterTrace, weapon_info_t* weaponData, float& currentDamage)
{
    auto bHasHeavyArmor = e->m_bHasHeavyArmor();
    auto hitgroup = enterTrace.hitgroup;

    switch (hitgroup)
    {
    case HITGROUP_HEAD:
        if (!bHasHeavyArmor)
            currentDamage *= 4.0f;
        else
            currentDamage = (currentDamage * 4.0f) * 0.5f;
        break;
    case HITGROUP_STOMACH:
        currentDamage *= 1.25f;
        break;
    case HITGROUP_LEFTLEG:
    case HITGROUP_RIGHTLEG:
        currentDamage *= 0.75f;
        break;
    }

    if (e && EntityHasArmor(e, hitgroup))
    {
        float flHeavyRatio = 1.0f;
        float flBonusRatio = 0.5f;
        float flRatio = weaponData->flArmorRatio * 0.5f;
        float flNewDamage;

        if (!bHasHeavyArmor)
        {
            flNewDamage = currentDamage * flRatio;
        }
        else
        {
            flBonusRatio = 0.33f;
            flRatio = weaponData->flArmorRatio * 0.25f;
            flHeavyRatio = 0.33f;
            flNewDamage = (currentDamage * flRatio) * 0.85f;
        }

        int iArmor = e->m_ArmorValue();

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

        currentDamage = flNewDamage;
    }

    currentDamage = floorf(currentDamage);

}

bool autowall::trace_to_exit(Vector startPosition, const Vector& direction, CGameTrace& enterTrace, CGameTrace& exit_trace)

{
    auto enter_point_contents = 0;
    auto point_contents = 0;

    auto is_window = 0;
    auto flag = 0;

    auto fDistance = 0.0f;
    Vector start, end;

    do
    {
        fDistance += 4.0f;

        end = startPosition + direction * fDistance;
        start = end - direction * 4.0f;

        if (!enter_point_contents)
        {
            enter_point_contents = m_trace()->GetPointContents(end, 0x4600400B);
            point_contents = enter_point_contents;
        }
        else
            point_contents = m_trace()->GetPointContents(end, 0x4600400B);

        if (point_contents & MASK_SHOT_HULL && (!(point_contents & CONTENTS_HITBOX) || enter_point_contents == point_contents))
            continue;

        static auto trace_filter_simple = util::FindSignature(crypt_str("client.dll"), crypt_str("55 8B EC 83 E4 F0 83 EC 7C 56 52")) + 0x3D;

        uint32_t filter_[4] =
        {
            *(uint32_t*)(trace_filter_simple),
            (uint32_t)g_ctx.local(),
            0,
            0
        };

        util::trace_line(end, start, MASK_SHOT_HULL | CONTENTS_HITBOX, (CTraceFilter*)filter_, &exit_trace); //-V641

        if (exit_trace.startsolid && exit_trace.surface.flags & SURF_HITBOX)
        {
            CTraceFilter filter;
            filter.pSkip = exit_trace.hit_entity;

            filter_[1] = (uint32_t)exit_trace.hit_entity;
            util::trace_line(end, startPosition, MASK_SHOT_HULL, (CTraceFilter*)filter_, &exit_trace); //-V641

            if (exit_trace.DidHit() && !exit_trace.startsolid)
                return true;

            continue;
        }

        auto name = (int*)enterTrace.surface.name; //-V206

        if (name)
        {
            if (*name == 1936744813 && name[1] == 1601397551 && name[2] == 1768318575 && name[3] == 1731159395 && name[4] == 1936941420 && name[5] == 1651668271 && name[6] == 1734307425 && name[7] == 1936941420)
                is_window = 1;
            else
            {
                is_window = 0;

                if (*name != 1936744813)
                    goto LABEL_34;
            }

            if (name[1] == 1600480303 && name[2] == 1701536108 && name[3] == 1634494255 && name[4] == 1731162995 && name[5] == 1936941420)
            {
                flag = 1;

            LABEL_35:
                if (is_window || flag)
                {
                    exit_trace = enterTrace;
                    exit_trace.endpos = end + direction;
                    return true;
                }

                goto LABEL_37;
            }
        LABEL_34:
            flag = 0;
            goto LABEL_35;
        }

    LABEL_37:
        if (!exit_trace.DidHit() || exit_trace.startsolid)
        {
            if (enterTrace.hit_entity && enterTrace.hit_entity->EntIndex() && is_breakable_entity(enterTrace.hit_entity))
            {
                exit_trace = enterTrace;
                exit_trace.endpos = startPosition + direction;
                return true;
            }

            continue;
        }

        if (exit_trace.surface.flags & SURF_NODRAW)
        {
            if (is_breakable_entity(exit_trace.hit_entity) && is_breakable_entity(enterTrace.hit_entity))
                return true;

            if (!(enterTrace.surface.flags & SURF_NODRAW))
                continue;
        }

        if (exit_trace.plane.normal.Dot(direction) <= 1.0)
            return true;

    } while (fDistance <= 90.0f);

    return false;
}

bool autowall::handle_bullet_penetration(weapon_info_t* weaponData, CGameTrace& enterTrace, Vector& eyePosition, const Vector& direction, int& possibleHitsRemaining, float& currentDamage, float penetrationPower, float entry_surface_damage_modifier, float ff_damage_reduction_bullets, float ff_damage_bullet_penetration, bool draw_impact)
{
    auto enterSurfaceData = m_physsurface()->GetSurfaceData(enterTrace.surface.surfaceProps);
    int enter_material = enterSurfaceData->game.material;

    bool contents_grate = enterTrace.contents & CONTENTS_GRATE;
    int is_nodraw = (enterTrace.surface.flags) & SURF_NODRAW;

    float entry_penetration_modifier = enterSurfaceData->game.flPenetrationModifier;

    auto isPlayer = ((player_t*)enterTrace.hit_entity)->is_player();
    auto isEnemy = ((player_t*)enterTrace.hit_entity)->m_iTeamNum() != g_ctx.local()->m_iTeamNum();

    bool cannotpenetrate = false;

    trace_t exit_trace;

    if (!possibleHitsRemaining)
    {
        if (!is_nodraw && !contents_grate)
        {
            if (enter_material != CHAR_TEX_GLASS)
                cannotpenetrate = enter_material != CHAR_TEX_GRATE;
        }
    }

    if (penetrationPower <= 0.0f || possibleHitsRemaining <= 0)
        cannotpenetrate = true;

    if (!trace_to_exit(enterTrace.endpos, direction, enterTrace, exit_trace)
        && !(m_trace()->GetPointContents(enterTrace.endpos, MASK_SHOT_HULL, 0) & MASK_SHOT_HULL)
        || cannotpenetrate)
    {
        return false;
    }

    auto exit_surface_data = m_physsurface()->GetSurfaceData(exit_trace.surface.surfaceProps);
    bool use_new_penetration_system = m_cvar()->FindVar("sv_penetration_type") ? m_cvar()->FindVar("sv_penetration_type")->GetBool() : true;

    float damage_modifier;
    float average_penetration_modifier;
    unsigned short exit_material = exit_surface_data->game.material;

    const float reduction_bullets = m_cvar()->FindVar("ff_damage_reduction_bullets") != nullptr ? m_cvar()->FindVar("ff_damage_reduction_bullets")->GetFloat() : 0.1f;
    const float damage_bullet_pen = m_cvar()->FindVar("ff_damage_bullet_penetration") != nullptr ? m_cvar()->FindVar("ff_damage_bullet_penetration")->GetFloat() : 0.f;

    if (!use_new_penetration_system)
    {
        if (contents_grate || is_nodraw)
        {
            average_penetration_modifier = 1.0f;
            damage_modifier = 0.99f;
        }
        else
        {
            average_penetration_modifier = fminf(exit_surface_data->game.flPenetrationModifier, entry_penetration_modifier);
            damage_modifier = fminf(entry_surface_damage_modifier, exit_surface_data->game.flDamageModifier);
        }

        if (enter_material == exit_material && (exit_material == CHAR_TEX_METAL || exit_material == CHAR_TEX_WOOD))
            average_penetration_modifier += average_penetration_modifier;

        float thickness = (exit_trace.endpos - enterTrace.endpos).Length();

        if (sqrt(thickness) <= average_penetration_modifier * penetrationPower)
        {
            ff_damage_bullet_penetration *= damage_modifier;
            //if (bDoEffects) //note: not on windows version, is it inlined into the function?
            //ImpactTrace(exit_trace, weaponmask);
            eyePosition = exit_trace.endpos;
            --possibleHitsRemaining;

            return false;
        }

        return true;
    }
    else
    {
        damage_modifier = 0.16f;
        if (!contents_grate && !is_nodraw)
        {
            if (enter_material == CHAR_TEX_GLASS)
                goto LABEL_51;

            if (enter_material != CHAR_TEX_GRATE)
            {
                if (enterTrace.hit_entity)
                {
                    if (isPlayer)
                    {
                        goto LABEL_45;
                    }
                }

                if (enter_material != CHAR_TEX_FLESH
                    || reduction_bullets != 0.0f
                    || !enterTrace.hit_entity
                    || !isPlayer
                    || isEnemy)
                {
                    average_penetration_modifier = (exit_surface_data->game.flPenetrationModifier + entry_penetration_modifier) * 0.5f;
                    goto LABEL_46;
                }
                if (damage_bullet_pen == 0.0f)
                    return false;

                entry_penetration_modifier = damage_bullet_pen;

            LABEL_45:
                average_penetration_modifier = entry_penetration_modifier;
            LABEL_46:
                damage_modifier = 0.16f;
                goto LABEL_52;
            }
        }

        if (enter_material != CHAR_TEX_GRATE && enter_material != CHAR_TEX_GLASS)
        {
            average_penetration_modifier = 1.0f;
            goto LABEL_52;
        }

    LABEL_51:
        damage_modifier = 0.05f;
        average_penetration_modifier = 3.0f;
    }
LABEL_52:

    if (enter_material == exit_material)
    {
        if (exit_material == CHAR_TEX_WOOD || exit_material == CHAR_TEX_CARDBOARD)
            average_penetration_modifier = 3.0f;
        else if (exit_material == CHAR_TEX_PLASTIC)
            average_penetration_modifier = 2.0f;
    }

    float penetration_length = (exit_trace.endpos - enterTrace.endpos).Length();
    float modifier = fmaxf(1.0f / average_penetration_modifier, 0.0f);
    float taken_first = (fmaxf(((3.0f / penetrationPower) * 1.25f), 0.0f) * (modifier * 3.0f) + (currentDamage * damage_modifier));
    float taken_damage = (((penetration_length * penetration_length) * modifier) / 24.0f) + taken_first;

    currentDamage -= fmaxf(0.0f, taken_damage);

    if (currentDamage < 1.0f)
        return false;

    //if (bDoEffects) //note: not on windows version, is it inlined into the function?
    //ImpactTrace(exit_trace, weaponmask);

    eyePosition = exit_trace.endpos;

    --possibleHitsRemaining;

    return true;
}
Давай рес мутини под лв
 
шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Трахов
Пользователь
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
490
Реакции[?]
87
Поинты[?]
2K
нормальный автовол?
лучше дефа, но не лучше чем в приватках по типу в4, в любом случае получше в3го местами будет.
(в3 и в4 вантап)
у тебя все shit, да может и код костыльный но лучше дефа, давай не будем вспоминать твой конверт рифка)))
 
Последнее редактирование:
шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
лучше дефа, но не лучше чем в приватках по типу в4, в любом случае получше в3го местами будет.
(в3 и в4 вантап)

у тебя все shit, да может и код костыльный но лучше дефа, давай не будем вспоминать твой конверт рифка)))
rifk awoll > mutiny,but ok
 
Участник
Статус
Оффлайн
Регистрация
26 Апр 2018
Сообщения
852
Реакции[?]
181
Поинты[?]
0
Так давай сравним, обновите мутини пожалуйста я хочу доказать челу, что он не прав!
 
:roflanBuldiga:
Пользователь
Статус
Оффлайн
Регистрация
3 Апр 2019
Сообщения
428
Реакции[?]
117
Поинты[?]
1K
шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
26 Мар 2021
Сообщения
24
Реакции[?]
6
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Я бы тебе руки поломал и ебало набил за такую антипасту, входящие переменные в функцию не в том порядке, где то объект класса не дописан, не так классифицирован, заебал.
Функции не написаны некоторые
 
Последнее редактирование:
Трахов
Пользователь
Статус
Оффлайн
Регистрация
6 Фев 2020
Сообщения
490
Реакции[?]
87
Поинты[?]
2K
Я бы тебе руки поломал и ебало набил за такую антипасту, входящие переменные в функцию не в том порядке, где то объект класса не дописан, не так классифицирован, заебал.
Функции не написаны некоторые
за весь код вырезал одну строку, давай давай верни ретурны как в мутини и слови 1 фпс и прострел чего нельзя прострелить. Классификация правильная.
Я бы тебе руки поломал и ебало набил за такую антипасту, входящие переменные в функцию не в том порядке, где то объект класса не дописан, не так классифицирован, заебал.
Функции не написаны некоторые
про функции забыл выложить, скинь какие именно.
 
Эксперт
Статус
Оффлайн
Регистрация
17 Фев 2017
Сообщения
864
Реакции[?]
420
Поинты[?]
1K
rifk awoll > mutiny,but ok
Не знаю что за аволл в мутини, но в рифке он мягко говоря аутдейтед. Во первых стекла не видит ( кс офис попробуй сам )
Во-вторых, шьет некоторые непрошиваемые стенки.
 
шатап книга
Забаненный
Статус
Оффлайн
Регистрация
7 Мар 2020
Сообщения
485
Реакции[?]
119
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Не знаю что за аволл в мутини, но в рифке он мягко говоря аутдейтед. Во первых стекла не видит ( кс офис попробуй сам )
Во-вторых, шьет некоторые непрошиваемые стенки.
глас фикс 1 секунда,ок,стенки которые не шьются - привет дм!!!
 
Начинающий
Статус
Оффлайн
Регистрация
21 Апр 2021
Сообщения
6
Реакции[?]
0
Поинты[?]
0
Honestly you said your anti-paste is only to reomve 3 word then later you said you removed a whole line of code so people can't paste this. But why even upload this and add anti-paste, isn't it better to explain to people how to add this to their source code?
 
Участник
Статус
Оффлайн
Регистрация
30 Дек 2020
Сообщения
400
Реакции[?]
293
Поинты[?]
1K
Каков смысл выкладывания этих ваших "autowall", если они будут все +- одинаковы в руках тупых пастеров.
Выкладывая очередной "autowall to lw" о чем ты думал, что все будут говорить "ох, спасибо, пойду спащу в свою приватную пасту по инвайтам !" ?
 
Забаненный
Статус
Оффлайн
Регистрация
27 Апр 2021
Сообщения
19
Реакции[?]
11
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
для молодых пастеров сойдёт
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу