Jump to content

et_ClientBinary


Geo

Recommended Posts

I have a script to record binaries in a seperate log (simpler and easier to use the data for me) but I was wondering whether I can specify between known cheat binaries and unknown client binaries. I was thinking perhaps disallowing players with a cheat binary whilst allowing players with an unknown binary to play (then speccing/checking them). 

 

I know there are the g_ClientBinaries parameters (1) but I assumed this is going to kick all unknown binaries, which I don't want as i'm certain some players use custom ET builds and I don't want to kick these without any valid reason.

 

 

 

Parameters:

1 Don't allow players with unknown client executables.
2 Log unknown executables to the g_cheatLog. Note, if the server does not allow unknown client binaries the log message will be different for message.
4 Report unknown executables to admin chat. Note, if the server does not allow unknown client binaries the players will not be reported to admin chat.

 

 

 

So, is it possible to differentiate between known and unknown binaries? Such as et_ClientBinary( clientNum, checksum, type) where type would be 'known' or 'unknown' for example. Then in my script I can specify actions for players with a cheat binary and ignore those without.

 

 

 

Called when a player connects with an unrecognized client executable. Also called if the player connects with a known cheat binary.

Syntax

et_ClientBinary( clientNum, checksum )
  • clientNum is the slot number of the player
  • checksum is the 32 character MD5 checksum of the client executable (ET.exe)
Edited by Arcane
Link to comment
Share on other sites

I wrote a simple script which logs both unknown/known binaries to a seperate log (I prefer seperating the data) and refuses connection to players using a specific cheat binary. This is currently done by specifying the binary in the script itself as I have only detected this one known binary on the server. If more are found, then these can be added to the script or alternatively a .cfg file for the binaries could be used.

 

Note: script is unfinished here, only posting code incase it looks like it could be of any use to other people

function et_ClientBinary( clientNum, checksum)
		local binary = checksum
		local name = et.gentity_get(clientNum, "pers.netname")
		local guid = et.gentity_get(clientNum, "sess.guid")
                                 local timestamp = os.date("%Y-%m-%d %H:%M:%S")
local logLine = timestamp.. "Player: "..name.." silEnT GUID: "..guid.." Binary: "..binary.."\n"
     
		et.G_LogPrint(logLine)
		fd, len = et.trap_FS_FOpenFile("checksums.log", et.FS_APPEND)
		et.trap_FS_Write(logLine, string.len(logLine), fd) 
		et.trap_FS_FCloseFile(fd)

	if binary == "30d13c5e1339f3c80ad89ab4525564ab" then
		et.trap_DropClient ( clientNum, "\^7You have been automatically banned for using a cheat program\n")
	else return end
	return 0
    end
end

I also disabled g_ClientBinaries parameter 2 as the point was to seperate the binaries into a dedicated file instead of adding to an existing one.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...