Перейти к содержанию

RCS (Recoil Control System)


Рекомендуемые сообщения

Нашел свои старые проекты и решил закончить.Проблема заключается в том, что прицел опускается слишком быстро. Вдруг кто-нибудь делал и может подсказать в чем дело? Вроде все по туторам и должно работать прекрасно.

Если не понятно объяснил в чем проблема, вот видео.

https://www.youtube.com/watch?v=rybzAYAAUXk

void RCS(){	float Punch[3],Ang[3];	if (GetAsyncKeyState(0x01) & 0x8000 && local_player->getShotsFired() > 1)	{		Punch[0] = local_player->getPunch()[0];		Punch[1] = local_player->getPunch()[1];		Punch[2] = 0;		Ang[0] = local_player->getAngles()[0];		Ang[1] = local_player->getAngles()[1];		Ang[2] = local_player->getAngles()[2];		Ang[0] -= Punch[0] * 2; //* 2 компенсация отдачи		Ang[1] -= Punch[1] * 2;		Ang[2] -= Punch[2] * 2;		engine->clampAngles(Ang);		local_player->setAngles(Ang);	}}
Ссылка на комментарий
Поделиться на другие сайты

В С++ не силен, прошу не пинать если ошибка будет ^_^

Если я не ошибаюсь, то Ang[2] всегда будет равно 0, ну в CS:GO аккаунт сразу банят, если Z-координата ViewAngles равна не нулю.

 

Чтоб медленней двигался можно подавлять отдачу не на 100% (*2), а например на 80

 

Вроде так должно работать нормально:

Ang[0] -= Ang[0] + ((Punch[0] * 2)*RCSval); //RCSval = 1; - 100%   RCSval = 0.8; - 80% Ang[1] -= Ang[1] + ((Punch[1] * 2)*RCSval);
Изменено пользователем KaLaSh
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

В С++ не силен, прошу не пинать если ошибка будет ^_^

Если я не ошибаюсь, то Ang[2] всегда будет равно 0, ну в CS:GO аккаунт сразу банят, если Z-координата ViewAngles равна не нулю.

 

Чтоб медленней двигался можно подавлять отдачу не на 100% (*2), а например на 80

 

Вроде так должно работать нормально:

Ang[0] -= Ang[0] + ((Punch[0] * 2)*RCSval); //RCSval = 1; - 100%   RCSval = 0.8; - 80% Ang[1] -= Ang[1] + ((Punch[1] * 2)*RCSval);

По этому коду получается, что Ang будет всегда отрицательный и около нуля, анти-отдача будет работать, но тогда я не смогу двигать прицелом. Уже все что можно перепробовал, осталось только через центр экрана попробовать и с помощью CreateMove) Да Ang[2] всегда 0. Видел как в других читах работает, и как у меня, хотя код одинаковый, значения правильные, единственное где может быть ошибка это в записи Ang.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

По этому коду получается, что Ang будет всегда отрицательный и около нуля, анти-отдача будет работать, но тогда я не смогу двигать прицелом. Уже все что можно перепробовал, осталось только через центр экрана попробовать и с помощью CreateMove) Да Ang[2] всегда 0. Видел как в других читах работает, и как у меня, хотя код одинаковый, значения правильные, единственное где может быть ошибка это в записи Ang.

У меня не CS:S, а в CS:GO, но в CS:S тоже должно работать. Я создавал новый поток для RCS, в нем уже все манипуляции с ViewAngles

// C##region RCSif (rcs)                {                    if (localPlayer.m_iShotsFired > 0)                                       {                        Vector3 currentPunch = localPlayer.m_vecPunch - vecPunch;                        Vector3 viewAngles = Memory.Read<Vector3>((IntPtr)(setViewAnglesAddress), Vector3.Zero);                        Vector3 newViewAngles = viewAngles - (currentPunch * (2f / 100f * rcsval));                        newViewAngles = newViewAngles.ClampAngle();                        Memory.Write<Vector3>((IntPtr)(setViewAnglesAddress), newViewAngles);                    }                    //vecPunch = localPlayer.m_vecPunch;                                   }#endregion
https://www.youtube.com/watch?v=Vl_jqBADp3s

P.S. У меня external-чит, без инжекта, только чтение-запись памяти

Изменено пользователем KaLaSh
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Спасибо, попробую.

 

 

У меня не CS:S, а в CS:GO, но в CS:S тоже должно работать. Я создавал новый поток для RCS, в нем уже все манипуляции с ViewAngles

// C##region RCSif (rcs)                {                    if (localPlayer.m_iShotsFired > 0)                                       {                        Vector3 currentPunch = localPlayer.m_vecPunch - vecPunch;                        Vector3 viewAngles = Memory.Read<Vector3>((IntPtr)(setViewAnglesAddress), Vector3.Zero);                        Vector3 newViewAngles = viewAngles - (currentPunch * (2f / 100f * rcsval));                        newViewAngles = newViewAngles.ClampAngle();                        Memory.Write<Vector3>((IntPtr)(setViewAnglesAddress), newViewAngles);                    }                    //vecPunch = localPlayer.m_vecPunch;                                   }#endregion
https://www.youtube.com/watch?v=Vl_jqBADp3s
P.S. У меня external-чит, без инжекта, только чтение-запись памяти

 

 

Кстати если надо, чтобы игроки отрисованные glow не лежали на земле сделай проверку

if (entity->isDormant()){ mem->WriteMem<bool>((GlowBase + ((entity->getGlowIndex() * 0x38) + 0x24)), false);}else{ mem->WriteMem<bool>((GlowBase + ((entity->getGlowIndex() * 0x38) + 0x24)), true);}

Спасибо, помог откорректировать значения и будет прекрасно работать. +Rep обязательно :-D

Изменено пользователем partoftheworlD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.