Official site anti-cheat Ultra Core Protector

Home Download F.A.Q. Addons Monitor Forum Support Advertise English version site UCP Anti-Cheat    Russian version site UCP Anti-Cheat
Ultra Core Protector - is the client-server anti-cheat freeware, for server protection from unscrupulous players.

Abilities Supported games  
Half-Life
Condition Zero
Counter-Strike 1.6
Day of Defeat
Adrenaline Gamer
Team Fortress Classic
Counter-Strike Source
MU Online
Ragnarok Online
Half-Life 2 Deathmatch
Adrenaline Gamer 2
Team Fortress 2
Crappy, but working way to detect lby breakers (no animations used)

note: im garbage at explaining things so like yeah

This might be useless to some people, and very useful to others, who knows. (it was useful for me when i figured out how to do it?)

So, most of you have probably seen the recent wave of “last moving lby” resolvers, which work against some cheats, dont work against some others. However there is a bit more you can do with this “last moving lby”.

short explanation:

you can get the delta between their first standing lby update & their last lby when lby = real to detect if a player has broken lby and at what delta it was broken.

long explanation:

Using a players last moving lby, or “last angle when lby was real angle”, you are able to detect when a player breaks their lby at most deltas.

First, log lby whenever you know lby is at their real head (moving and other times i will talk about later).

Then, for the first 2 seconds after movement has completely stopped (standing still), you wait for an lby update to occur. (you can log all lbys before this update occurs also as they havent broken yet since lby hasnt updated since moving)
The reason we wait 2 seconds is that most lby breakers will break .22 seconds after movement, however some break like 1.32 seconds after or something (1.1 + .22?)

If an lby update happens, dont log this lby, instead check the delta from last logged lby and the updated lby. You can then check if this delta is greater than a specific number (i use 60 as almost all people who break, use delta > 60). If it is greater than that number, they probably are breaking lby, and if it is not, they are not, or they break delta is so little you can hit it by doing lby +-35. If they broke lby, you can log their delta and use it for later resolving. (lby + logged break delta)

This isnt perfect, etc on people who afk / stand still all round, a get-around for this would be to store the servertime when you last logged that players lby. If its greater than 40 (they havent moved / not broken lby for 40 seconds) then do some bruteforce or something.

Since im bad at explaining, heres how the code for this should look
(im typing this all off the top of my head bc not on pc with vs rn)

if(lby updated & not moving & lastresolvetime[entity index] less than 2 seconds ago) {
//you need to do some actual angle math because -160 - 135 wont give you the delta you want (65 in this case, however that would give you -295)
if(delta from storedlby and current lby > 60) {
lby broken = true;
logdelta[entity index] = currentlby - storedlby;
} else {
lby broken = false;
}
}
if(entity moving & not fakewalk) {
eyeangles.y = lby;
storedlby[entity index] = entity->lby;
lastresolvetime[entity index] = servertime;
} else {
if(servertime - lastresolvetime[entity index] < 40) { if(lby broken) { eyeangle.y = logdelta[entity index]; } else { eyeangle.y = lby; lastresolvetime[entity index] = servertime; storedlby[entity index] = entity->lby;
}
} else {
//your preferred bruteforce method here
}
}

hopefully someone will find this as useful as i did and i didnt just waste my time (i spent like 20 minutes trying to write an explanation that i didnt feel was horrible)


 



Home | Download | F.A.Q. | Addons | Forum | Banners | Sitemap | Directory | Support
Copyright © 2008-2015 UCP. All rights reserved. Privacy Policy. Siter.