- Статус
- Оффлайн
- Регистрация
- 30 Дек 2019
- Сообщения
- 10
- Реакции
- 0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
#include "Hooks.h"
#include "Resolver.h"
#include "RageBacktracking.h"
#include "Ragebot.h"
#include "AnimationFix.h"
float AngleDiff(float destAngle, float srcAngle)
{
float delta;
delta = fmodf(destAngle - srcAngle, 360.0f);
if (destAngle > srcAngle)
{
if (delta >= 180)
delta -= 360;
}
else
{
if (delta <= -180)
delta += 360;
}
return delta;
}
std::string ResolverMode[65];
int last_ticks[65];
int IBasePlayer::GetChokedPackets() {
auto ticks = TIME_TO_TICKS(GetSimulationTime() - GetOldSimulationTime());
if (ticks == 0 && last_ticks[GetIndex()] > 0) {
return last_ticks[GetIndex()] - 1;
}
else {
last_ticks[GetIndex()] = ticks;
return ticks;
}
}
float CResolver::GetAngle(IBasePlayer* player) {
return Math::NormalizeYaw(player->GetEyeAngles().y);
}
float CResolver::GetForwardYaw(IBasePlayer* player) {
return Math::NormalizeYaw(GetBackwardYaw(player) - 180.f);
}
float CResolver::GetBackwardYaw(IBasePlayer* player) {
return Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y;
}
float CResolver::GetLeftYaw(IBasePlayer* player) {
return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y - 90.f);
}
float CResolver::GetRightYaw(IBasePlayer* player) {
return Math::NormalizeYaw(Math::CalculateAngle(csgo->local->GetOrigin(), player->GetOrigin()).y + 90.f);
}
bool CResolver::TargetJitter(IBasePlayer* player, bool v2) {
float yaw = v2 ? GetRightYaw(player) : GetLeftYaw(player);
return fabsf(GetAngle(player) - Math::NormalizeYaw(yaw + 58.f))
>= fabsf(GetAngle(player) - Math::NormalizeYaw(yaw - 58.f));
}
bool CResolver::TargetSide(IBasePlayer* player) {
float yaw = Math::NormalizeYaw(GetBackwardYaw(player));
float angle = GetAngle(player);
return fabsf(angle - Math::NormalizeYaw(yaw + 90.f))
>= fabsf(angle - Math::NormalizeYaw(yaw - 90.f));
}
void CResolver::DetectSide(IBasePlayer* player, int* side)
{
Vector src3D, dst3D, forward, right, up, src, dst;
float back_two, right_two, left_two;
trace_t tr;
Ray_t ray, ray2, ray3, ray4, ray5;
CTraceFilter filter;
Math::AngleVectors(Vector(0, GetBackwardYaw(player), 0), &forward, &right, &up);
filter.pSkip = player;
src3D = player->GetEyePosition();
dst3D = src3D + (forward * 384); //Might want to experiment with other numbers, incase you don't know what the number does, its how far the trace will go. Lower = shorter.
ray.Init(src3D, dst3D);
interfaces.trace->TraceRay(ray, MASK_SHOT, &filter, &tr);
back_two = (tr.endpos - tr.startpos).Length();
ray2.Init(src3D + right * 35, dst3D + right * 35);
interfaces.trace->TraceRay(ray2, MASK_SHOT, &filter, &tr);
right_two = (tr.endpos - tr.startpos).Length();
ray3.Init(src3D - right * 35, dst3D - right * 35);
interfaces.trace->TraceRay(ray3, MASK_SHOT, &filter, &tr);
left_two = (tr.endpos - tr.startpos).Length();
if (left_two > right_two) {
*side = -1;
//Body should be right
}
else if (right_two > left_two) {
*side = 1;
}
else
*side = 0;
}
void CResolver::Do(IBasePlayer* player) {
auto animstate = player->GetPlayerAnimState();
if (!animstate)
return;
animstate->m_flGoalFeetYaw = GetAngle(player);
if (!vars.ragebot.resolver)
return;
if (!csgo->local->isAlive())
return;
if (player->GetChokedPackets() <= 0)
return;
int idx = player->GetIndex();
if (player->GetPlayerInfo().fakeplayer)
return;
if (!(player->GetFlags() & FL_ONGROUND))
return;
float angle = GetAngle(player);
if (!csgo->missedshots[idx])
DetectSide(player, &FreestandSide[idx]);
auto speed_2d = (player->GetVelocity().z * player->GetVelocity().z) +
((player->GetVelocity().y * player->GetVelocity().y) + (player->GetVelocity().x * player->GetVelocity().x));
if (speed_2d > 160.0f) {
stored_angle[idx] = 25.0f;
}
else {
if (!csgo->missedshots[idx])
stored_angle[idx] = -60.0f;
else
stored_angle[idx] = csgo->missedshots[idx] % 2 ? 60.f * FreestandSide[idx] : -60.f * FreestandSide[idx];
}
animstate->m_flGoalFeetYaw = angle + stored_angle[idx];
animstate->m_flGoalFeetYaw = Math::NormalizeYaw(animstate->m_flGoalFeetYaw);
}