Русское сообщество по скриптингу

OpenGl Detector

Плагины для AMX Mod X, которые не удовлетворяют правилам оформления.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

OpenGl Detector

Сообщение RevCrew » 15 янв 2015, 22:21

Авторы: ReVKa
Версия: 1.4

Описание:
Плагин предназначен для отлова игроков с OpenGl
плагин обнаруживает 2 вида OpenGl, обычный и мультихак
Файлы opengl32.dll и opengl32_2.dll закинуть в папку cstrike/
Писать мне о том, что он не актуален что есть маздановский и тд не надо, возможно кому-нибудь понадобится бесплатный....

Код: Выделить всё
/* Plugin generated by AMXX-Studio */
 
#include <amxmodx>
 
#define PLUGIN "*Anti Illusion*: OpenGl32 Detect"
#define VERSION "1.4"
#define AUTHOR "ReVKa"
 
#define LOG_FILE "addons/amxmodx/logs/Opengls.log"
 
static bool
: contains[33] = false;
static bool: in_restart = false
 
static g_cvar
[5];
new OpenGl_File[][] = 
{
        "../cstrike/opengl32.dll",
        "../cstrike/opengl32_2.dll",
        "../opengl32.dll"
}
 
public plugin_precache
() 
{
        register_plugin(PLUGIN, VERSION, AUTHOR)
        
        g_cvar
[0] = register_cvar("ai_opengl_work","1")
        g_cvar[1] = register_cvar("ai_opengl_logs","1")
        g_cvar[2] = register_cvar("ai_opengl_logs_level","2")
        g_cvar[3] = register_cvar("ai_opengl_punish","kick #%uid% OpenGL_Hack;wait;addip 1440 %ip%;wait;writeip")
        g_cvar[4] = register_cvar("ai_opengl_hudmessage","1")
        //g_cvar[5] = register_cvar("ai_opengl_next_punish","addip 1440 %ip%;wait;writeip")
        //g_cvar[6] = register_cvar("ai_opengl_next_punish_time","15.0")
        
        server_cmd
("mp_consistency ^"1^"")
        server_cmd("exec addons/amxmodx/configs/opengl_config.cfg")
        
        if
(!get_pcvar_num(g_cvar[0]))
                return PLUGIN_HANDLED_MAIN;
        
        for
(new i = 2;i<sizeof( OpenGl_File );i++)
        {
                if(file_exists(OpenGl_File[i]))
                {
                        static sBuff[34]
                        md5_file(OpenGl_File[i],sBuff)
                        
                        static ip
[25]
                        get_user_ip(0,ip,24)
                        static Times[32]
                        get_time("%d.%m.%Y - %H:%M:%S",Times,31)
                        
                        static filesizes
;
                        filesizes= filesize(OpenGl_File[i])
                        static files
                        
                        for
(new j = 0;j<2;j++)
                        {
                                
                                files 
= filesize(OpenGl_File[j])
                                
                                if
(files == filesizes)
                                        log_amx("[*Ai* CheckFiles] File Size %s",files)
                                else
                                
{
                                        if(get_pcvar_num(g_cvar[2]) >1) PrintMessage(" File <%s> will be replace [File Replace %s]",OpenGl_File[i],OpenGl_File[j])
                        
                                        static error
[64]
                                        if(file_copy(OpenGl_File[j],OpenGl_File[i],error,63,true))
                                        {
                                                if(get_pcvar_num(g_cvar[2]) >1) PrintMessage("Success Copy Opengl File <%s>",OpenGl_File[j])
                                        }
                                        else
                                                if
(get_pcvar_num(g_cvar[2]) >1) PrintMessage(error)
                                        }
                                        
                                
}
                        
                        PrintMessage
(" ** File Checker is enabled on Server <%s> Date <%s>",ip,Times)
                        PrintMessage(" ** Main File <%s> exists MD5 <%s>",OpenGl_File[i],sBuff)
                        
                        force_unmodified
(force_exactfile, {0,0,0},{0,0,0}, OpenGl_File[i])
                }
                
                if
(!file_exists(OpenGl_File[i]) && file_exists(OpenGl_File[0]))
                {
                        if(get_pcvar_num(g_cvar[2]) >2) PrintMessage(" File <%s> not exists, search from file <%s>",OpenGl_File[i],OpenGl_File[0])
                        
                        static error
[64]
                        if(file_copy(OpenGl_File[0],OpenGl_File[i],error,63,true))
                        {
                                if(get_pcvar_num(g_cvar[2]) >1) PrintMessage("Success Copy Opengl File to Dir <%s>",OpenGl_File[i])
                                in_restart = true
                        
}
                        else
                                if
(get_pcvar_num(g_cvar[2]) >1) PrintMessage(error)
                                
                        
                
}
                else if(!file_exists(OpenGl_File[i]) && !file_exists(OpenGl_File[0]))
                {
                        if(get_pcvar_num(g_cvar[2]) >1) PrintMessage(" Warning! Main File <%s> and Reserve File <%s> not exists, PLUGIN is LOCK",OpenGl_File[i],OpenGl_File[0])
                        set_fail_state("Warning! Main File and Reserve File not exists, PLUGIN is LOCK(Check Logs)")
                }
        }
        
        return PLUGIN_CONTINUE
;
}
                
