I am currently running a server for Counter Strike 1.6.
Some old school players have started reliving our glory days of playing competitive Counter Strike.
Since there are a lot of players, I feel there are some that are using cheats/bots and I want to stop them. Back then, we had sXe and that was enough but nowadays things have gotten more sophisticated.
I am not a coder nor do I claim to have an understanding however in my research I found that there is a CS1.6 competitive match from FastCup that uses GameGuard. I couldn't find a server version of it however, I found the below video claiming to have coded a plugin that will detect whether GameGuard client is running or not and will kick a player if they are not running it.
It's mostly in Hebrew so I cannot understand it but the code's there so I was hoping someone can look into this.
Video:
https://www.youtube.com/watch?v=tz8dk5Gsoxs
Code:
https://pastebin.com/7q1uHCt1
Code:
//FreeGameguard Plugin Version 1.2 By Doron Bachar
//Free Anti Cheat For Counter Strike 1.6 (Backdoor to Gameguard.ac FastCup eSport Anti Cheat)
//Video all about this plugin (Explanations and demonstrations): https://youtu.be/tz8dk5Gsoxs
//My Youtube Channel: https://www.youtube.com/c/dbachartechz
//Tested in 8.2.2022 work great
#include <amxmodx>
new Trie:g_tInfo
public plugin_init() {
g_tInfo=TrieCreate()
register_clcmd("+dscript", "duck")
}
public plugin_end() {
TrieDestroy(g_tInfo)
}
public client_putinserver(id) {
if(is_user_bot(id) || is_user_hltv(id)) return PLUGIN_CONTINUE
else {
TrieSetCell(g_tInfo, SteamId(id), 0)
set_task(3.0, "check", id)
}
return PLUGIN_CONTINUE
}
public client_disconnect(id) {
if(TrieKeyExists(g_tInfo, SteamId(id))) TrieDeleteKey(g_tInfo, SteamId(id))
}
public check(id) {
client_cmd(id, "alias")
client_cmd(id, "clear")
set_task(10.0, "process_result", id)
}
public client_command(id) {
if(!is_user_connected(id) || is_user_bot(id) || is_user_hltv(id)) return PLUGIN_CONTINUE
else {
new args[64]
read_argv(0, args, charsmax(args))
if(equal (args, "alias")) TrieSetCell(g_tInfo, SteamId(id), 1)
}
return PLUGIN_CONTINUE
}
public process_result(id) {
new result
TrieGetCell(g_tInfo, SteamId(id), result)
if(result==0) server_cmd("kick #%d Gameguard.ac", get_user_userid(id))
}
public duck(id) {
client_cmd(id, "+duck;wait;-duck")
}
stock SteamId(id) {
new steamId[22]
get_user_authid(id, steamId, charsmax(steamId))
return steamId
}
Looking forward to your assistance.