Solved CSGO RCS Recoil Control System

  • CSGO recently moved logic from 'client_panorama.dll' to 'client.dll', you must update all code that uses 'client_panorama.dll' and replace it with 'client.dll' or the code will not work.
Hexui Undetected CSGO Cheats Sinkicheat PUBG Cheat

getox

Newbie
Full Member
Feb 18, 2014
21
162
1
idk why, but this code dont work

C++:
RPM(m.h_Process, (PBYTE*)(cLocalPlayer + m_vecPunch), &vPunchAngles, sizeof(vector<float>), NULL);
RPM(m.h_Process, (PBYTE*)(cLocalPlayer + SetViewAngles), &AimAngles, sizeof(vector<float>), NULL);
vPunchAngles ok, but AimAngles {0,0,0}

offsets:
C++:
DWORD m_vecPunch = 0x13DC;
DWORD SetViewAngles = 0x4CE0;
Where is my mistake?
 

getox

Newbie
Full Member
Feb 18, 2014
21
162
1
Is it because you're using Set and not Get?
i need a AimAngle for get new angle, but i cant do it
C++:
RPM(m.h_Process, (PBYTE*)(cLocalPlayer + SetViewAngles), &AimAngles, sizeof(vector<float>), NULL);
its not working
my question is: why?
 

Obsta

Jr.Hacker
Meme Tier VIP
Jan 27, 2014
394
4,338
17
Because you can't read a setter method? From my offset dumper it says your offset is correct which means you're trying to read from a writing method. You want GetAimAngles not SetAimAngles.
 

getox

Newbie
Full Member
Feb 18, 2014
21
162
1
Because you can't read a setter method? From my offset dumper it says your offset is correct which means you're trying to read from a writing method. You want GetAimAngles not SetAimAngles.
well, I will try
 

Obsta

Jr.Hacker
Meme Tier VIP
Jan 27, 2014
394
4,338
17
I don't know what you need specifically i was just showing you the basics of accessing private variables using get/set.
 

Obsta

Jr.Hacker
Meme Tier VIP
Jan 27, 2014
394
4,338
17
Create a bullet structure array, containing a ID, X , Y. and give each bullet the corresponding amount of vPunchAngles, then when you start firing adjust your mouse according to the array. That's my logic, should be very easy to implement.


Edit:

[18-03, 14:53] Sid The Mammal: take your current view angles and decrease punch angles from them
 
Last edited:

getox

Newbie
Full Member
Feb 18, 2014
21
162
1
GetViewAngles and GetPunchAngles done

now, i need a SetViewAngles, but my wpm dont work...

C++:
normAngles[0] = myPlayer.AimAngles[0] - myPlayer.vPunchAngles[0] * 1.97f;
normAngles[1] = myPlayer.AimAngles[1] - myPlayer.vPunchAngles[1] * 1.97f;
normAngles[2] = myPlayer.AimAngles[2] - myPlayer.vPunchAngles[2] * 1.97f;
WPM(m.h_Process, (PBYTE*)(m.dw_Client + SetViewAngles), &normAngles, sizeof(vector<float>), NULL);
offsets:

C++:
DWORD m_vecPunch = 0x13DC;
DWORD SetViewAngles = 0x4CE0;
DWORD m_angEyeAngles = 0x239C;
 

simonpaa

Jr.Coder
Silenced
Oct 2, 2013
55
708
0
Much more simply version :
C++:
float reduce 1.97f; // Here we start saying if it goes over 1.97 it will be reduce. You can choose you own number..
if(recoil>reduce) 
{
Sleep(5); you not need to a "Sleep" here.
WPM(..) // or and second chose don't think you can use wpm because this will fuck it up.
Sleep(1);
return;
}
Don't think you just can copy paste this because is more an example..
 

DeniCevap

Newbie
Apr 9, 2015
2
62
0
I've have tried to make a RCS externally using mouse_event. But it doesn't compensate for the recoil, I do not know what I am doing wrong.

I am doing it externally because I want to learn doing it externally with mouse_event. I could just use "SetViewAngle" I know..
It goes up a few pixels, then keeps panning to the right..

C#
C++:
private Vector3 AimAngle;
private Vector3 OldAngle;
private Vector3 ViewAngle;