public PrintMessage
(const szMessage[], any:...)
{
        if(!get_pcvar_num(g_cvar[1]))
                return;
        static szMsg[256];
        vformat(szMsg, charsmax(szMsg), szMessage, 2);
        
        log_to_file
(LOG_FILE,"[*Ai* CheckFiles] %s",szMsg)
        server_print("[*Ai* CheckFiles] %s",szMsg)
        
        return
;
}
public plugin_init()
{
        
        if
(in_restart)
        {
                if(get_pcvar_num(g_cvar[2]) >2) PrintMessage(" Need To Restart Server,5 seconds to restart")
                set_task(5.0,"RestartFunction")
        }
}
public RestartFunction()
{
        PrintMessage("Restart Now in 0 seconds")
        server_cmd("restart")
}
public inconsistent_file(id, const filename[], reason[64])
{
 
        for
(new i = 1;i<sizeof( OpenGl_File );i++)
        {
                static file[32]
                copy(file,31,OpenGl_File[i])
                replace_all(file,31,"../", "")
                if(containi(filename,file))
                {
                        static name[25]
                        get_user_name(id,name,24)
                        static authid[25]
                        get_user_authid(id,authid,24)
                        if(get_pcvar_num(g_cvar[2]) >1) PrintMessage(" Player %s <%s> not has a file %s",name,authid,filename)
                        contains[id] = true;    
                        
                        return PLUGIN_HANDLED
;
                }
        }
        
        return PLUGIN_CONTINUE
;
}
public client_putinserver(id)
{
        if ((is_user_hltv(id)) || (is_user_bot(id)))
        return PLUGIN_CONTINUE
        
        set_task
(random_float(5.0,10.0), "check_file", id+33)
        return PLUGIN_CONTINUE
}
public client_connect(id)
        contains[id] = false;
        
