Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Вопрос Asdasd

  • Автор темы Автор темы Nisen
  • Дата начала Дата начала
Что за странный код
1. Зачем итерироваться до g_EntityList->GetHighestEntityIndex(), если это все равно прирвется на i <= g_GlobalVars->maxClients, можно перенести наверх
2. " == true" бесполезное удлинение кода
3. "if (dist == 0.f)" проще сразу выставить игрока в nullptr, а расстояние бесконечно большое и оставить только одну проверку
4. Когда у тебя выбирается новая цель после первого, ты не обновляешь расстояние, т.е. любой игрок после первого с меньшим расстоянием станет целью, а потом его может переписать игрок с большим расстоянием до тебя, но опять же меньше первого, ошибка в общем
 
D
Что за странный код
1. Зачем итерироваться до g_EntityList->GetHighestEntityIndex(), если это все равно прирвется на i <= g_GlobalVars->maxClients, можно перенести наверх
2. " == true" бесполезное удлинение кода
3. "if (dist == 0.f)" проще сразу выставить игрока в nullptr, а расстояние бесконечно большое и оставить только одну проверку
4. Когда у тебя выбирается новая цель после первого, ты не обновляешь расстояние, т.е. любой игрок после первого с меньшим расстоянием станет целью, а потом его может переписать игрок с большим расстоянием до тебя, но опять же меньше первого, ошибка в общем
Во-первых я говнокодер, все уже поправил, во-вторых я сам до этого допер уже, но почему-то теперь игра вылетает, лол
 
Код:
Expand Collapse Copy
 Player btarg;
 float dist = FLT_MAX;
 Vector localpos = g_LocalPlayer->GetAbsOrigin();
    
    for (auto i = 1; i <= g_GlobalVars->maxClients; ++i)
    {
        auto entity = C_BaseEntity::GetEntityByIndex(i);

        if (!entity)
            continue;

        if (entity == g_LocalPlayer || entity->IsDormant())
            continue;
        
        if (!g_LocalPlayer->CanSeePlayer((C_BasePlayer*)entity, g_Options.aim_bone))
            continue;
            
        if (localpos.DistTo(entity->GetAbsOrigin()) < dist)
            {
               dist = localpos.DistTo(entity->GetAbsOrigin());
               btarg = entity;
            }
    }
 
Код:
Expand Collapse Copy
 Player btarg;
float dist = FLT_MAX;
Vector localpos = g_LocalPlayer->GetAbsOrigin();
   
    for (auto i = 1; i <= g_GlobalVars->maxClients; ++i)
    {
        auto entity = C_BaseEntity::GetEntityByIndex(i);

        if (!entity)
            continue;

        if (entity == g_LocalPlayer || entity->IsDormant())
            continue;
       
        if (!g_LocalPlayer->CanSeePlayer((C_BasePlayer*)entity, g_Options.aim_bone))
            continue;
           
        if (localpos.DistTo(entity->GetAbsOrigin()) < dist)
            {
               dist = localpos.DistTo(entity->GetAbsOrigin());
               btarg = entity;
            }
    }
А почему GetEyePos не катит?
 
Назад
Сверху Снизу