Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Что изменить, убрать или добавить в ресольвере, памагити(аккуратно треш код)

Flowseal = SAAC :)
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
19 Янв 2020
Сообщения
290
Реакции
32
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не ресольвер, а пизда, я прекрасно это знаю. Подскажите чо изменить, убрать или добавить, буду очень благодарен!

static std::random_device rd;
static std::mt19937 rng(rd());

c_resolver resolver;



void c_resolver::resolve(c_animation_system::animation* record, c_base_entity* entity, c_cs_player* local, c_engine_client* engine, c_animation_system* data)
{

float resolver_yaw = 0.f;

// исключение бота или легит плеера
if (!record->player || record->player->get_info().fakeplayer || !config->Ragebot.resolver)
{
resolver.missed_due_to_bad_resolve[record->index] = 0;
return;
}

const auto animstate = record->anim_state;

if (!record->has_anim_state)
return;

auto resolver_strength = 0.8f;
resolver_strength = std::clamp(resolver_strength, 0.8f, 1.f);

if (record->player->get_velocity().length2d() >= 150.f)
resolver_strength = 0.5f;

if (record->player->get_velocity().length2d() >= 150.f)
resolver.missed_due_to_bad_resolve[record->index] = 0;

const auto missed_shots = resolver.missed_due_to_bad_resolve[record->index];

auto logic_resolver_2 = [&]()
{
const auto local = c_cs_player::get_local_player();
if (!local)
return 0.f;

auto resolver_yaw = 0.f;
auto freestanding_yaw = 0.f;

const auto current_shot = missed_shots % 3;
const auto maximum_desync = resolver.get_max_desync_delta(record->player) * resolver_strength;
const auto plus_desync = record->eye_angles.y + maximum_desync;
const auto minus_desync = record->eye_angles.y - maximum_desync;

get_target_freestand_yaw(local, &freestanding_yaw);

const auto diff_from_plus_desync = fabs(math::angle_diff(freestanding_yaw, plus_desync));
const auto diff_from_minus_desync = fabs(math::angle_diff(freestanding_yaw, minus_desync));

const auto first_yaw = diff_from_plus_desync < diff_from_minus_desync ? plus_desync : minus_desync;
const auto second_yaw = diff_from_plus_desync < diff_from_minus_desync ? minus_desync : plus_desync;
const auto third_yaw = math::calc_angle(local->get_shoot_position(),
record->player->get_shoot_position()).y;

switch (current_shot)
{
case 0:
resolver_yaw = first_yaw;
break;
case 1:
resolver_yaw = second_yaw;
break;
case 2:
resolver_yaw = third_yaw;
break;
default:
break;
}

return resolver_yaw;
};

resolver_yaw = logic_resolver_2();

record->anim_state.goal_feet_yaw = math::normalize_yaw(resolver_yaw);

const auto current_animstate = record->player->get_anim_state();

if (current_animstate)
current_animstate->goal_feet_yaw = record->anim_state.goal_feet_yaw;
}

void resolveBrute_ili_ne_bryt_yaneproveral(c_animation_system::animation* anim)
{
auto is_moving = anim->player->get_velocity().length2d() > 0.1 && anim->player->is_on_ground();

const auto info = animation_system->get_animation_info(anim->player);

if (!info || !anim->has_anim_state)
return;

const auto slow_walk = anim->anim_state.feet_yaw_rate >= 0.01f && anim->anim_state.feet_yaw_rate <= 0.8f;

if (info->brute_state == resolver_start)
info->brute_yaw = std::uniform_int_distribution<int>(0, 1)(rng) ? -130.f : 130.f;

if (info->brute_state == resolver_start)
info->brute_yaw = slow_walk ? std::uniform_int_distribution<int>(0, 1)(rng) ? -150.f : 150.f : 0.f;

if (info->brute_state == resolver_inverse)
info->brute_yaw = std::uniform_int_distribution<int>(0, 1)(rng) ? -167.f : 167.f;

if (is_moving)
anim->anim_state.goal_feet_yaw = math::normalize_yaw(anim->anim_state.goal_feet_yaw + info->brute_yaw); // set to 0 at start :)
else
anim->anim_state.goal_feet_yaw = math::normalize_yaw(anim->anim_state.goal_feet_yaw + info->brute_yaw);
}

void c_resolver::on_player_hurt(c_game_event* event)
{
if (!event || !config->Ragebot.enable)
return;

auto local = c_cs_player::get_local_player();

if (!local || !local->is_alive())
return;

const auto attacker = client_entity_list()->get_client_entity(
engine_client()->get_player_for_user_id(event->get_int(_("attacker"))));

const auto target = reinterpret_cast<c_cs_player*>(client_entity_list()->get_client_entity(
engine_client()->get_player_for_user_id(event->get_int(_("userid")))));

if (attacker && target && attacker == local && target->is_enemy())
{
static const auto hit_msg = __("Hit %s in %s for %d damage");
_rt(hit, hit_msg);
char msg[255];

const auto hitgroup = event->get_int("hitgroup");
const auto dmg = event->get_int("dmg_health");

switch (hitgroup)
{
case hitgroup_head:
sprintf_s(msg, hit, target->get_info().name, _("head"), dmg);
break;
case hitgroup_leftleg:
case hitgroup_rightleg:
sprintf_s(msg, hit, target->get_info().name, _("leg"), dmg);
break;
case hitgroup_stomach:
sprintf_s(msg, hit, target->get_info().name, _("stomach"), dmg);
break;
default:
sprintf_s(msg, hit, target->get_info().name, _("body"), dmg);
break;
}

_events.push_back(_event(msg));

int index = target->index();
resolver.missed_due_to_bad_resolve[index]--;
resolver.missed_due_to_bad_resolve[index] =
std::clamp(resolver.missed_due_to_bad_resolve[index], 0, 99);
}

}