public check_file
(id)
{
        id -=33
        new s_Name
[32],s_IP[32]
        get_user_ip(id, s_IP, 31, 1)
        get_user_name(id, s_Name, sizeof(s_Name)-1)
 
        if
(!contains[id])
        {  
                static g_cvars
[25]
                get_pcvar_string(g_cvar[3],g_cvars,24)
                
                static uid
[5]
                num_to_str(get_user_userid(id),uid,4)
                
                replace_all
(g_cvars,24,"%ip%", s_IP)
                replace_all(g_cvars,24,"%uid%", uid)
                
                for
(new j = 0;j<get_maxplayers();j++)
                {
                        if(j!=id)
                        {
                                if(get_pcvar_num(g_cvar[4]))
                                {
                                        set_hudmessage(200,100, 50, 0.05, 0.30, 0, 0.5, 6.0, 1.0,1.0,3)
                                        show_hudmessage(j,"========================^nOpenGL32 Р”етектор^nИгрок: <%s>^nIP РђРґСЂРµСЃ <%s>^nПричина <OpenGL32 Detect>^n========================", s_Name,s_IP)
                                }
                                
                                
//ColorPrint(j," ^4%s ^1(^3%s^1) РёСЃРїРѕР»СЊР·СѓРµС‚ ^4 OpenGL32 Hack^1, РѕРЅ ^3был РЅР°РєР°Р·Р°РЅ^1 Р·Р° СЌС‚Рѕ",s_Name,s_IP)
                        }
                }
                server_print("[SERVER] %s",g_cvars)     
                server_cmd
(g_cvars)
                        
                PrintMessage
(" OpenGL File detected on Player %s <%s>",s_Name,s_IP)
        }
        return PLUGIN_CONTINUE
         
}
stock bool:file_copy(SOURCE[], TARGET[], error[], const ERRORLEN, const bool:REPLACE_TARGET = false) {
        if (!file_exists(SOURCE)) {
                format(error, ERRORLEN, "File copy error: Source ^"%s^" doesn't exist!", SOURCE)
                return false
        
}
        if (!REPLACE_TARGET && file_exists(TARGET)) {
                format(error, ERRORLEN, "File copy error: Target ^"%s^" exists!", TARGET)
                return false
        
}
       
        new source 
= fopen(SOURCE, "rb")
        if (!source) {
                format(error, ERRORLEN, "File copy error: Opening source ^"%s^" failed!", SOURCE)
                return false
        
}
       
        new target 
= fopen(TARGET, "wb")
        if (!target) {
                format(error, ERRORLEN, "File copy error: Opening target ^"%s^" failed!", TARGET)
                fclose(source)
                return false
        
}
       
        for 
(new buffer, eof = feof(source); !eof; !eof && fputc(target, buffer)) {
                buffer = fgetc(source)
                eof = feof(source)
        }
        fclose(source)
        fclose(target)
       
        return true
}


Настройки:
// *Ai* OpenGL Detector 1.0 (Author - ReVKa)
//Модуль обнаруженияя opengl32 является дополнением к модулю защиты сервера amxmodx

// [RU] Расположение Файла $moddir/addons/amxmodx/configs/opengl_config.cfg
// [EN] File Location $moddir/addons/amxmodx/configs/opengl_config.cfg

echo [*Ai* OpenGl] Start Load config File

// [RU] Работа Плагина: 1 - включить, 0 - выключить
// [EN] Plugin Work: 1 - enable, 0 - disable
ai_opengl_work "1"

// [RU] Логи плагина: 1 - включить, 0 - выключить
// [EN] Plugin Logs: 1 - enable, 0 - disable
ai_opengl_logs "1"

// [RU] Уровень логов: от 1 до 3
// [EN] Level of Logs: from 1 to 3
ai_opengl_logs_level "1"

// [RU] Введите наказание при обнаружении у игрока чита
// [EN] Write Punish for player if detected cheat
// [RU] Пример ai_opengl_punish "addip 1440 %ip%" или "amx_ban 1440 %uid% ^"Opengl Hack^""
// [EN] Example ai_opengl_punish "addip 1440 %ip%" or "amx_ban 1440 %uid% ^"Opengl Hack^""
ai_opengl_punish "stc_ban 1440 #%uid% OpenGL_Hack"

// [RU] Показывать ли hud при обнаружении чита
// [EN] Write Hud if detected cheat
ai_opengl_hudmessage "1"
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: OpenGl Detector

Сообщение Lethargy » 24 мар 2017, 08:03

L4D2 писал(а):RevCrew, Боже упаси если он еще на HLDS сидит..

Но ведь раньше сидели как-то. :dntknw:
Lawful evil ]:->

Были бы в языке pawn объекты, было бы круто. Почему нет объектов в павне?
Аватара пользователя
Lethargy
 
Сообщения: 179
Зарегистрирован: 12 мар 2017, 17:25
Благодарил (а): 34 раз.
Поблагодарили: 15 раз.
Языки программирования: За 3-4 часа любой язык

Re: OpenGl Detector

Сообщение RevCrew » 24 мар 2017, 14:16

L4D2 писал(а):RevCrew, Боже упаси если он еще на HLDS сидит..

кто знает) Официальной статистики тех кто сидит на hlds и rehlds нету. Судить нельзя
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Пред.

Вернуться в Неутвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5