Is the Anti-Speedhack going to cause any problems with WCS? Or do you have the max speed convar ramped up enough to compensate for sometimes unusual speed differences. Maybe I'm just failing to realize how the plugin actually handles the situation.
Is the Anti-Speedhack going to cause any problems with WCS? Or do you have the max speed convar ramped up enough to compensate for sometimes unusual speed differences. Maybe I'm just failing to realize how the plugin actually handles the situation.
Make all your last demands for I will forsake you and I'll meet your eyes for the very first time, for the very last.
maynard <ibis>: they are awkward and last 2 damn long. I prefer thinner smaller ones
Like this:
---------- Post added at 05:03 PM ---------- Previous post was at 04:58 PM ----------Code:#pragma semicolon 1 /* SM Includes */ #include <sourcemod> #include <sdktools> #include <smac> #undef REQUIRE_PLUGIN #include <updater> /* Plugin Info */ public Plugin:myinfo = { name = "SMAC Anti-Speedhack", author = "GoD-Tony", description = "Prevents speedhack cheats from working", version = SMAC_VERSION, url = SMAC_URL }; /* Globals */ #define UPDATE_URL "http://godtony.mooo.com/smac/smac_speedhack.txt" new g_iTickCount[MAXPLAYERS+1]; new g_iTickRate; /* Plugin Functions */ public OnPluginStart() { // The server's tickrate * 1.5 as a buffer zone. g_iTickRate = RoundToCeil(1.0 / GetTickInterval() * 1.5); CreateTimer(1.0, Timer_ResetTicks, _, TIMER_REPEAT); // Updater. if (LibraryExists("updater")) { Updater_AddPlugin(UPDATE_URL); } } public OnLibraryAdded(const String:name[]) { if (StrEqual(name, "updater")) { Updater_AddPlugin(UPDATE_URL); } } public Action:Timer_ResetTicks(Handle:timer) { for (new i = 1; i <= MaxClients; i++) { g_iTickCount[i] = 0; } return Plugin_Continue; } public Action:OnPlayerRunCmd(client, &buttons, &impulse, Float:vel[3], Float:angles[3], &weapon) { if (++g_iTickCount[client] > g_iTickRate) { return Plugin_Handled; } return Plugin_Continue; }
As you can see it is comparing actual calculation ticks not any actual speeds. This is becuase speed hacks work by modifying client tick data to manipulate the prediction to cause the player to move faster. This is somewhat similar to how a very laggy player can skip around on a map a speedhacker takes advantage of this to exploit a way in the game engine to actually change their location at a fast rate without lagging.
Completely understand now.
Looks like a very nice addition so far.
Make all your last demands for I will forsake you and I'll meet your eyes for the very first time, for the very last.
maynard <ibis>: they are awkward and last 2 damn long. I prefer thinner smaller ones
This is the current KAC list: (i think)
Code://- Blocked Commands -// Note: True sets them to ban, false does not. SetTrieValue(g_hBlockedCmds, "ai_test_los", false); SetTrieValue(g_hBlockedCmds, "changelevel", true); SetTrieValue(g_hBlockedCmds, "cl_fullupdate", false); SetTrieValue(g_hBlockedCmds, "dbghist_addline", false); SetTrieValue(g_hBlockedCmds, "dbghist_dump", false); SetTrieValue(g_hBlockedCmds, "drawcross", false); SetTrieValue(g_hBlockedCmds, "drawline", false); SetTrieValue(g_hBlockedCmds, "dump_entity_sizes", false); SetTrieValue(g_hBlockedCmds, "dump_globals", false); SetTrieValue(g_hBlockedCmds, "dump_panels", false); SetTrieValue(g_hBlockedCmds, "dump_terrain", false); SetTrieValue(g_hBlockedCmds, "dumpcountedstrings", false); SetTrieValue(g_hBlockedCmds, "dumpentityfactories", false); SetTrieValue(g_hBlockedCmds, "dumpeventqueue", false); SetTrieValue(g_hBlockedCmds, "dumpgamestringtable", false); SetTrieValue(g_hBlockedCmds, "editdemo", false); SetTrieValue(g_hBlockedCmds, "endround", false); SetTrieValue(g_hBlockedCmds, "groundlist", false); SetTrieValue(g_hBlockedCmds, "listmodels", false); SetTrieValue(g_hBlockedCmds, "map_showspawnpoints", false); SetTrieValue(g_hBlockedCmds, "mem_dump", false); SetTrieValue(g_hBlockedCmds, "mp_dump_timers", false); SetTrieValue(g_hBlockedCmds, "npc_ammo_deplete", false); SetTrieValue(g_hBlockedCmds, "npc_heal", false); SetTrieValue(g_hBlockedCmds, "npc_speakall", false); SetTrieValue(g_hBlockedCmds, "npc_thinknow", false); SetTrieValue(g_hBlockedCmds, "physics_budget", false); SetTrieValue(g_hBlockedCmds, "physics_debug_entity", false); SetTrieValue(g_hBlockedCmds, "physics_highlight_active", false); SetTrieValue(g_hBlockedCmds, "physics_report_active", false); SetTrieValue(g_hBlockedCmds, "physics_select", false); SetTrieValue(g_hBlockedCmds, "q_sndrcn", true); SetTrieValue(g_hBlockedCmds, "report_entities", false); SetTrieValue(g_hBlockedCmds, "report_touchlinks", false); SetTrieValue(g_hBlockedCmds, "report_simthinklist", false); SetTrieValue(g_hBlockedCmds, "respawn_entities", false); SetTrieValue(g_hBlockedCmds, "rr_reloadresponsesystems", false); SetTrieValue(g_hBlockedCmds, "scene_flush", false); SetTrieValue(g_hBlockedCmds, "send_me_rcon", true); SetTrieValue(g_hBlockedCmds, "snd_digital_surround", false); SetTrieValue(g_hBlockedCmds, "snd_restart", false); SetTrieValue(g_hBlockedCmds, "soundlist", false); SetTrieValue(g_hBlockedCmds, "soundscape_flush", false); SetTrieValue(g_hBlockedCmds, "sv_benchmark_force_start", false); SetTrieValue(g_hBlockedCmds, "sv_findsoundname", false); SetTrieValue(g_hBlockedCmds, "sv_soundemitter_filecheck", false); SetTrieValue(g_hBlockedCmds, "sv_soundemitter_flush", false); SetTrieValue(g_hBlockedCmds, "sv_soundscape_printdebuginfo", false); SetTrieValue(g_hBlockedCmds, "wc_update_entity", false);
Make all your last demands for I will forsake you and I'll meet your eyes for the very first time, for the very last.
maynard <ibis>: they are awkward and last 2 damn long. I prefer thinner smaller ones
sv_consistency 1 will allow all custom models unless the files are huge, 2 will drop them off server, of course 0 disables check.
Lots of people use custom models here, I like to roll default =P
Some of these SMAC auto bans are default level, like r_drawdecals 1 (bushes, posters on walls, ect). I would hope SMAC would be forcing the option to 1 and not banning because of it, this removes lots of hiding spots if disabled. Would be nice to take the time and test on the server on a per convar basis when people have the time.
Last edited by Steamer; 07-14-2012 at 01:03 PM.
Make all your last demands for I will forsake you and I'll meet your eyes for the very first time, for the very last.
maynard <ibis>: they are awkward and last 2 damn long. I prefer thinner smaller ones
read what zero wrote BEFORE that list in his post
he said that the format of the following is:
<command> "value it SHOULD BE" (what happens if the value is NOT what it should be)....
so in oither words, sv_cheats should be 0 , if its NOT zero, it bans, same for r_drawothermodels, it should be 1, if not it bans...
now, zero, question bcos i have no fucking idea how this system works. I have a cfg file that made (thanks to steamr and spasm) that has predefined
sv_cheats 1,
voice_enable 0,
r_Drawothermodels 2,
sv_showimpact 2, (etc...)
i load this script every time i watch a wallhacker demo. problem is that , when i go back in the real server, my voice_enable is STILL 0.
so does that mean that if i join a server, my sv_cheats is gonna be 1, r_drawothermodels 2? and i might get banned for joining the server like that? does that constitute as "forcing a value from client side"? or is it smthn else? just wondering...