void c_resolver::on_bullet_impact(c_game_event* event)
{
if (!event || !config->Ragebot.enable)
return;

auto local = c_cs_player::get_local_player();

if (!local || !local->is_alive())
return;

const auto target = reinterpret_cast<c_cs_player*>(client_entity_list()->get_client_entity(engine_client()->get_player_for_user_id(event->get_int(_("userid")))));

if (!target || target != local)
return;

c_vector3d pos(event->get_float(_("x")), event->get_float(_("y")), event->get_float(_("z")));

// надо ипрувнуть
auto missed_due_to_spread = [&](c_vector3d pos)
{
c_vector3d aim_eye_pos = resolver.last_eye_pos;
c_qangle impact_angle = math::calc_angle(aim_eye_pos, pos);

c_vector3d forward, right, up, new_angle, end;
math::angle_vectors(impact_angle, forward, right, up);
math::vector_angles(forward, new_angle);

// эндпоинт
math::angle_vectors(new_angle, end);

if (resolver.last_shot_missed_index > 0)
{
if (!c_aimhelper::can_hit_hitbox(resolver.last_shot_missed_index,
resolver.last_eye_pos,
resolver.last_eye_pos + end.normalize() * 8192.f,
resolver.last_bones, resolver.last_hitbox))
{
resolver.missed_due_to_spread[resolver.last_shot_missed_index]++;
resolver.missed_due_to_spread[resolver.last_shot_missed_index] = std::clamp(resolver.missed_due_to_spread[resolver.last_shot_missed_index], 0, 99);

_events.push_back(_event("Missed due to SPREAD"));
logging->info(_("Missed due to bad resolve.")); // game events.
}
else
{
resolver.missed_due_to_bad_resolve[resolver.last_shot_missed_index]++;
resolver.missed_due_to_bad_resolve[resolver.last_shot_missed_index] = std::clamp(resolver.missed_due_to_bad_resolve[resolver.last_shot_missed_index], 0, 99);
}

}
resolver.last_shot_missed_index = 0;
};
missed_due_to_spread(pos);
}

void c_resolver::on_round_start(c_game_event* event)
{
resolver.last_shot_missed_index = 0;
resolver.has_target = false;

std::fill(resolver.missed_due_to_bad_resolve, resolver.missed_due_to_bad_resolve +
ARRAYSIZE(resolver.missed_due_to_bad_resolve), 0);

std::fill(resolver.missed_due_to_spread, resolver.missed_due_to_spread +
ARRAYSIZE(resolver.missed_due_to_spread), 0);
}

void c_resolver::on_player_death(c_game_event* event)
{
if (!event || !config->Ragebot.enable)
return;

auto local = c_cs_player::get_local_player();

if (!local || !local->is_alive())
{
resolver.last_shot_missed_index = 0;
return;
}

int victim_id = event->get_int(_("userid"));
int killer_id = event->get_int(_("attacker"));

bool is_headshot = event->get_int(_("headshot"));

int victim_index = engine_client()->get_player_for_user_id(victim_id);
int killer_index = engine_client()->get_player_for_user_id(killer_id);

if (victim_index && killer_index && local)
{
resolver.missed_due_to_bad_resolve[victim_index] = 0;
resolver.missed_due_to_spread[victim_index] = 0;
}
}

bool c_resolver::get_target_freestand_yaw(c_cs_player* target, float* yaw)
{
float dmg_left = 0.f;
float dmg_right = 0.f;

static auto get_rotated_pos = [](c_vector3d start, float rotation, float distance)
{
float rad = deg2rad(rotation);
start.x += cos(rad) * distance;
start.y += sin(rad) * distance;

return start;
};

const auto local = c_cs_player::get_local_player();

if (!local || !target || !local->is_alive())
return false;

c_vector3d local_eye_pos = local->get_shoot_position();
c_vector3d eye_pos = target->get_shoot_position();
c_qangle angle = math::calc_angle(local_eye_pos, eye_pos);

auto backwards = angle.y;

c_vector3d pos_left = get_rotated_pos(eye_pos, angle.y + 90.f, 40.f);
c_vector3d pos_right = get_rotated_pos(eye_pos, angle.y + 90.f, -40.f);

const auto wall_left = trace_system->wall_penetration(local_eye_pos, pos_left,
nullptr, local);

const auto wall_right = trace_system->wall_penetration(local_eye_pos, pos_right,
nullptr, local);

if (wall_left.has_value())
dmg_left = wall_left.value().damage;

if (wall_right.has_value())
dmg_right = wall_right.value().damage;

// форс бэквардов
if (fabsf(dmg_left - dmg_right) < 10.f)
{
*yaw = backwards;
return false;
}

bool direction = dmg_left > dmg_right;
*yaw = direction ? angle.y - 90.f : angle.y + 90.f;

return true;
}

