-
Автор темы
- #1
после установки новых анимов чит стал стрелять без остановки в некоторых местах мапы(см момент 1)/after installing new animations, the cheat began to shoot non-stop in some places of the map (see moment 1)
moment 1:
также при начале мапы чит начинает без остановки стрелять пока не начнет стрелять по противнику(см момент 2)/also, at the beginning of the map, the cheat starts shooting without stopping until it starts shooting at the enemy (see moment 2)
moment 2:
Заранее спасибо)
moment 1:
moment 2:
OnNetUpdate(скорее всего проблема где то в нем):
void AimPlayer::OnNetUpdate(Player* player) {
bool reset = (!g_menu.main.aimbot.enable.get() || player->m_lifeState() == LIFE_DEAD || !player->enemy(g_cl.m_local));
bool disable = (!reset && !g_cl.m_processing);
// if this happens, delete all the lagrecords.
if (reset) {
player->m_bClientSideAnimation() = true;
m_records.clear();
m_alive_loop_cycle = -1;
m_body_proxy_old = player->m_flLowerBodyYawTarget();
m_body_proxy = player->m_flLowerBodyYawTarget();
m_body_proxy_updated = false;
m_moved = false;
is_last_moving_lby_valid = false;
m_walk_record = LagRecord{};
return;
}
// just disable anim if this is the case.
if (disable) {
player->m_bClientSideAnimation() = true;
m_alive_loop_cycle = -1;
m_body_proxy_old = player->m_flLowerBodyYawTarget();
m_body_proxy = player->m_flLowerBodyYawTarget();
m_body_proxy_updated = false;
m_moved = false;
is_last_moving_lby_valid = false;
m_walk_record = LagRecord{};
return;
}
// update player ptr if required.
// reset player if changed.
if (m_player != player) {
m_stand_index = 0;
m_stand_index2 = 0;
m_stand_index3 = 0;
m_side_last_move_idx = 0;
m_body_index = 0;
m_airfw_idx = 0;
m_airback_idx = 0;
m_airside_idx = 0;
m_lby_idx = 0;
m_edge_index = 0;
m_is_kaaba = false;
m_is_cheese_crack = false;
m_is_pandora = false;
m_bruteforce_idx = 0;
m_backwards_idx = 0;
m_reverse_fs = 0;
m_sexback_idx = 0;
m_sfs_idx = 0;
m_sback_idx = 0;
m_anti_index = 0;
m_update_count = 0;
m_freestanding_index = 0;
m_exback_idx = 0;
m_fake_walk_idx = 0;
m_air_brute_index = 0;
m_sforward_idx = m_sback2_idx = m_sfs2_idx = 0;
m_last_move_idx = 0;
m_move_data.m_time = FLT_MAX;
m_records.clear();
}
// update player ptr.
m_player = player;
// indicate that this player has been out of pvs.
// insert dummy record to separate records
// to fix stuff like animation and prediction.
if (player->dormant()) {
m_alive_loop_cycle = -1;
m_body_proxy_old = player->m_flLowerBodyYawTarget();
m_body_proxy = player->m_flLowerBodyYawTarget();
m_body_proxy_updated = false;
m_moved = false;
is_last_moving_lby_valid = false;
m_walk_record = LagRecord{};
bool insert = true;
// we have any records already?
if (!m_records.empty()) {
LagRecord* front = m_records.front().get();
// we already have a dormancy separator.
if (front->dormant())
insert = false;
}
if (insert) {
// add new record.
m_records.emplace_front(std::make_shared< LagRecord >(player));
// get reference to newly added record.
LagRecord* current = m_records.front().get();
// mark as dormant.
current->m_dormant = true;
}
return;
}
// did the player update?
if (player->m_flSimulationTime() == player->m_flOldSimulationTime())
return;
// get current cycle
float cur_alive_loop_cycle = player->m_AnimOverlay()[11].m_cycle;
// did the player fake an update?
if (cur_alive_loop_cycle == m_alive_loop_cycle) {
player->m_flSimulationTime() = player->m_flOldSimulationTime();
// exit, dont update animations on fake update
return;
}
// set this to current cycle
m_alive_loop_cycle = cur_alive_loop_cycle;
// this is the first data update we are receving
// OR we received data with a newer simulation context.
// add new record.
m_records.emplace_front(std::make_shared< LagRecord >(player));
// get reference to newly added record.
LagRecord* current = m_records.front().get();
// mark as non dormant.
current->m_dormant = false;
// set shifting tickbase record.
current->m_shift = game::TIME_TO_TICKS(current->m_sim_time) - g_csgo.m_globals->m_tick_count;
// update animations on current record.
// call resolver.
g_resolver.ResolveAngles(player, current);
// create bone matrix for this record.
g_bones.setup(m_player, nullptr, current);
// no need to store insane amt of data.
while (m_records.size() > 256)
m_records.pop_back();
}
Последнее редактирование: