English VACheck - Check VAC Records icon

27 comments
04.12.17 02:50:49 pm
like 5 like it!
2 kb, 29 Downloads
Talented Doge
User
Offline Off
> Introduction
The addition of cs2d lua cmd reqhttp has made this easy thanks to user SQ, so I wrote this to help you in recognizing VAC banned players.

This simple lua script will request data from steam web page. If player has ever been VAC banned, they will not be able to participate in the game.(Can be set in settings)

This script also includes the function to identify the previously distinguished VAC banned players, so as to reduce the network usage of the server.

> Settings
Code:
1
2
3
4
5
logdir = "sys/lua/vaclog.txt"
vaclistdir = "sys/lua/vaclist.lua"
logusgn = true
allow_watch = false
kick_player = true

logdir
: USGN log directory
vaclistdir
: VAC recognized SteamID list directory
logusgn
: Log VAC banned players' USGN if they have it.
allow_play
: Allow VAC banned players to play?
kick_player
: Kick VAC banned players?

> Note
To ensure that VAC banned players do not evade by simply logging out of steam, I forced them to log in to steam in order to play. DO NOT REMOVE THIS LINE OF CODE OR THEY MAY EVADE THE CHECK.

This script has its limits that if a player is so dedicated to ruin the game, he may join with an entirely new account without VAC record. So manual moderation is always the best choice if possible.

> Updates
Added
kick_player
option, changed
allow_watch
to
allow_play
.

> Issues
Frequent requests seem to make steam ignore the request, looking for a work around.

> License
This work is released under the IMG:http://www.wtfpl.net/wp-content/uploads/2012/12/wtfpl-badge-3.png
imageimage
edited 11×, last 09.12.17 03:10:54 pm
ok This file has been reviewed and approved by SQ (04.12.17 03:48:07 pm)

Comments

27 comments
Goto Page
To the start Previous 1 2 Next To the start

Log in!

You need to log in to be able to write comments!Log in
07.12.17 04:49:36 pm
like I like it!
Up
SQ
Moderator
Offline Off
Player player is kicked... Just remove additional "player" and keep it [player name] has been kicked.
06.12.17 08:39:51 pm
like I like it!
Up
Nekomata
User
Offline Off
Good job! Regarding the issue, you may be hitting the rate limiting. It would be excellent if this hook returns HTTP status.
06.12.17 02:34:44 pm
Up
Talented Doge
User
Offline Off
Yes I understand what you say @user SQ, but I'm busy atm. Will do it later. It works now anyway.
06.12.17 12:57:08 am
like I like it!
Up
GermanFelipe123
User
Offline Off
05.12.17 03:20:37 pm
like I like it!
Up
SQ
Moderator
Offline Off
You should do something like this at least:

Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mystuff = {}

table.insert(mystuff,"a")

for key, value in pairs(mystuff) do
   print("value: "..value)
   table.remove(mystuff, key)
end

local count = 0
for k, v in pairs(mystuff) do
   count = count + 1
end

print("count: ".. count)
05.12.17 03:11:28 pm
Up
Yates
Reviewer
Offline Off
Simonas is talking about this I presume:

Code:
1
2
3
4
5
players = {1, 15}

for i = 1, #players do
    print(i)
end


Output:
Code:
1
2
1
2


NOT:
Code:
1
2
1
15
05.12.17 03:06:05 pm
like I like it!
Up
SQ
Moderator
Offline Off
@user Talented Doge: I see the flaw in the code, it's not how it should be done though.
rec list doesn't seem to be cleared up as well. It is just being added all the time.
05.12.17 12:30:14 pm
Up
Talented Doge
User
Offline Off
The ID I used is the exact same to the player's ID, I don't understand why that would not work though.

That is why I used req[i][1] to store player's ID. Because even the index of the table move up or whatever, the ID still remains the same.

The table now should look like this:
req = {{1, 1}, {2, 2}, {21, 3}}


Using for loop:
for i = 1, #req
This loops the content(tables) and find the matching special ID assigned by cs2d lua cmd reqhttp
Then the first data(player ID) is used to kick/warn whatever.
05.12.17 11:35:39 am
like I like it!
Up
SQ
Moderator
Offline Off
@user Talented Doge: You still does not understand that your script won't work if 2 players joins with id's 2 and 31 for example.

Change "#req" use into table.insert and foreach loop.
05.12.17 10:29:09 am
Up
Talented Doge
User
Offline Off
Now I added an option for server owners to choose whether to kick or just warn of the VAC record.

And yes you can always evade a ban by registering another account, IP and name. I am just trying my best to help keeping cheaters at bay for CS2D.
05.12.17 06:43:18 am
Up
VADemon
User
Offline Off
Also the script is indifferent to VAC Ban time.
Would you still regard someone with 2100 days old VAC Ban as a cheater? Calculate the years yourself.
Not to mention that you can 1) register another Steam Account 2) Register USGN as user Chingy implied.
05.12.17 05:56:09 am
Up
Chingy
User
Offline Off
@user Gaios: I do. People make mistakes, they're supposed to learn out of them. That's the reason also why a VAC ban doesn't affect every game.

The idea behind this is understandable. But if someone has no VAC on record, it won't stop them from cheating. Since you don't get sent to VACation in CS2D it's quite ineffective. Someone might also have a verified alternative account (which is a way to outplay this script).
04.12.17 07:35:22 pm
like I like it!
Up
SQ
Moderator
Offline Off
Change that
Code:
1
for i = 1, #req do


Into foreach and use table.add for requests.
04.12.17 04:53:54 pm
Up
Yates
Reviewer
Offline Off
Noo it's a .txt file uughh *dies inside*

.txt is slow, just convert it to a Lua table (string) then save it in a .lua file and
dofile()
it.

10/10
04.12.17 03:57:49 pm
Up
Talented Doge
User
Offline Off
Definitely , I am extremely lazy to go through a single text file and search for strings.

Edit: I tried my best while being lazy, adding the function of "already exists". Trim it for me if you would like it. I will appreciate that.
edited 1×, last 04.12.17 04:41:35 pm
04.12.17 03:52:57 pm
like I like it!
Up
Gaios
Security Supporter
Offline Off
Better to save it to variable array lol.
04.12.17 03:44:15 pm
Up
Talented Doge
User
Offline Off
I'm working on it. The "already checked" function won't be hard.
04.12.17 03:40:21 pm
Up
Yates
Reviewer
Offline Off
Would be cool if this saved the ID's in a file so you wouldn't have to send a request each time you want to check.
04.12.17 03:38:49 pm
like I like it!
Up
SQ
Moderator
Offline Off
Yeah, it's just that you are using "#req". I believe there are better ways of managing requests.
Code:
1
2
3
4
test = {}
test[0] = 1
test[2] = 3
print(#test)

This for example doesn't work.
04.12.17 03:34:00 pm
Up
Talented Doge
User
Offline Off
Because I cannot check for the players' ID with just the special ID.
To the start Previous 1 2 Next To the start