
Стаж: 14 лет
Сообщений: 1012
Благодарностей: 432
Полезность: 835
|
Цитата(Mistrick94 @ 31.12.2013, 2:22)  Если ложных на данный момент нет, то нужно детект чита тестить. Код:
#include <amxmodx> #include <fakemeta>
#define PLUGIN "Hack Detector" #define VERSION "0.5" #define AUTHOR "Mistrick"
#pragma semicolon 1
new g_iFPS[33], g_iMsec[33], g_iWarnSlow[33], g_iWarnSpeed[33], g_iMaxPlayers; new Float:g_fWarnSlowTime[33], Float:g_fWarnSpeedTime[33], Float:g_fOrigin[33][3]; new g_iWarnMaxSlow, g_iWarnMaxSpeed;
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); register_cvar("hack_slowwarn", "5"); register_cvar("hack_speedwarn", "5"); register_forward(FM_CmdStart, "FM_CmdStart_Pre", 0); register_forward(FM_PlayerPreThink, "FM_PlayerPreThink_Pre", 0); set_task(1.0, "CheckFps", 967854, _, _, "b"); g_iMaxPlayers = get_maxplayers(); g_iWarnMaxSlow = get_cvar_num("hack_slowwarn"); g_iWarnMaxSpeed = get_cvar_num("hack_speedwarn"); } public FM_PlayerPreThink_Pre(id) { if(!is_user_alive(id)) return FMRES_IGNORED; g_iFPS[id] += 1; return FMRES_IGNORED; } public FM_CmdStart_Pre(id, uc_handle, seed) { if(!is_user_alive(id)) return FMRES_IGNORED;
g_iMsec[id] = get_uc(uc_handle, UC_Msec); return FMRES_IGNORED; } public CheckFps() { static id, iMsecFPS, offset, offset2, Float:fTime, Float:fOrigin[3]; fTime = get_gametime(); for(id = 1; id <= g_iMaxPlayers; id++) { if(!is_user_alive(id)) continue; pev(id, pev_origin, fOrigin); if(equal_array(fOrigin, g_fOrigin[id])) continue; iMsecFPS = floatround(1000.0/g_iMsec[id]);
//console_print(0, "id:%d, FPS: %d, Msec: %d => FPS: %d,", id, g_iFPS[id], g_iMsec[id], iMsecFPS); switch(iMsecFPS) { case 1000: { offset = 350; offset2 = 350; } case 500: { offset = 170; offset2 = 200; } case 333: { offset = 70; offset2 = 150; } case 250: { offset = 40; offset2 = 70; } case 200, 167: { offset = 35; offset2 = 40; } case 143, 125: { offset = 20; offset2 = 25; } case 100, 71, 67, 63, 59, 48, 45, 43: { offset = 10; offset2 = 15; } default: { offset = 10; offset2 = 10; } }
if(g_iFPS[id] + offset < iMsecFPS) { //client_print(0, print_chat, "[AMXX] SlowHack warn(id is %d)", id); if(g_iWarnSlow[id] && fTime - g_fWarnSlowTime[id] >= 5.0) { g_iWarnSlow[id] = 0; } g_iWarnSlow[id]++; g_fWarnSlowTime[id] = fTime; } if(g_iFPS[id] > iMsecFPS + offset2) { //client_print(0, print_chat, "[AMXX] SpeedHack warn(id is %d)", id); if(g_iWarnSpeed[id] && fTime - g_fWarnSpeedTime[id] >= 5.0) { g_iWarnSpeed[id] = 0; } g_iWarnSpeed[id]++; g_fWarnSpeedTime[id] = fTime; } if(g_iWarnSlow[id] >= g_iWarnMaxSlow) { g_iWarnSlow[id] = 0; Punish(id, "Type 1"); } if(g_iWarnSpeed[id] >= g_iWarnMaxSpeed) { g_iWarnSpeed[id] = 0; Punish(id, "Type 2"); } g_iFPS[id] = 0; g_fOrigin[id][0] = fOrigin[0]; g_fOrigin[id][1] = fOrigin[1]; g_fOrigin[id][2] = fOrigin[2]; } } public Punish(id, type[]) { new szName[32]; get_user_name(id, szName, charsmax(szName)); client_print(0, print_chat, "[AMXX] %s using hack[%s]", szName, type); } stock equal_array(Float:a[3], Float:b[3]) { if(floatabs(a[0] - b[0]) < 0.000001 && floatabs(a[1] - b[1]) < 0.000001 && floatabs(a[2] - b[2]) < 0.000001) return 1; return 0; } пока без чита. версия плагина 0.5, кс 6153. [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SlowHack warn(id is 1) id:1, FPS: 53, Msec: 10 => FPS: 100, id:1, FPS: 562, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 194, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 384, Msec: 10 => FPS: 100, id:1, FPS: 93, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 1136, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 193, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 85, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 193, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 86, Msec: 10 => FPS: 100, id:1, FPS: 288, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 192, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 86, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 88, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 87, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 11 => FPS: 91, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 86, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 1841, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 85, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, попозже с читами потестирую. upd: с rHack'ом потестил на пиратке 4554. варнинги спидхака вылезали сразу как только скорость модельки начанала превышать 250 юнитов, варнинги слоухака сразу как только я его активировал. [AMXX] SlowHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) [AMXX] SpeedHack warn(id is 1) [AMXX] SlowHack warn(id is 1) id:1, FPS: 27, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 98, Msec: 10 => FPS: 100, id:1, FPS: 98, Msec: 10 => FPS: 100, id:1, FPS: 99, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 86, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 98, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 361, Msec: 1 => FPS: 1000, id:1, FPS: 685, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 498, Msec: 1 => FPS: 1000, id:1, FPS: 615, Msec: 10 => FPS: 100, id:1, FPS: 87, Msec: 10 => FPS: 100, id:1, FPS: 512, Msec: 1 => FPS: 1000, id:1, FPS: 553, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 489, Msec: 1 => FPS: 1000, id:1, FPS: 494, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 100, Msec: 10 => FPS: 100, id:1, FPS: 100, Msec: 10 => FPS: 100, id:1, FPS: 111, Msec: 1 => FPS: 1000, id:1, FPS: 640, Msec: 2 => FPS: 500, id:1, FPS: 735, Msec: 1 => FPS: 1000, id:1, FPS: 733, Msec: 0 => FPS: -1073741824, id:1, FPS: 719, Msec: 1 => FPS: 1000, id:1, FPS: 439, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 91, Msec: 10 => FPS: 100, id:1, FPS: 104, Msec: 10 => FPS: 100, id:1, FPS: 102, Msec: 10 => FPS: 100, id:1, FPS: 605, Msec: 1 => FPS: 1000, id:1, FPS: 751, Msec: 1 => FPS: 1000, id:1, FPS: 551, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 102, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 99, Msec: 10 => FPS: 100, id:1, FPS: 528, Msec: 1 => FPS: 1000, id:1, FPS: 744, Msec: 1 => FPS: 1000, id:1, FPS: 741, Msec: 1 => FPS: 1000, id:1, FPS: 720, Msec: 1 => FPS: 1000, id:1, FPS: 352, Msec: 10 => FPS: 100, id:1, FPS: 94, Msec: 0 => FPS: -1073741824, id:1, FPS: 119, Msec: 1 => FPS: 1000, id:1, FPS: 698, Msec: 1 => FPS: 1000, id:1, FPS: 618, Msec: 2 => FPS: 500, id:1, FPS: 681, Msec: 1 => FPS: 1000, id:1, FPS: 689, Msec: 1 => FPS: 1000, id:1, FPS: 165, Msec: 10 => FPS: 100, id:1, FPS: 98, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 85, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 99, Msec: 10 => FPS: 100, id:1, FPS: 96, Msec: 10 => FPS: 100, id:1, FPS: 97, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 496, Msec: 10 => FPS: 100, id:1, FPS: 95, Msec: 10 => FPS: 100, id:1, FPS: 98, Msec: 10 => FPS: 100, id:1, FPS: 98, Msec: 10 => FPS: 100, id:1, FPS: 1317, Msec: 22 => FPS: 45, // тут я окошко свернул id:1, FPS: 36, Msec: 23 => FPS: 43, id:1, FPS: 2663, Msec: 23 => FPS: 43, id:1, FPS: 41, Msec: 22 => FPS: 45, id:1, FPS: 2667, Msec: 23 => FPS: 43, id:1, FPS: 40, Msec: 24 => FPS: 42,
Отредактировал: shaid, - 31.12.2013, 6:02
|