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

Desync Delta для CSGO Simple

  • Автор темы Автор темы Porches
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.
C++:
Expand Collapse Copy
CCSGOPlayerAnimState* C_BasePlayer::GetPlayerAnimState()
{
    return *(CCSGOPlayerAnimState * *)((DWORD)this + 0x3900);
}

C++:
Expand Collapse Copy
float C_BasePlayer::GetMaxDesyncDelta()
{
    auto animstate = uintptr_t(this->GetPlayerAnimState());

    float duckammount = *(float *)(animstate + 0xA4);
    float speedfraction = fmax(0, fmin(*reinterpret_cast<float*>(animstate + 0xF8), 1));

    float speedfactor = fmax(0, fmin(1, *reinterpret_cast<float*> (animstate + 0xFC)));

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

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

    unk3 = *(float *)(animstate + 0x334) * unk2;

    return unk3;
}
Спасибо, но это юзлесс
 
C++:
Expand Collapse Copy
CCSGOPlayerAnimState* C_BasePlayer::GetPlayerAnimState()
{
    return *(CCSGOPlayerAnimState * *)((DWORD)this + 0x3900);
}

C++:
Expand Collapse Copy
float C_BasePlayer::GetMaxDesyncDelta()
{
    auto animstate = uintptr_t(this->GetPlayerAnimState());

    float duckammount = *(float *)(animstate + 0xA4);
    float speedfraction = fmax(0, fmin(*reinterpret_cast<float*>(animstate + 0xF8), 1));

    float speedfactor = fmax(0, fmin(1, *reinterpret_cast<float*> (animstate + 0xFC)));

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

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

    unk3 = *(float *)(animstate + 0x334) * unk2;

    return unk3;
}
Проблема по важнее есть уже с легит десинками, они как джиттеры выглядят...
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Проблема по важнее есть уже с легит десинками, они как джиттеры выглядят...
углы нормализируешь? fps >= maxrotation? да и вообще, скидывай код, а то никто же ничего не помнимает
 
Проблема по важнее есть уже с легит десинками, они как джиттеры выглядят...
Не надо пастить десинки из Sеnsum потому что :roflanzdarova:
Там ЛБУ апдейт поломан, и вообще не очень реализация
 
углы нормализируешь? fps >= maxrotation? да и вообще, скидывай код, а то никто же ничего не помнимает
200фпс в среднем.
void Choke(CUserCmd* pCmd)
{
static int choked = 0;
if (choked >= 2)
{
g_GlobalVars->bSendPacket = true;
choked = 0;
}
else
{
g_GlobalVars->bSendPacket = false;
choked++;
}
}

void LBYBreaker(float yaw, CUserCmd* pCmd)
{
static float lastupdate = 0;
int server_time = g_LocalPlayer->m_nTickBase() * g_GlobalVars->interval_per_tick;
bool breaker = false;
bool moving = g_LocalPlayer->GetPlayerAnimState()->speed_2d > 0.1;
if (server_time >= lastupdate)
{
lastupdate = server_time + (moving ? 0.22f : 1.1f);
breaker = true;
}
else
{
breaker = false;
}
if (breaker)
{
pCmd->viewangles.yaw += yaw;
}
else
{
pCmd->viewangles.yaw -= yaw;
}
}

void Desync::Inverter()
{
static float last_time = 0;
if (GetAsyncKeyState(g_Options.misc_inverter_key))
{
if (g_GlobalVars->curtime >= last_time)
{
side = !side;
last_time = g_GlobalVars->curtime + 1;
}
}
}

void Desync::CreateMove(CUserCmd* pCmd)
{
if (!Check(pCmd))
return;

Choke(pCmd);
QAngle angle;
float sidemove = pCmd->sidemove;
float forwardmove = pCmd->forwardmove;
g_EngineClient->GetViewAngles(&angle);
LBYBreaker(side ? 120 : -120, pCmd);
if (g_GlobalVars->bSendPacket)
{
pCmd->viewangles.yaw += side ? g_LocalPlayer->GetDesyncDelta() : -g_LocalPlayer->GetDesyncDelta();
}
else
{
pCmd->viewangles.yaw = angle.yaw;
}
FixMovement(pCmd, angle, forwardmove, sidemove);
}
 
они как джиттеры выглядят...
ну да, если у тебя анимации анимируются каждый тик - ты видишь джиттеры, самое необходимое - это тот угол который ты отправляешь на bSendPacket == true

P.S спасибо, смешно
Код:
Expand Collapse Copy
QAngle angle;
g_EngineClient->GetViewAngles(&angle);
LBYBreaker(side ? 120 : -120, pCmd);  // смотри следующий коммент
if (g_GlobalVars->bSendPacket) // подсказка, почему у тебя что то не так
{
pCmd->viewangles.yaw += side ? g_LocalPlayer->GetDesyncDelta() : -g_LocalPlayer->GetDesyncDelta();
}
else
{
pCmd->viewangles.yaw = angle.yaw;
}
 
ну да, если у тебя анимации анимируются каждый тик - ты видишь джиттеры, самое необходимое - это тот угол который ты отправляешь на bSendPacket == true

P.S спасибо, смешно
Код:
Expand Collapse Copy
QAngle angle;
g_EngineClient->GetViewAngles(&angle);
LBYBreaker(side ? 120 : -120, pCmd);  // смотри следующий коммент
if (g_GlobalVars->bSendPacket) // подсказка, почему у тебя что то не так
{
pCmd->viewangles.yaw += side ? g_LocalPlayer->GetDesyncDelta() : -g_LocalPlayer->GetDesyncDelta();
}
else
{
pCmd->viewangles.yaw = angle.yaw;
}
Для теста я убрал !, я знаю то как правильно, но даже так это джиттеры хуевы
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
[QUOTE = "Porches, post: 934483, member: 118134"] The problem is more important there is already with the desinks, they look like jitters ... [/ QUOTE]
outdated animstate
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу