View Full Version : Visual no recoil
Again I plague the forums with a probably noob question! :tongue:
For lack of my own visual no recoil solution, I've decided to try using aVitamin's visual no recoil. I've hooked FrameStageNotify successfully and confirmed that it works by simply adding a MessageBox, however, for some reason it still doesn't seem to be working.
I've been looking around for a while and have come to the conclusion that the pointer is probably wrong. However, I can't seem to find anything mentioning a changing of the pointer or how to find it in the first place!
0x243FB344 is what I have
Could someone please confirm if this is the correct pointer, and if not how I would go about finding it (I'd rather not have someone just give it to me, I'd rather learn)
Thanks
copymark
11-25-2009, 08:04 AM
[deleted my noob post]
v3n0m4
11-25-2009, 08:34 AM
posting in epic thread.
0x240192D2
0x240192DC
apply voodoo magic & worship j1gs4w for it.
0x240192D2
0x240192DC
I'm sorry but I'm not exactly sure as to what I should do with these values? Are these the X and Y values? Maybe I should put these into a debugger before I post stupid questions :P
get viewangles
get punchangles
subtract viewangle minus punchangle
set viewangles
victory
get viewangles
get punchangles
subtract viewangle minus punchangle
set viewangles
victory
Cheers wav
kolbybrooks
11-26-2009, 01:39 PM
Just hook Engine->SetViewAngles. Easy stuff.
anaMANIAC
11-26-2009, 06:47 PM
Just hook Engine->SetViewAngles. Easy stuff.
That does not work, the visual effect is totally seperate. You could hook setviewangles and have them set to your enemy but when you fire it will still show recoil..
kolbybrooks
11-26-2009, 07:57 PM
What? No, Engine->SetViewAngles gets the modified angles.
QAngle DeltaPunch = QAngle();
void _stdcall SetViewAngles(QAngle &Angle)
{
Angle -= (LocalPlayer()->Punch() - DeltaPunch);
DeltaPunch = LocalPlayer()->Punch();
SetViewAngles_h(Angle);
}
Perfect no-visual recoil. Quite possibly the easiest route.
What? No, Engine->SetViewAngles gets the modified angles.
QAngle DeltaPunch = QAngle();
void _stdcall SetViewAngles(QAngle &Angle)
{
Angle -= (LocalPlayer()->Punch() - DeltaPunch);
DeltaPunch = LocalPlayer()->Punch();
SetViewAngles_h(Angle);
}
Perfect no-visual recoil. Quite possibly the easiest route.
Just had a look at this - it works, but whenever the aimbot is aiming at a target it stops working.
kolbybrooks
11-26-2009, 08:31 PM
Of course it works, if you want it to work with the aimbot you will have to compensate after you aim, an easy way to do that is to call SetViewAngles with the desired angles AFTER you've aimed at the enemy.
Of course it works, if you want it to work with the aimbot you will have to compensate after you aim, an easy way to do that is to call SetViewAngles with the desired angles AFTER you've aimed at the enemy.
I'm doing this - maybe my exisiting recoil (non-visual) code is messing with it? Or maybe what I'm doing is wrong? :S
It also seems to break NoSpread
kolbybrooks
11-26-2009, 10:59 PM
It's because CS:S spread takes into account Punch Angles in addition to the Actual spread.
If you counter the Punch Angles once, you can't double counter it for the spread.
It's because CS:S spread takes into account Punch Angles in addition to the Actual spread.
If you counter the Punch Angles once, you can't double counter it for the spread.
Spread aside - I'm genuinely interested in learning why/how it's breaking the aimbot. Is it because the view angles are manipulated by the aimbot code without correction? In that case I'd assume just calling the hooked SetViewAngles would resolve the issue, but it doesn't seem to?
kolbybrooks
11-27-2009, 01:13 AM
Try this..
void Aimbot(CUserCmd* Cmd)
{
...
CalculateAngle(LocalPlayer()->EyePosition(), Position, Angle);
Cmd->viewangles = Angle - LocalPlayer()->Punch();
Engine->SetViewAngles(Cmd->viewangles);
}
Try this..
void Aimbot(CUserCmd* Cmd)
{
...
CalculateAngle(LocalPlayer()->EyePosition(), Position, Angle);
Cmd->viewangles = Angle - LocalPlayer()->Punch();
Engine->SetViewAngles(Cmd->viewangles);
}
Confirm that it works. Thank you.
QAngle pPunchAngle = *( QAngle* )( (DWORD)m_pMyPlayer->BaseEnt() + 0xBB0 );
pUserCommand->viewangles = pUserCommand->viewangles - pPunchAngle;
m_pEngine->SetViewAngles( pUserCommand->viewangles );
Now there is the issue of No Spread - would you care to elaborate what you said before on the issue as I wasn't able to fully comprehend what you explained before. Again, I don't really want code, I'd rather understand what's going on and then make my own fix from there.
edit: I've fixed it a little bit, removing the punch angle from the viewangles before calculating nospread seems to work, however the nospread seems a little bit off. Did I do the right thing?
kolbybrooks
11-27-2009, 02:31 AM
I'm not sure how you calculate your spread; I get mine through an FX_FireBullets hook and I calculate it with the current Angle, Cmd->viewangles + LocalPlayer()->Punch(), and then multiply it by my Spread Vector.
I'm not sure how you calculate your spread; I get mine through an FX_FireBullets hook and I calculate it with the current Angle, Cmd->viewangles + LocalPlayer()->Punch(), and then multiply it by my Spread Vector.
I'm just using a slightly modified version of HLH's nospread
mattdog
11-27-2009, 06:47 AM
Visual no recoil
pre FRAME_RENDER_START: GetPunchAngle[tmp], SetPunchAngle[0,0,0]
post FRAME_RENDER_START: SetPunchAngle[tmp]
Visual no recoil
pre FRAME_RENDER_START: GetPunchAngle[tmp], SetPunchAngle[0,0,0]
post FRAME_RENDER_START: SetPunchAngle[tmp]
old news
mattdog
11-27-2009, 08:37 AM
i made it in 2004 :(
I think I've fixed the issue. Thank you everyone you've all been incredibly helpful
Punica
04-16-2010, 05:33 PM
What? No, Engine->SetViewAngles gets the modified angles.
QAngle DeltaPunch = QAngle();
void _stdcall SetViewAngles(QAngle &Angle)
{
Angle -= (LocalPlayer()->Punch() - DeltaPunch);
DeltaPunch = LocalPlayer()->Punch();
SetViewAngles_h(Angle);
}
Perfect no-visual recoil. Quite possibly the easiest route.
Sorry for digging up that old thread but can somebody tell me what "SetViewAngles_h" is?
deadnesser
04-16-2010, 09:45 PM
Sorry for digging up that old thread but can somebody tell me what "SetViewAngles_h" is?
SetViewAngles_h(ook)
Punica
04-17-2010, 03:33 AM
May I ask how he defines it ?
kolbybrooks
04-17-2010, 05:44 AM
typedef void (_stdcall *SetViewAngles_t)(QAngle &Angle);
SetViewAngles_t SetViewAngles_h;
Really that easy.. Just hook Engine->SetViewAngles.
alg0r1thm
04-17-2010, 07:14 AM
just use wav's old method: InPrediction
Punica
04-19-2010, 02:35 PM
I found wavs method in epic v1 source code only. Is it somewhere else here ? And is it still undetected ?
But for now kolbybrooks´ method looks way easier for me.
lev1ath4n
04-19-2010, 04:56 PM
using Push3DView works, too :o
InPrediction requires a return address, but the flipside is you can eliminate view shaking and other nasty things by returning true. Don't know why visual norecoil is some magic dust or something... Seriously, just do it and shut up about it.
Powered by vBulletin® Copyright © 2013 vBulletin Solutions, Inc. All rights reserved.