private void RCS( )
        {
            if ( !antiRCS )
                return;

            var ourPlayer = GetLocalPlayer();
            var shotsFired = Memory.ReadIntMemory( ourPlayer + 0x00001d60, 4 );
            if ( shotsFired > prevFired )
            {
                var punchVector = Memory.ReadVectorMemory( ourPlayer + 0x000013e8 );

                ViewAngle.x = punchVector.x - OldAngle.x;
                ViewAngle.y = punchVector.y - OldAngle.y;

                AimAngle.x -= ViewAngle.x * 2f;
                AimAngle.y -= ViewAngle.y * 2f;

                mouse_event( 0x0001, ( uint ) AimAngle.x, ( uint ) AimAngle.y, 0, UIntPtr.Zero );

                OldAngle.x = punchVector.x;
                OldAngle.y = punchVector.y;

                prevFired = shotsFired
            } 
            else 
            {
                OldAngle.x = 0;
                OldAngle.y = 0;
                prevFired = 0;
            }
}
I've tried also to use the centre of screen with "Height / 2" etc, and then using DeltaX and DeltaY to negate the recoil effect, but this makes aim down the ground instantly..

I would appreciate some help :)
 

d0wen

Jr.Coder
Full Member
Nobleman
Dec 26, 2012
87
473
0
Could you try to change your x angle to this?
C#:
ViewAngle.x = ((punchVector.x - OldAngle.x) * -1.0);
EDIT:
Since youre doing mouseMove, it's possible that you need to angels/ingame_sens
 
Last edited:

d0wen

Jr.Coder
Full Member
Nobleman
Dec 26, 2012
87
473
0
Taken from a c++ source:
C++:
m_Ingamesensitivity = Process->ReadMemory<float>(GlobalVariables::ClientAddress + Offsets::SensivityAddress);
				vDelta.x = ((LocalPlayer->Punch.x - vPrevPunch.x)*m_YMultiplayer) / (m_Yaw * m_Ingamesensitivity * GlobalVariables::MouseMultiplyer)*(-1.0);
				vDelta.y = ((LocalPlayer->Punch.y - vPrevPunch.y)*m_XMultiplayer) / (m_Yaw * m_Ingamesensitivity * GlobalVariables::MouseMultiplyer);
				vPrevPunch = LocalPlayer->Punch;

				MouseMove(vDelta.y, vDelta.x);
 

dmo

Coder
Full Member
Nobleman
Nov 8, 2014
145
678
5
What type of address and stuff is necessary to do a external RCS? I have no idea.:eek:
 

rN'

Jr.Hacker
Meme Tier VIP
Jan 19, 2014
340
5,268
41
What type of address and stuff is necessary to do a external RCS? I have no idea.:eek:
Same as internal.. (local) player pointer, punch angles, function to set your viewangles or move your mouse..
 

Slayer1250

Newbie
Full Member
Jun 8, 2016
20
92
0
I'm trying to learn how to code an RCS (no recoil) but it seems to not have any affect. Help?

Offsets....


const DWORD setView = 0x00004CE0;
const DWORD AimPunch = 0x000013E0;
const DWORD shotsFired = 0x0000A2C0;

C++:
if (pShotsFired > 1)
			{
				vPunch = PM.Read<Vector>(localPlayer + AimPunch);
				engineBase = PM.Read<DWORD>(dMod + enginePointer);
				CurrentViewAngles = PM.Read<Vector>(engineBase + setView);
				
				NewViewAngles.x = ((CurrentViewAngles.x + OldAimPunch.x) - (vPunch.x * 2.f));
				NewViewAngles.y = ((CurrentViewAngles.y + OldAimPunch.y) - (vPunch.y * 2.f));
				NewViewAngles.z = 0;

                                OldAimPunch.x = vPunch.x * 2.f;
				OldAimPunch.y = vPunch.y * 2.f;
				OldAimPunch.z = 0;

				PM.Write<Vector>(engineBase + setView, NewViewAngles);
				Sleep(1);
			}
 
Attention! Before you post:

Read the How to Ask Questions Guide
99% of questions are answered in the Beginner's Guide, do it before asking a question.

No Hack Requests. Post in the correct section.  Search the forum first. Read the rules.

How to make a good post:

  • Fill out the form correctly
  • Tell us the game name & coding language
  • Post everything we need to know to help you
  • Ask specific questions, be descriptive
  • Post errors, line numbers & screenshots
  • Post code snippets using code tags
  • If it's a large project, zip it up and attach it

If you do not comply, your post may be deleted.  We want to help, please make a good post and we will do our best to help you.

Community Mods