float c_resolver::get_max_desync_delta(c_cs_player* player)
{
if (!player || !player->is_alive() || player->is_dormant_virt())
return 0.f;

auto animstate = uintptr_t(player->get_anim_state());
if (!animstate)
return 0.f;

float duckammount = *(float*)(animstate + 0xA4);
float speedfraction = std::max<float>(0, std::min(*reinterpret_cast<float*>(animstate + 0xF8), 1.f));
float speedfactor = speedfraction >= 0.f ? std::max<float>(0, std::min(1.f, *reinterpret_cast<float*> (animstate + 0xFC))) : speedfactor = 0.f;

float unk1 = ((*reinterpret_cast<float*> (animstate + 0x11C) * -0.30000001) - 0.19999999) * speedfraction;
float unk2 = unk1 + 1.f;

if (duckammount > 0)
unk2 += +((duckammount * speedfactor) * (0.5f - unk2));

auto retvalue = *(float*)(animstate + 0x334) * unk2;

if (retvalue > 1.f) // счетчик миссов
retvalue -= 1.f;

retvalue = std::clamp(retvalue, 28.f, 60.f);
return retvalue;
}
 
Десинк.вип на рифке. Сразу же можешь закрывать и искать другое сдк. Я с одним челом две недели потели и фиксили эту помойку. Тут кстати все неправильное. И анимфикс зачем-то сломали. там ещё енеми у тебя пропадать будут, просто бегающие невидимки. Не думаю что ты осилишь это пофиксить, тут бреда больше чем антипасты, а антипасты тут много.
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Десинк.вип на рифке. Сразу же можешь закрывать и искать другое сдк. Я с одним челом две недели потели и фиксили эту помойку. Тут кстати все неправильное. И анимфикс зачем-то сломали. там ещё енеми у тебя пропадать будут, просто бегающие невидимки. Не думаю что ты осилишь это пофиксить, тут бреда больше чем антипасты, а антипасты тут много.
Ну я пофиксил невидимок, я знаю что там все неправильно(аж плакать хочется) , ждал что бы именно ты ченить подсказал, а я решил тоже пытаться зафиксить рифк, буду благодарен если скинешь простенький, но фикшенный ресик
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Десинк.вип на рифке. Сразу же можешь закрывать и искать другое сдк. Я с одним челом две недели потели и фиксили эту помойку. Тут кстати все неправильное. И анимфикс зачем-то сломали. там ещё енеми у тебя пропадать будут, просто бегающие невидимки. Не думаю что ты осилишь это пофиксить, тут бреда больше чем антипасты, а антипасты тут много.
Я решился фиксить только потому что мне нужен опыт
 
Ну я пофиксил невидимок, я знаю что там все неправильно(аж плакать хочется) , ждал что бы именно ты ченить подсказал, а я решил тоже пытаться зафиксить рифк, буду благодарен если скинешь простенький, но фикшенный ресик
ну дам пару подсказок, почини бектрек в ragebot.cpp

там где scan_record_gun. там после get oldest animation надо вместо latest.value поставить oldest.value
 
крякоюзеров фиксить не нужно даже
а ничего что в десинки кряка миссают все кому не лень?))) Твоя паста тож будет миссать. Его фиксит разве что неверлуз, еехоми и нормальные еу софты
 
а ничего что в десинки кряка миссают все кому не лень?))) Твоя паста тож будет миссать. Его фиксит разве что неверлуз, еехоми и нормальные еу софты
Соре что обрываю, но нл походу тоже не особо эти десинки любит
шадоуподстилька привет :3
 
Соре что обрываю, но нл походу тоже не особо эти десинки любит
Потому что фиксить статики очень трудно. А особенно если это статики с джиттером eye angles как щас модно. Я он челу сделал софт, он просто ходил и раздавал всем люлей. Но потом мы пошли тестить против кряка фт, мы просто дампили в статик. Я сидел и офигивал как такое возможно. А оказывается возможно. (Я тогда поленился брутфорс сделать просто)
 
Потому что фиксить статики очень трудно. А особенно если это статики с джиттером eye angles как щас модно. Я он челу сделал софт, он просто ходил и раздавал всем люлей. Но потом мы пошли тестить против кряка фт, мы просто дампили в статик. Я сидел и офигивал как такое возможно. А оказывается возможно. (Я тогда поленился брутфорс сделать просто)
Хз фатал кряк вообще чернуха какая то, то его хуй кто фиксит пуль 5-6 то сразу ебало дают. Благо охиген в4.2 спасают ситуацию дико
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу