Open ghost opened 4 years ago
Bhop: To detect bhop you could look at how many occourances of the suspect being in the air. on the ground for 1 tick. and in the air again there are. And allow the user to set the threshhold for how many bhops in a row is allowed. If that's not possible you could look at their velocity and if it's above a certain margine for more than X amount of ticks then add an infraction.
I think bhop detector can be too stupid. Why? I can use mouse wheel and get the same result like if I was use cheats.
How can script (bot) understand was user use mouse wheel and didn't use cheats like "PRESS SPACE X TIMES"?
Triggerbot/Aimbot: How many ticks did the suspect have his crosshair on the enemy before doing damage. Again, Maybe not possible. The game client knows because dwInCrossID changes when you have your crosshair on somebody. A rage triggerbot would be 1. Also. A lot of aimbots that do the correction when you click mouse1 work that way. So it'd make a better aimbot detector.
Yea, I think this can be cool... if main developer do this. :thinking:
Wallhack: This one is tricky. And this might not be possible with the tools at hand, and I'm sorry for suggesting it if it is not. But Since this bot is really good at going after rage cases You could try seeing how many ticks the enemy was visible for before being shot. The cs:go client does know when people are out and can be proven by the fact that vischams exist.
Triggerbot/Aimbot: How many ticks did the suspect have his crosshair on the enemy before doing damage. Again, Maybe not possible. The game client knows because dwInCrossID changes when you have your crosshair on somebody. A rage triggerbot would be 1. Also. A lot of aimbots that do the correction when you click mouse1 work that way. So it'd make a better aimbot detector.
https://youtu.be/p-i5b5lAR3k?t=489 (it is in Russian but it needs to improved Aimbot/Triggerbot +Anti-Aim legit aa)
@BlackYuzia Here's a simple legit AA detection script I made just now using information from here .I'm sorry if there are mistakes in it. I do not know javascript so I just took a look at your other classes and guessed what I had to do. Thanks
The reasoning behind this working is that, During normal play. These values can only disagree by a maximum of 35 degrees.
module.exports = (demoFile, sid, data) => {
let ourPlayer = demoFile.players[tick.player];
if (typeof ourPlayer === "undefined") {
return;
}
if (ourPlayer.exists){
lbyDelta = ourPlayer.m_flLowerBodyYawTarget - ourPlayer.eyeAngles().y_normalized
if(lbyDelta < 35){
return;
}
data.curcasetempdata.other_infractions.push(demoFile.currentTick)
}
}
@Crazily good job :+1:
Did you create PR (Pull Request) or you didn't test this?
@Crazily you did a mistake :eyes:
tick is not defined. how I saw in other detectors you need use this: https://github.com/BeepIsla/CSGO-Overwatch-Bot/blob/master/detectors/aimbot.js#L5
@Crazily
hmm. I was a try to fix you mistake with ticks. But if I run your detect I get other errors.
For example: Player is not exist always.
I mean, ourPlayer.exist
always is undefined
.
module.exports = (demoFile, sid, data) => {
demoFile.on("tickend__", (tick) => {
let ourPlayer = demoFile.players[tick.player];
// console.log(ourPlayer);
if (typeof ourPlayer === "undefined") {
// console.log("user is undefined", ourPlayer);
return;
}
if (ourPlayer.exists){
console.log("user is exist"); // I didn't get this message.
// Player didn't exist and I didn't know did this attribute is really exist.
// ourPlayer.isAlive return true or false. You did some wrong?
lbyDelta = ourPlayer.m_flLowerBodyYawTarget - ourPlayer.eyeAngles().y_normalized
if(lbyDelta < 35){
console.log("AA is not detected:", lbyDelta);
return;
}
console.log("AA is detected:", lbyDelta);
data.curcasetempdata.other_infractions.push(demoFile.currentTick)
}
console.log("user didn't exist", ourPlayer.isExist);
});
}
UPD: I can't find "player.exist" on this site: https://saul.github.io/demofile/classes/_entities_player_.player.html
UPD2: Use ourPlayer.getProp("DT_CSPlayer", "m_flLowerBodyYawTarget")
, I think this is work. But I didn't know what a y_normalized
.
In docs I saw only ourPlayer.eyeAngles.pitch
and ourPlayer.eyeAngles.yaw
( I think this is x and y right?)
So, I was use yaw.... and pitch in next code:
( I also test what really right value) But I did false positive detections with next code:
module.exports = (demoFile, sid, data) => {
demoFile.on("tickend__", (tick) => {
let ourPlayer = demoFile.players[tick.player];
// console.log(ourPlayer);
if (typeof ourPlayer === "undefined") {
// console.log("user is undefined", ourPlayer);
return;
}
if (ourPlayer.isAlive){
const m_flLowerBodyYawTarget = ourPlayer.getProp("DT_CSPlayer", "m_flLowerBodyYawTarget");
// I test this two results. I didn't know what right.
const lbyDelta2 = m_flLowerBodyYawTarget - ourPlayer.eyeAngles.pitch;
const lbyDelta = m_flLowerBodyYawTarget - ourPlayer.eyeAngles.yaw;
console.log("1", lbyDelta);
console.log("2", lbyDelta2);
if(lbyDelta < 35){
console.log("AA is not detected:", lbyDelta);
return;
}
console.log("AA is detected:", lbyDelta);
data.curcasetempdata.AA_infractions.push(demoFile.currentTick)
}
// console.log("user didn't exist", ourPlayer.isExist);
});
}
But how I write upper, I get false results with lbyDelta
and lbyDelta2
What you mean by "How do I write upper?" It may be being false because of the opposite direction if that's what you're talking about. Try returning if lbydelta is <=35 or is greater than or equal to 325 assuming that it's measured using 360 degrees. I'll try to impliment it myself today and if I end up getting it working I'll send it in a pull request
Hmm. I done something... unstable.
This ... kinda work. But I don't sure by 100%. I only know what this guy is 100% use AA:
I test it on myself and get only 1-2 detects... (this is great) I saw one more guy who get greater like 10 detects:
But I didn't sure what he use anything...
@Crazily I will waiting your impliment of AA detector. Maybe you did better like me :eyes:
I also push all what I done to another branch.
MyBranch: https://github.com/BlackYuzia/CSGO-Overwatch-Bot/blob/aa_detector/detectors/AA.js
I get method for check from there:
I'd like to ask @BeepIsla or @BlackYuzia for help on this one. I've seemed to hit a wall with trying to detect Legit AA and not Rage AA I'm trying to create a variable for m_bFreezePeriod and can't figure out how to get it from the demoFile library you're using. The reasoning behind why like to be able to tell if it's freeze time is that the LBY Delta gained in freeze time will be more reliable since you cannot move. Rage AA's are automatically disabled by the cheat itself during freeze time but on Most cheats Legit AA is not.
Game events:
round_start
: Freeze time startround_freeeze_end
: Freeze time endNetwork property:
demoFile.gameRules.props.DT_CSGameRules.m_bFreezePeriod
Thank you @BeepIsla, You a real one ;D
Just as a note for both of you, I am currently in the process of finishing up the long awaited rewrite of this bot which I first talked about many months ago. I hope it will fix a few problems the bot had with demos from Perfect World and it should make adding new detectors more easy and the code will be a little less of a horrible mess. It may still take a little while to be ready though.
Just saying this now, I don't really think its worth it adding big new features right now but if you want you still can and then port it to the new version.
Thank you. And I hope the rewrite uses a more reliable method of detecting aimbot. The Rage AA detector that @BlackYuzia Made produced nearly no false positives when I tested it. But when I gave it a 30 second long demo of me anti-aiming it returned 500 positives. Seems like it'd make a welcome addition to the rewrite.
Maybe, its not a priority right now things can always be updated later, for now I just focus on making it work.
That's fair. Better to have a base that works and works the way you want it.
I have released version 2.0 - The mentioned above AntiAim detection is included.
https://streamable.com/xa1pei That person was legitimized by ow boost. The report was made recently but no aimbot was detected. what can i change to make aimbot detection more accurate?
another case that aimbot was not detected. wall was detected because I lowered the definition from 5 to 4. https://streamable.com/rguc6z
this script is a joke. the suspect was semi-rage, only attacked 1 explosive grenade while his partner passed. that's why he took griefing, he didn't take aimbot or wall. this script is manipulated to legitimize suspicious semi-ragers. https://streamable.com/65mz2z
Then don't use it or improve it. Feel free to contribute.
As you can see in #90 discussion about AntiAim detection being broken is already on going. The rest is extremely easily bypassed by stepping with an Aimbot rather than immediately fully snapping.
Cheats are customizable, basic detection like this will always be bypassable. Valve does not want you to use this either, people have had their account terminated before for using this.
AA Detectors, possible, has been fixed :thinking: @blackslive try again.
Redownload repo with script
About semi-rage. Aimbot detects can detect only rage aim. AA detects also only for rage cheater.
Legit or semi-rage shouldn't/cant' detect by this script.
We have only demo. In demo we have too low info.
Server anticheat has more info and functions. Client anticheat have more info and functions.
I think we can detect rcs
but this can have false-positive sometimes :thinking:
Valve does not want you to use this either, people have had their account terminated before for using this.
@BeepIsla how many accounts has been deleted by using this bot/script? :eyes:
I don't know, I only know of 3 I think a few years ago.
if you can add whether an account has prime or no ? to be moved to another category like prime no-prime report no-report it's hard but much better if you have time I tried
Hi. Firstly. I appreciate your project very much. It's very helpful and does a great job as is. I do however have a few suggestions.
Bhop: To detect bhop you could look at how many occourances of the suspect being in the air. on the ground for 1 tick. and in the air again there are. And allow the user to set the threshhold for how many bhops in a row is allowed. If that's not possible you could look at their velocity and if it's above a certain margine for more than X amount of ticks then add an infraction.
Wallhack: This one is tricky. And this might not be possible with the tools at hand, and I'm sorry for suggesting it if it is not. But Since this bot is really good at going after rage cases You could try seeing how many ticks the enemy was visible for before being shot. The cs:go client does know when people are out and can be proven by the fact that vischams exist.
Triggerbot/Aimbot: How many ticks did the suspect have his crosshair on the enemy before doing damage. Again, Maybe not possible. The game client knows because dwInCrossID changes when you have your crosshair on somebody. A rage triggerbot would be 1. Also. A lot of aimbots that do the correction when you click mouse1 work that way. So it'd make a better aimbot detector.
Edit:
Another idea for an aimbot detector. Most aimbots calculate a Vector3 to do the actual flicking for rage aim. And it basically equates to The Suspect flicking in a perfectly straight line to the suspect. So. When an enemy is killed by the suspect you could calculate a Vector 3 for each tick up to X ticks before the enemy died and see if the viewangles on those ticks could be plotted on the vector3 you calculated upto the tick where the enemy died.
Thank you for taking the time to read this :3