like amiri in my mind
Пользователь
-
Автор темы
- #1
KnifeBot : Теперь чит выбирает ближнего из всех записей игроков, обратите внимание что target.last_record - первая валидная запись, а target.history_record - оптимизированная запись, оптимизируем мы только по ориджину, что логично
ZeusBot: просто подправил, что чит сканил лишние записи, когда уже нашел нужную - ничего искать не надо
Код:
void knifebot::scan_targets()
{
if (aim::get().targets.empty())
return;
float lowest_dist = INT_MAX;
adjust_data* final_record = nullptr;
for (auto& target : aim::get().targets)
{
if (target.history_record->valid())
{
if (target.last_record->valid())
{
auto last_distance = g_ctx.globals.eye_pos.DistTo(target.last_record->origin);
auto history_distance = g_ctx.globals.eye_pos.DistTo(target.history_record->origin);
auto this_lowest_distance = last_distance >= history_distance ? last_distance : history_distance;
auto this_lowest_dist_record = last_distance >= history_distance ? target.last_record : target.history_record;
if (this_lowest_distance < lowest_dist) {
lowest_dist = this_lowest_distance;
final_record = this_lowest_dist_record;
}
}
}
else if(target.last_record->valid())
{
auto last_distance = g_ctx.globals.eye_pos.DistTo(target.last_record->origin);
if (last_distance < lowest_dist) {
lowest_dist = last_distance;
final_record = final_target.record;
}
}
final_target.record = final_record;
}
}
ZeusBot:
void zeusbot::scan_targets()
{
if (aim::get().targets.empty())
return;
for (auto& target : aim::get().targets)
{
if (scanned_targets.size() >= 2)
break;
if (target.history_record->valid())
{
scan_data last_data;
if (target.last_record->valid())
{
target.last_record->adjust_player();
scan(target.last_record, last_data);
}
if (last_data.valid()) {
scanned_targets.emplace_back(scanned_target(target.last_record, last_data));
continue;
}
scan_data history_data;
target.history_record->adjust_player();
scan(target.history_record, history_data);
if (history_data.valid())
scanned_targets.emplace_back(scanned_target(target.history_record, history_data));
}
else
{
if (!target.last_record->valid())
continue;
scan_data last_data;
target.last_record->adjust_player();
scan(target.last_record, last_data);
if (!last_data.valid())
continue;
scanned_targets.emplace_back(scanned_target(target.last_record, last_data));
}
}
}
Последнее редактирование: