Raised This Month: $ Target: $400
 0% 

[BHOP-ANTI-CHEAT] Strafe Hack/Bot..need help


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
zipcore
Veteran Member
Join Date: Mar 2010
Location: m_flZipcore
Old 11-28-2013 , 11:19   [BHOP-ANTI-CHEAT] Strafe Hack/Bot..need help
Reply With Quote #1

.


THREAD MOVED: [CSS/CSGO] Anti Strafe Hack



.
__________________

Last edited by zipcore; 12-03-2013 at 10:01.
zipcore is offline
TnTSCS
AlliedModders Donor
Join Date: Oct 2010
Location: Undisclosed...
Old 11-28-2013 , 13:43   Re: Anti Strafe Hack/Bot
Reply With Quote #2

strafe hack is where the player presses a strafe key repeatedly (or uses software to simulate multiple presses) while running forward and that makes them run a tad faster?
__________________
View my Plugins | Donate
TnTSCS is offline
Glite
Senior Member
Join Date: Sep 2011
Location: Ukraine
Old 11-28-2013 , 15:07   Re: Anti Strafe Hack/Bot
Reply With Quote #3

No. The one's which make strafes for you while longjumping/bhoping.
Glite is offline
zipcore
Veteran Member
Join Date: Mar 2010
Location: m_flZipcore
Old 11-28-2013 , 15:18   Re: Anti Strafe Hack/Bot
Reply With Quote #4

This is my current status, based on this plugin: http://forums.alliedmods.net/showthread.php?t=229785

PHP Code:
public Action:OnPlayerRunCmd(client, &buttons, &impulseFloat:vel[3], Float:angles[3], &weapon)
{
    new 
bool:ongrund bool:(GetEntityFlags(client) & FL_ONGROUND);
    
    if(!
g_PlayerStates[client][bOn])
    {
        
GetClientAbsOrigin(clientvLastOrigin[client]);
        
GetClientAbsAngles(clientvLastAngles[client]);
        
GetEntPropVector(clientProp_Data"m_vecVelocity"vLastVelocity[client]);
        return;
    }
    
    if(
g_PlayerStates[client][nStrafes] >= MAX_STRAFES)
    {
        
GetClientAbsOrigin(clientvLastOrigin[client]);
        
GetClientAbsAngles(clientvLastAngles[client]);
        
GetEntPropVector(clientProp_Data"m_vecVelocity"vLastVelocity[client]);
        return;
    }
    
    new 
Float:time GetGameTime();
    new 
Float:vAngles[3];
    
    
vAngles[1] = angles[1];
    
    
vAngles[1] += 360;
    
    new 
bool:angle_gain;
    
//Angle turned direction?
    
if (vLastAngles[client][1] < angles[1])
    {
        
angle_gain true;
    }
    else
    {
        
angle_gain false;
    }
    
    if (
g_PlayerStates[client][bStrafeAngleGain][g_PlayerStates[client][nStrafes]] != angle_gain)
    {
        
g_PlayerStates[client][bStrafeAngleGain][g_PlayerStates[client][nStrafes]] = angle_gain;
        
g_PlayerStates[client][fStrafeTimeAngleTurn][g_PlayerStates[client][nStrafes]] = time;
    }
    
    new 
nButtonCount;
    if(
buttons IN_MOVELEFT)
        
nButtonCount++;
    if(
buttons IN_MOVERIGHT)
        
nButtonCount++;
    if(
buttons IN_FORWARD)
        
nButtonCount++;
    if(
buttons IN_BACK)
        
nButtonCount++;
    
    new 
bool:newstrafe;
    
    if(
nButtonCount == 1)
    {
        
//new strafe?
        
if(g_PlayerStates[client][nStrafeDir] != && buttons IN_MOVELEFT)
        {
            
g_PlayerStates[client][nStrafeDir] = 1;
            
newstrafe true;
        }
        else if(
g_PlayerStates[client][nStrafeDir] != && buttons IN_MOVERIGHT)
        {
            
g_PlayerStates[client][nStrafeDir] = 2;
            
newstrafe true;
        }
        else if(
g_PlayerStates[client][nStrafeDir] != && buttons IN_FORWARD)
        {
            
g_PlayerStates[client][nStrafeDir] = 3;
            
newstrafe true;
        }
        else if(
g_PlayerStates[client][nStrafeDir] != && buttons IN_BACK)
        {
            
g_PlayerStates[client][nStrafeDir] = 4;
            
newstrafe true;
        }
        
        
//still same strafe?
        
else if(g_PlayerStates[client][nStrafeDir] == && buttons IN_MOVELEFT)
        {
            
g_PlayerStates[client][fStrafeTimeLastSync][g_PlayerStates[client][nStrafes]] = time;
        }
        else if(
g_PlayerStates[client][nStrafeDir] == && buttons IN_MOVERIGHT)
        {
            
g_PlayerStates[client][fStrafeTimeLastSync][g_PlayerStates[client][nStrafes]] = time;
        }
        else if(
g_PlayerStates[client][nStrafeDir] == && buttons IN_FORWARD)
        {
            
g_PlayerStates[client][fStrafeTimeLastSync][g_PlayerStates[client][nStrafes]] = time;
        }
        else if(
g_PlayerStates[client][nStrafeDir] == && buttons IN_BACK)
        {
            
g_PlayerStates[client][fStrafeTimeLastSync][g_PlayerStates[client][nStrafes]] = time;
        }
    }
    
    if(
newstrafe)
    {
        
g_PlayerStates[client][nStrafes]++;
        
g_PlayerStates[client][fStrafeTimeStart][g_PlayerStates[client][nStrafes]] = time;
        
        
//get delay between angle turned and key pressed for a new strafe
        
if(g_PlayerStates[client][nStrafes])
        {
            new 
Float:strafe_delay;
            
strafe_delay time-g_PlayerStates[client][fStrafeTimeLastSync][g_PlayerStates[client][nStrafes]-1];
            
            
g_PlayerStates[client][fStrafeDelay][g_PlayerStates[client][nStrafes]] = strafe_delay;
            
//PrintToChatAll("START-LASTSYNC: %.2f", strafe_delay*100);
            //PrintCenterText(client, "%.2f", strafe_delay*100);
        
}
    }
    
    if(
g_PlayerStates[client][nStrafes] > 0)
    {
        new 
Float:fVelDelta;
        
fVelDelta GetSpeed(client) - GetVSpeed(vLastVelocity[client]);
    
        if(!
ongrund)
        {
            if(
GetSpeed(client) > 275.0)
            {
                if(
fVelDelta 3.0)
                {
                    if(!
g_PlayerStates[client][bBoosted][g_PlayerStates[client][nStrafes]])
                        
g_PlayerStates[client][nStrafesBoosted]++;
                    
                    
g_PlayerStates[client][bBoosted][g_PlayerStates[client][nStrafes]] = true;
                }
            }
        }
    }
    
    
GetClientAbsOrigin(clientvLastOrigin[client]);
    
GetClientAbsAngles(clientvLastAngles[client]);
    
GetEntPropVector(clientProp_Data"m_vecVelocity"vLastVelocity[client]);
}

public 
OnClientStartTouchZoneType(clientMapZoneType:type)
{
    if (
type != ZtEnd && type != ZtBonusEnd)
        return;
    
    
g_PlayerStates[client][bOn] = false;
    
    new 
nPerfectnVeryGoodnGoodnNormalnFailnPre;
    
    for(new 
1g_PlayerStates[client][nStrafes]; i++)
    {
        if(
g_PlayerStates[client][bBoosted][i])
            continue;
        
        
//Pre pressed
        
if(g_PlayerStates[client][fStrafeDelay][i] < 0)
        {
            
nPre++;
            continue;
        }
        
        
//Failed
        
if(g_PlayerStates[client][fStrafeDelay][i] > 0.1)
        {
            
nFail++;
            continue;
        }
        
        
//Perfect
        
if(g_PlayerStates[client][fStrafeDelay][i] < 0.006)
        {
            
nPerfect++;
            continue;
        }
        
        
//Very Good
        
if(g_PlayerStates[client][fStrafeDelay][i] < 0.011)
        {
            
nVeryGood++;
            continue;
        }
        
        
//Good
        
if(g_PlayerStates[client][fStrafeDelay][i] < 0.021)
        {
            
nGood++;
            continue;
        }
        
        
//Bad
        
nNormal++;
    }
    
    if((
float(nPerfect)/float(g_PlayerStates[client][nStrafes]))*100 10)
        return;
    
    
Timer_LogInfo("###########################################################");
    
    
Timer_LogInfo("%N Strafes: %d, Perfect: %d, VeryGood: %d, Good: %d, Boosted: %d, Normal: %d, Fail: %d, Pre: %d"client,
        
g_PlayerStates[client][nStrafes], nPerfectnVeryGoodnGoodg_PlayerStates[client][nStrafesBoosted], nNormalnFailnPre);
        
    
Timer_LogInfo("%N STATS: Perfect: %.2f, VeryGood: %.2f, Good: %.2f, Boosted: %.2f, Normal: %.2f, Fail: %.2f, Pre: %.2f"client,
        (
float(nPerfect)/float(g_PlayerStates[client][nStrafes]))*100
        (
float(nVeryGood)/float(g_PlayerStates[client][nStrafes]))*100
        (
float(nGood)/float(g_PlayerStates[client][nStrafes]))*100
        (
float(g_PlayerStates[client][nStrafesBoosted])/float(g_PlayerStates[client][nStrafes]))*100
        (
float(nNormal)/float(g_PlayerStates[client][nStrafes]))*100
        (
float(nFail)/float(g_PlayerStates[client][nStrafes]))*100
        (
float(nPre)/float(g_PlayerStates[client][nStrafes]))*100);
        
    
Timer_LogInfo("###########################################################");
}

public 
OnClientEndTouchZoneType(clientMapZoneType:type)
{
    if (
type != ZtStart && type != ZtBonusStart)
        return;
    
    
g_PlayerStates[client][bOn] = true;
    
    
// Reset stuff
    
g_PlayerStates[client][nStrafeDir] = 0;
    
g_PlayerStates[client][nStrafes] = 0;
    
g_PlayerStates[client][nStrafesBoosted] = 0;
    
    new 
Float:time GetGameTime();
    
    for(new 
0MAX_STRAFESi++)
    {
        
g_PlayerStates[client][bBoosted][i] = false;
        
        
g_PlayerStates[client][fStrafeTimeLastSync][i] = time;
        
g_PlayerStates[client][fStrafeTimeAngleTurn][i] = time;
        
g_PlayerStates[client][fStrafeTimeStart][i] = time;
        
g_PlayerStates[client][bStrafeAngleGain][i] = false;
        
g_PlayerStates[client][fStrafeDelay][i] = 0.0;
    }
}

Float:GetSpeed(client)
{
    new 
Float:vVelocity[3];
    
GetEntPropVector(clientProp_Data"m_vecVelocity"vVelocity);
    
vVelocity[2] = 0.0;
    
    return 
GetVectorLength(vVelocity); 
}

Float:GetVSpeed(Float:v[3])
{
    new 
Float:vVelocity[3];
    
vVelocity v;
    
vVelocity[2] = 0.0;
    
    return 
GetVectorLength(vVelocity);

And an attachment with bot mimic records with and without strafehack, to have facts to work with

WARNING: UPDATE SOURCECODE IF YOU ARE RUNNING SMAC EYE-ANGLES OR ALL PLAYERS GET BANNED!!!
__________________

Last edited by zipcore; 12-04-2013 at 10:57.
zipcore is offline
-Absolute-
Member
Join Date: Mar 2010
Old 11-28-2013 , 16:31   Re: Anti Strafe Hack/Bot
Reply With Quote #5

Maybe you wanna check how many ticks are between moving the mouse and pressing the button (sync). If it's always like 1-2 ticks then that is not humanly possible.
__________________
-Absolute- is offline
Glite
Senior Member
Join Date: Sep 2011
Location: Ukraine
Old 11-28-2013 , 17:00   Re: Anti Strafe Hack/Bot
Reply With Quote #6

It's the thing which he is checking.
Glite is offline
zipcore
Veteran Member
Join Date: Mar 2010
Location: m_flZipcore
Old 11-28-2013 , 17:05   Re: Anti Strafe Hack/Bot
Reply With Quote #7

Quote:
Originally Posted by -Absolute- View Post
Maybe you wanna check how many ticks are between moving the mouse and pressing the button (sync). If it's always like 1-2 ticks then that is not humanly possible.
does my code something else?
__________________

Last edited by zipcore; 11-28-2013 at 17:05.
zipcore is offline
Bimbo1
Senior Member
Join Date: Jan 2010
Location: brazil
Old 11-28-2013 , 23:33   Re: [BHOP-ANTI-CHEAT] Strafe Hack/Bot..need help
Reply With Quote #8

i didn't get it. please, be more specific about strafe hacks ans bots. i don't know either of them. what do they do?
__________________
sie sind das essen und wir sind die jäger!
Bimbo1 is offline
zipcore
Veteran Member
Join Date: Mar 2010
Location: m_flZipcore
Old 11-29-2013 , 07:10   Re: [BHOP-ANTI-CHEAT] Strafe Hack/Bot..need help
Reply With Quote #9

Quote:
Originally Posted by Bimbo1 View Post
i didn't get it. please, be more specific about strafe hacks ans bots. i don't know either of them. what do they do?
here is a simple strafebot for example: http://pastebin.com/WgtSQgvF
__________________

Last edited by zipcore; 11-29-2013 at 07:15.
zipcore is offline
shavit
AlliedModders Donor
Join Date: Dec 2011
Location: Israel
Old 11-29-2013 , 08:21   Re: [BHOP-ANTI-CHEAT] Strafe Hack/Bot..need help
Reply With Quote #10

Didn't you make the LJ stats in AKB and bhop.it?

A good strafe hack gets you 95%+ sync in the LJ stats that's in bhop.it or AKB bhop server on its strafes. Check the sync of the strafes like in that LJ stats, sync shouldn't be more than 90% for all the strafes, though average can be more than 95%. (check that, non cheated lj https://www.youtube.com/watch?v=FMVCn8W1Seg and I get many strafes that are 100% or 90%+)
If you need a long jumper to test the anti strafe hack add me to Steam, I'll help you.
__________________
retired
shavit is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 07:09.


Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Theme made by Freecode