Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16

Премахване на hud съобщенията.

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Премахване на hud съобщенията.

Мнение от iv69 » 10 Фев 2021, 21:05

Ще може ли да се премахнат рекламите и всички hud съобщения излизащи от плъгина. Ако е проблем и не става, поне съобщенията да излизат само на играчите с админ-флаг "d".
Благодаря.

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <regex>
#include <sockets>

#define PLUGIN "ProxySnort"
#define VERSION "1.3"
#define AUTHOR "SPiNX"
#define USER 7007
#define USERREAD 5009
#define USERWRITE 6016
#define ADMIN 707

#define WITHOUT_PORT                   1

#define PATTERN "(127\.(0))|(10\.(42))|(172\.(0)?1[6-9]\.)|(172\.(0)?2[0-9]\.)|(172\.(0)?3[0-1]\.)|(169\.254\.)|(192\.168\.)"

//#define DEBUG //Echoes steps.
#define DEBUG2 //Dumps file.


///MACROS for AMXX 1.8.2 local compile.


#define MAX_PLAYERS                32

#define MAX_RESOURCE_PATH_LENGTH   64

#define MAX_MENU_LENGTH            512

#define MAX_NAME_LENGTH            32

#define MAX_AUTHID_LENGTH          64

#define MAX_IP_LENGTH              16

#define MAX_USER_INFO_LENGTH       256

#define charsmin                  -1

#define FCVAR_NOEXTRAWHITEPACE     512 // Automatically strips trailing/leading white space from the string value


new iResult, Regex:hPattern, szError[MAX_AUTHID_LENGTH], iReturnValue;

new proxy_socket_buffer[ MAX_USER_INFO_LENGTH + MAX_MENU_LENGTH ], g_cvar_token, token[MAX_PLAYERS + 1], g_cvar_tag, tag[MAX_PLAYERS + 1];

new name[MAX_NAME_LENGTH], Ip[MAX_IP_LENGTH], ip[MAX_IP_LENGTH], authid[ MAX_AUTHID_LENGTH + 1 ], provider[MAX_RESOURCE_PATH_LENGTH];

new g_proxy_socket, g_cvar_iproxy_action, g_cvar_admin;

new const MESSAGE[] = "Proxysnort by Spinx"

new risk[ 4 ], g_iHeadcount, g_cvar_debugger;


public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    hPattern = regex_compile(PATTERN, iReturnValue, szError, charsmax(szError), "is");

    g_cvar_token            = register_cvar("sv_proxycheckio-key", "null", FCVAR_SERVER|FCVAR_PROTECTED|FCVAR_NOEXTRAWHITEPACE|FCVAR_SPONLY);
    g_cvar_tag              = register_cvar("sv_proxytag", "GoldSrc", FCVAR_PRINTABLEONLY);
    g_cvar_admin            = register_cvar("proxy_admin", "0"); //check admins
    g_cvar_iproxy_action    = register_cvar("proxy_action", "1");
    g_cvar_debugger         = register_cvar("proxy_debug", "1");
    //proxy_action: 1 is kick. 2 is banip. 3 is banid. 4 is warn-only. 5 is log-only (silent).



    //Tag positive findings by mod.

    new mod_name[MAX_NAME_LENGTH] //Thx Pizzahut! https://forums.alliedmods.net/member.php?s=cffd384455c06423cc6504018c7326d5&u=2605
    get_modname(mod_name, charsmax(mod_name));
    set_pcvar_string(g_cvar_tag, mod_name);
}


public client_putinserver(id)
{

    if(is_user_connected(id) && !is_user_bot(id) && id > 0)
    {

    get_user_ip( id, ip, charsmax( ip ), WITHOUT_PORT );

    new Float:buffering = iPlayers() * 5.2

    if(buffering == 0.0 ||  buffering > 20.0) buffering = random_float(4.0, 8.0)

    set_task(buffering, "client_proxycheck", id, ip, charsmax(ip))

    }

}


public client_proxycheck(Ip[ MAX_IP_LENGTH ], id)
{
    if (is_user_connected(id) && !is_user_connecting(id) && id > 0)
    if(is_user_admin(id) && get_pcvar_num(g_cvar_admin) || !is_user_admin(id))
    if ( !is_user_bot(id) )

    {
    server_print("Checking connected user if not a bot");

    get_user_name(id,name,charsmax(name))

    //Ignore LAN clients.
    iResult = regex_match_c(Ip, hPattern, iReturnValue);

    switch (iResult)
    {
    case REGEX_MATCH_FAIL:
        {
            log_amx("REGEX_MATCH_FAIL! %s", szError);
        }
    case REGEX_PATTERN_FAIL:
        {
            log_amx("REGEX_PATTERN_FAIL! %s", szError);
        }
    case REGEX_NO_MATCH:
        {
            server_print("Sniffing a public IP address...%s, %s",Ip,name);
        }
        default:
        {
            server_print("%s %s by %s: Local IP. Stopping proxycheck on %s from %s.", PLUGIN, VERSION, AUTHOR, name, Ip)
            return PLUGIN_HANDLED_MAIN; ///comment out or do not use plugin on local servers!
        }
    }

    get_pcvar_string(g_cvar_token, token, charsmax (token));

    new Soc_O_ErroR2, constring[ MAX_USER_INFO_LENGTH ];

    if ( equal(token, "null") || equal(token, "") && is_user_admin(id) )

        set_task(40.0, "@needan", id+ADMIN);

    if(get_pcvar_num(g_cvar_debugger) > 1 )
        server_print("%s %s by %s:Starting to open socket!", PLUGIN, VERSION, AUTHOR);

    get_user_authid(id,authid,charsmax (authid));

    g_proxy_socket = socket_open("proxycheck.io", 80, SOCKET_TCP, Soc_O_ErroR2, SOCK_NON_BLOCKING|SOCK_LIBC_ERRORS);

    get_pcvar_string(g_cvar_token, token, charsmax (token));

    get_pcvar_string(g_cvar_tag, tag, charsmax (tag));

    formatex(constring,charsmax (constring), "GET /v2/%s?key=%s&inf=1&asn=1&risk=2&days=30&tag=%s,%s HTTP/1.0^nHost: proxycheck.io^n^n", Ip, token, tag, authid);

    set_task(1.0, "@write_web", id+USERWRITE, constring, charsmax (constring) );

    if(get_pcvar_num(g_cvar_debugger) > 2 )
    {
        server_print("This is where we are trying to get %s from:", PLUGIN);
        server_print("telnet proxycheck.io 80 (Wait for a connection then paste.)^n%s",constring);
        server_print("Debugging enabled::copy and paste last 2 lines from above into telnet session then press ENTER twice.");
    }

    set_task(1.5, "@read_web", id+USERREAD);return PLUGIN_CONTINUE;

    }

    return PLUGIN_CONTINUE;
}

@write_web(text[MAX_USER_INFO_LENGTH], reader)
{
    new id = reader - USERWRITE;

    if(get_pcvar_num(g_cvar_debugger) > 1 )
        server_print("%s %s by %s:Is socket writable?", PLUGIN, VERSION, AUTHOR)

    #if AMXX_VERSION_NUM != 182
    if (socket_is_writable(g_proxy_socket, 100000))
    #endif

    socket_send(g_proxy_socket,text,charsmax (text));

    if(get_pcvar_num(g_cvar_debugger) > 1 )
    {
        if(is_user_connected(id))
            server_print("%s %s by %s:Yes! Writing to the socket of %s", PLUGIN, VERSION, AUTHOR, name)
    }
}

@read_web(proxy_snort)
{
    new id = proxy_snort - USERREAD

    if( id > 0 )
    if (is_user_connected(id) || !is_user_bot(id) )

    {

    get_user_name(id,name,charsmax(name) );
    get_user_authid(id,authid,charsmax(authid) );
    get_user_ip(id,Ip,charsmax(Ip),1);

    if(get_pcvar_num(g_cvar_debugger))
        server_print("%s %s by %s:reading the socket", PLUGIN, VERSION, AUTHOR)

    #if AMXX_VERSION_NUM != 182
    if (socket_is_readable(g_proxy_socket, 100000))
    #endif
    {
        socket_recv(g_proxy_socket,proxy_socket_buffer,charsmax (proxy_socket_buffer));
    }

    if (!equal(proxy_socket_buffer, ""))

    {
    if(get_pcvar_num(g_cvar_debugger) > 2)
        server_print("%s", proxy_socket_buffer)



    //Proxy user treatments
    if (containi(proxy_socket_buffer, "yes") >= 0 || containi(proxy_socket_buffer, "Compromised") >= 0)

    {

    server_print("Proxy sniff...%s|%s", Ip, authid)
    log_amx("%s, %s uses a proxy!", name, authid)

    if (get_pcvar_num(g_cvar_iproxy_action) <= 4)
    {

    for (new admin=1; admin<=32; admin++)

    if (is_user_connected(admin) && is_user_admin(admin))

        client_print(admin,print_chat,"%s, %s uses a proxy!", name, authid);
    }
    //ban steamid
    if (get_pcvar_num(g_cvar_iproxy_action) == 3)

        server_cmd("amx_addban ^"%s^" ^"60^" ^"Anonymizing is NOT allowed!^"", authid);
    //ban ip
    if (get_pcvar_num(g_cvar_iproxy_action) == 2)

        server_cmd("amx_addban ^"%s^" ^"0^" ^"Anonymizing is NOT allowed!^"", Ip);

    //kick
    if (get_pcvar_num(g_cvar_iproxy_action) == 1)

        server_cmd( "kick #%d ^"Anonymizing is NOT allowed!^"", get_user_userid(id) );

    }

    //What if they aren't on proxy or VPN?
    if (containi(proxy_socket_buffer, "no") >= 0  && containi(proxy_socket_buffer, "error") == charsmin )
    {
        server_print("No proxy found on %s, %s",name,authid);
    }

    if (containi(proxy_socket_buffer, "no") >= 0  && containi(proxy_socket_buffer, "error") >= 0 )
    {
        server_print("No proxy found on %s, %s",name,authid); //return PLUGIN_HANDLED;
    }
    //Handle erroneous IP's like 127.0.0.1 and print message as could be query limits as well when erroring.
    if (containi(proxy_socket_buffer, "error") >= 0  && containi(proxy_socket_buffer, "message") >= 0 )
    {
        new msg[128];
        copyc(msg, charsmax (msg), proxy_socket_buffer[containi(proxy_socket_buffer, "message") + 11], '"');
        /*replace(msg, charmin (msg), ":", "");*/
        server_print("Message is: %s",msg)
    }

        //Example of a potentially more reliable 'City ID' or 'Country on Name' as per MaxMind database is updated via proxycheck.io. Provider is echoed.

    if (containi(proxy_socket_buffer, "provider") > charsmin )
    {
        copyc(provider, charsmax (provider), proxy_socket_buffer[containi(proxy_socket_buffer, "provider") + 12], '"');
        //copy(provider, charsmax(provider), proxy_socket_buffer[containi(proxy_socket_buffer, "provider") + 12])

        //Misc data and stats
        if(get_pcvar_num(g_cvar_debugger))
            server_print("%s %s %s | %s uses %s for an ISP.",PLUGIN, VERSION, AUTHOR, name, provider)
    }
    if (get_pcvar_num(g_cvar_iproxy_action) <= 4)
        {
            if(get_pcvar_num(g_cvar_debugger) > 2 )
                server_cmd("amx_tsay yellow %s %s %s | %s uses %s for an ISP.",PLUGIN, VERSION, AUTHOR, name, provider);
            set_hudmessage(random_num(0,255),random_num(0,255),random_num(0,255), -1.0, 0.55, 1, 2.0, 3.0, 0.7, 0.8, 3);  //charsmin auto makes flicker

            for (new admin=1; admin<=32; admin++)

            if (is_user_connected(admin) && is_user_admin(admin))

                show_hudmessage(admin, "%s %s %s | %s uses^n^n %s for an ISP.",PLUGIN, VERSION, AUTHOR, name, provider);

        }

    }

    }

    if (containi(proxy_socket_buffer, "risk") != charsmin && get_pcvar_num(g_cvar_iproxy_action) <= 4 )

    {
    copy(risk, charsmax(risk), proxy_socket_buffer[containi(proxy_socket_buffer, "risk") + 5])

    if (!equal(risk, ""))

        {

            server_print("%s %s by %s | %s's risk is %i.",PLUGIN, VERSION, AUTHOR, name, str_to_num(risk))
            if(get_pcvar_num(g_cvar_debugger) > 2 )
                server_cmd("amx_csay red %s %s by %s | %s's risk is %i.",PLUGIN, VERSION, AUTHOR, name, str_to_num(risk));

            for (new admin=1; admin<=32; admin++)

                if (is_user_connected(admin) && is_user_admin(admin))

            client_print(admin,print_chat,"%s %s by %s | %s's risk is %i.",PLUGIN, VERSION, AUTHOR, name, str_to_num(risk));

        }


    socket_close(g_proxy_socket);

    bright_message();


    }


    else if (containi(proxy_socket_buffer, "risk") == charsmin)
    {

        set_task(3.5, "@read_web",id+USERREAD);
    }

    else

    {

    socket_close(g_proxy_socket);

    bright_message();

    if (equal(proxy_socket_buffer, "") && get_pcvar_num(g_cvar_debugger) > 1 )
    {
        server_print("Buffer is now blank for %s|%s",name,authid);
    }

    if(get_pcvar_num(g_cvar_debugger))
        server_print("%s %s by %s:finished reading the socket", PLUGIN, VERSION, AUTHOR);
    }

    return PLUGIN_CONTINUE;

}





@needan(keymissing)

{
    new id = keymissing - ADMIN
    if ( is_user_admin(id) )

        {
            if ( cstrike_running() || is_running("dod") == 1 )

                {
                    new motd[128];
                    format(motd, charsmax (motd), "<html><meta http-equiv='Refresh' content='0; URL=https://proxycheck.io/'><body BGCOLOR='#FFFFFF'><br><center>Null proxy key detected.</center></html>");
                    show_motd(id, motd, "Invalid API key!");
                }

                else
                for (new admin=1; admin<=32; admin++)

                    if (is_user_connected(admin) && is_user_admin(admin))


                    {
                        client_print(admin,print_chat,"Check your API key validity!");
                        client_print(admin,print_center,"Null sv_proxycheckio-key detected. %s %s %s", AUTHOR, PLUGIN,VERSION);
                        client_print(admin,print_console,"Get key from proxycheck.io.");
                    }
        }
}

public plugin_end() {
    regex_free(hPattern);
}

public bright_message() {
    new Float:xTex
    xTex = -1.1
    new Float:yTex
    yTex = -0.7
    new Float:fadeInTime = 0.5;
    new Float:fadeOutTime = 0.5;
    new Float:holdTime = 1.0;
    new Float:scanTime = 1.2;
    new effect = 2;
    new iRainbow = random_num(100,200)

    emessage_begin ( MSG_BROADCAST, SVC_TEMPENTITY, { 0, 0, 0 }, 0 )
    ewrite_byte(TE_TEXTMESSAGE);
    ewrite_byte(0);      //(channel)
    ewrite_short(FixedSigned16(xTex,1<<13));  //(x) charsmin = center)
    ewrite_short(FixedSigned16(yTex,1<<13));  //(y) charsmin = center)
    ewrite_byte(effect);  //(effect) 0 = fade in/fade out, 1 is flickery credits, 2 is write out (training room)
    ewrite_byte(255);  //(red) - text color 255 100 75 20 25 200 175 30
    ewrite_byte(100);  //(GRN)
    ewrite_byte(iRainbow);  //(BLU)
    ewrite_byte(200);  //(alpha)
    ewrite_byte(25);  //(red) - effect color
    ewrite_byte(200);  //(GRN)
    ewrite_byte(iRainbow);  //(BLU)
    ewrite_byte(25);  //(alpha)
    ewrite_short(FixedUnsigned16(fadeInTime,1<<8));
    ewrite_short(FixedUnsigned16(fadeOutTime,1<<8));
    ewrite_short(FixedUnsigned16(holdTime,1<<8));
    if (effect == 2)
    ewrite_short(FixedUnsigned16(scanTime,1<<8));
    ewrite_string(MESSAGE);
    emessage_end();
}

stock FixedSigned16( Float:value, scale )
// Converts floating-point number to signed 16-bit fixed-point representation
{
    new Output;
    Output = floatround( value * scale )

    if ( Output > 3276 )
        Output = 32767
    if ( Output < -32768 )
        Output = -32768;

    return  Output;
}
stock FixedUnsigned16( Float:value, scale )
// Converts floating-point number to unsigned 16-bit fixed-point representation
{
    new Output;
    Output = floatround( value * scale )

    if ( Output < 0 )
        Output = 0;
    if ( Output > 0xFFFF )
        Output = 0xFFFF;

    return  Output;
}

    stock players_who_see_effects(){
    new players[MAX_PLAYERS], playercount, SEE;
    get_players(players,playercount,"ch");
    for (SEE=0; SEE<playercount; SEE++)
    return SEE;
    return PLUGIN_CONTINUE;
    }
/*
 *
 * name: stock iPlayers()
 * @param depends on what flavor of amxx you use.
 * @return total number of humans on multi-player.
 *
 */

stock iPlayers()

{
    #if AMXX_VERSION_NUM == 182;

        new players[ MAX_PLAYERS ],pNum;
        get_players(players,pNum,"ch");
        g_iHeadcount = pNum;

    #else

        g_iHeadcount = get_playersnum_ex(GetPlayersFlags:GetPlayers_ExcludeBots)

    #endif

    return g_iHeadcount
}

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Премахване на hud съобщенията.

Мнение от iv69 » 11 Фев 2021, 00:10

Опитах се сам да го "орежа". Направих го ето така:

Код за потвърждение: Избери целия код

#include <amxmodx>
#include <amxmisc>
#include <regex>
#include <sockets>

#define PLUGIN "ProxySnort"
#define VERSION "1.3"
#define AUTHOR "SPiNX"
#define USER 7007
#define USERREAD 5009
#define USERWRITE 6016
#define ADMIN 707

#define WITHOUT_PORT                   1

#define PATTERN "(127\.(0))|(10\.(42))|(172\.(0)?1[6-9]\.)|(172\.(0)?2[0-9]\.)|(172\.(0)?3[0-1]\.)|(169\.254\.)|(192\.168\.)"

//#define DEBUG //Echoes steps.
#define DEBUG2 //Dumps file.


///MACROS for AMXX 1.8.2 local compile.


#define MAX_PLAYERS                32

#define MAX_RESOURCE_PATH_LENGTH   64

#define MAX_MENU_LENGTH            512

#define MAX_NAME_LENGTH            32

#define MAX_AUTHID_LENGTH          64

#define MAX_IP_LENGTH              16

#define MAX_USER_INFO_LENGTH       256

#define charsmin                  -1

#define FCVAR_NOEXTRAWHITEPACE     512 // Automatically strips trailing/leading white space from the string value


new iResult, Regex:hPattern, szError[MAX_AUTHID_LENGTH], iReturnValue;

new proxy_socket_buffer[ MAX_USER_INFO_LENGTH + MAX_MENU_LENGTH ], g_cvar_token, token[MAX_PLAYERS + 1], g_cvar_tag, tag[MAX_PLAYERS + 1];

new name[MAX_NAME_LENGTH], Ip[MAX_IP_LENGTH], ip[MAX_IP_LENGTH], authid[ MAX_AUTHID_LENGTH + 1 ], provider[MAX_RESOURCE_PATH_LENGTH];

new g_proxy_socket, g_cvar_iproxy_action, g_cvar_admin;

new const MESSAGE[] = "Proxysnort by Spinx"

new risk[ 4 ], g_iHeadcount, g_cvar_debugger;


public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    hPattern = regex_compile(PATTERN, iReturnValue, szError, charsmax(szError), "is");

    g_cvar_token            = register_cvar("sv_proxycheckio-key", "null", FCVAR_SERVER|FCVAR_PROTECTED|FCVAR_NOEXTRAWHITEPACE|FCVAR_SPONLY);
    g_cvar_tag              = register_cvar("sv_proxytag", "GoldSrc", FCVAR_PRINTABLEONLY);
    g_cvar_admin            = register_cvar("proxy_admin", "0"); //check admins
    g_cvar_iproxy_action    = register_cvar("proxy_action", "1");
    g_cvar_debugger         = register_cvar("proxy_debug", "1");
    //proxy_action: 1 is kick. 2 is banip. 3 is banid. 4 is warn-only. 5 is log-only (silent).



    //Tag positive findings by mod.

    new mod_name[MAX_NAME_LENGTH] //Thx Pizzahut! https://forums.alliedmods.net/member.php?s=cffd384455c06423cc6504018c7326d5&u=2605
    get_modname(mod_name, charsmax(mod_name));
    set_pcvar_string(g_cvar_tag, mod_name);
}


public client_putinserver(id)
{

    if(is_user_connected(id) && !is_user_bot(id) && id > 0)
    {

    get_user_ip( id, ip, charsmax( ip ), WITHOUT_PORT );

    new Float:buffering = iPlayers() * 5.2

    if(buffering == 0.0 ||  buffering > 20.0) buffering = random_float(4.0, 8.0)

    set_task(buffering, "client_proxycheck", id, ip, charsmax(ip))

    }

}


public client_proxycheck(Ip[ MAX_IP_LENGTH ], id)
{
    if (is_user_connected(id) && !is_user_connecting(id) && id > 0)
    if(is_user_admin(id) && get_pcvar_num(g_cvar_admin) || !is_user_admin(id))
    if ( !is_user_bot(id) )

    {
    server_print("Checking connected user if not a bot");

    get_user_name(id,name,charsmax(name))

    //Ignore LAN clients.
    iResult = regex_match_c(Ip, hPattern, iReturnValue);

    switch (iResult)
    {
    case REGEX_MATCH_FAIL:
        {
            log_amx("REGEX_MATCH_FAIL! %s", szError);
        }
    case REGEX_PATTERN_FAIL:
        {
            log_amx("REGEX_PATTERN_FAIL! %s", szError);
        }
    case REGEX_NO_MATCH:
        {
            server_print("Sniffing a public IP address...%s, %s",Ip,name);
        }
        default:
        {
            server_print("%s %s by %s: Local IP. Stopping proxycheck on %s from %s.", PLUGIN, VERSION, AUTHOR, name, Ip)
            return PLUGIN_HANDLED_MAIN; ///comment out or do not use plugin on local servers!
        }
    }

    get_pcvar_string(g_cvar_token, token, charsmax (token));

    new Soc_O_ErroR2, constring[ MAX_USER_INFO_LENGTH ];

    if ( equal(token, "null") || equal(token, "") && is_user_admin(id) )

        set_task(40.0, "@needan", id+ADMIN);

    if(get_pcvar_num(g_cvar_debugger) > 1 )
        server_print("%s %s by %s:Starting to open socket!", PLUGIN, VERSION, AUTHOR);

    get_user_authid(id,authid,charsmax (authid));

    g_proxy_socket = socket_open("proxycheck.io", 80, SOCKET_TCP, Soc_O_ErroR2, SOCK_NON_BLOCKING|SOCK_LIBC_ERRORS);

    get_pcvar_string(g_cvar_token, token, charsmax (token));

    get_pcvar_string(g_cvar_tag, tag, charsmax (tag));

    formatex(constring,charsmax (constring), "GET /v2/%s?key=%s&inf=1&asn=1&risk=2&days=30&tag=%s,%s HTTP/1.0^nHost: proxycheck.io^n^n", Ip, token, tag, authid);

    set_task(1.0, "@write_web", id+USERWRITE, constring, charsmax (constring) );

    if(get_pcvar_num(g_cvar_debugger) > 2 )
    {
        server_print("This is where we are trying to get %s from:", PLUGIN);
        server_print("telnet proxycheck.io 80 (Wait for a connection then paste.)^n%s",constring);
        server_print("Debugging enabled::copy and paste last 2 lines from above into telnet session then press ENTER twice.");
    }

    set_task(1.5, "@read_web", id+USERREAD);return PLUGIN_CONTINUE;

    }

    return PLUGIN_CONTINUE;
}

@write_web(text[MAX_USER_INFO_LENGTH], reader)
{
    new id = reader - USERWRITE;

    if(get_pcvar_num(g_cvar_debugger) > 1 )
        server_print("%s %s by %s:Is socket writable?", PLUGIN, VERSION, AUTHOR)

    #if AMXX_VERSION_NUM != 182
    if (socket_is_writable(g_proxy_socket, 100000))
    #endif

    socket_send(g_proxy_socket,text,charsmax (text));

    if(get_pcvar_num(g_cvar_debugger) > 1 )
    {
        if(is_user_connected(id))
            server_print("%s %s by %s:Yes! Writing to the socket of %s", PLUGIN, VERSION, AUTHOR, name)
    }
}

@read_web(proxy_snort)
{
    new id = proxy_snort - USERREAD

    if( id > 0 )
    if (is_user_connected(id) || !is_user_bot(id) )

    {

    get_user_name(id,name,charsmax(name) );
    get_user_authid(id,authid,charsmax(authid) );
    get_user_ip(id,Ip,charsmax(Ip),1);

    if(get_pcvar_num(g_cvar_debugger))
        server_print("%s %s by %s:reading the socket", PLUGIN, VERSION, AUTHOR)

    #if AMXX_VERSION_NUM != 182
    if (socket_is_readable(g_proxy_socket, 100000))
    #endif
    {
        socket_recv(g_proxy_socket,proxy_socket_buffer,charsmax (proxy_socket_buffer));
    }

    if (!equal(proxy_socket_buffer, ""))

    {
    if(get_pcvar_num(g_cvar_debugger) > 2)
        server_print("%s", proxy_socket_buffer)



    //Proxy user treatments
    if (containi(proxy_socket_buffer, "yes") >= 0 || containi(proxy_socket_buffer, "Compromised") >= 0)

    {

    server_print("Proxy sniff...%s|%s", Ip, authid)
    log_amx("%s, %s uses a proxy!", name, authid)

    if (get_pcvar_num(g_cvar_iproxy_action) <= 4)
    {

    for (new admin=1; admin<=32; admin++)

    if (is_user_connected(admin) && is_user_admin(admin))

        client_print(admin,print_chat,"%s, %s uses a proxy!", name, authid);
    }
    //ban steamid
    if (get_pcvar_num(g_cvar_iproxy_action) == 3)

        server_cmd("amx_addban ^"%s^" ^"60^" ^"Anonymizing is NOT allowed!^"", authid);
    //ban ip
    if (get_pcvar_num(g_cvar_iproxy_action) == 2)

        server_cmd("amx_addban ^"%s^" ^"0^" ^"Anonymizing is NOT allowed!^"", Ip);

    //kick
    if (get_pcvar_num(g_cvar_iproxy_action) == 1)

        server_cmd( "kick #%d ^"Anonymizing is NOT allowed!^"", get_user_userid(id) );

    }

    //What if they aren't on proxy or VPN?
    if (containi(proxy_socket_buffer, "no") >= 0  && containi(proxy_socket_buffer, "error") == charsmin )
    {
        server_print("No proxy found on %s, %s",name,authid);
    }

    if (containi(proxy_socket_buffer, "no") >= 0  && containi(proxy_socket_buffer, "error") >= 0 )
    {
        server_print("No proxy found on %s, %s",name,authid); //return PLUGIN_HANDLED;
    }
    //Handle erroneous IP's like 127.0.0.1 and print message as could be query limits as well when erroring.
    if (containi(proxy_socket_buffer, "error") >= 0  && containi(proxy_socket_buffer, "message") >= 0 )
    {
        new msg[128];
        copyc(msg, charsmax (msg), proxy_socket_buffer[containi(proxy_socket_buffer, "message") + 11], '"');
        /*replace(msg, charmin (msg), ":", "");*/
        server_print("Message is: %s",msg)
    }

        //Example of a potentially more reliable 'City ID' or 'Country on Name' as per MaxMind database is updated via proxycheck.io. Provider is echoed.

    if (containi(proxy_socket_buffer, "provider") > charsmin )
    {
        copyc(provider, charsmax (provider), proxy_socket_buffer[containi(proxy_socket_buffer, "provider") + 12], '"');
        //copy(provider, charsmax(provider), proxy_socket_buffer[containi(proxy_socket_buffer, "provider") + 12])

        //Misc data and stats
        if(get_pcvar_num(g_cvar_debugger))
            server_print("%s %s %s | %s uses %s for an ISP.",PLUGIN, VERSION, AUTHOR, name, provider)
    }

    }


    }


    else if (containi(proxy_socket_buffer, "risk") == charsmin)
    {

        set_task(3.5, "@read_web",id+USERREAD);
    }

    else

    {

    socket_close(g_proxy_socket);

    bright_message();

    if (equal(proxy_socket_buffer, "") && get_pcvar_num(g_cvar_debugger) > 1 )
    {
        server_print("Buffer is now blank for %s|%s",name,authid);
    }

    if(get_pcvar_num(g_cvar_debugger))
        server_print("%s %s by %s:finished reading the socket", PLUGIN, VERSION, AUTHOR);
    }

    return PLUGIN_CONTINUE;

}





@needan(keymissing)

{
    new id = keymissing - ADMIN
    if ( is_user_admin(id) )

        {
            if ( cstrike_running() || is_running("dod") == 1 )

                {
                    new motd[128];
                    format(motd, charsmax (motd), "<html><meta http-equiv='Refresh' content='0; URL=https://proxycheck.io/'><body BGCOLOR='#FFFFFF'><br><center>Null proxy key detected.</center></html>");
                    show_motd(id, motd, "Invalid API key!");
                }

                else
                for (new admin=1; admin<=32; admin++)

                    if (is_user_connected(admin) && is_user_admin(admin))


                    {
                        client_print(admin,print_chat,"Check your API key validity!");
                        client_print(admin,print_center,"Null sv_proxycheckio-key detected. %s %s %s", AUTHOR, PLUGIN,VERSION);
                        client_print(admin,print_console,"Get key from proxycheck.io.");
                    }
        }
}

public plugin_end() {
    regex_free(hPattern);
}

public bright_message() {
    new Float:xTex
    xTex = -1.1
    new Float:yTex
    yTex = -0.7
    new Float:fadeInTime = 0.5;
    new Float:fadeOutTime = 0.5;
    new Float:holdTime = 1.0;
    new Float:scanTime = 1.2;
    new effect = 2;
    new iRainbow = random_num(100,200)

    emessage_begin ( MSG_BROADCAST, SVC_TEMPENTITY, { 0, 0, 0 }, 0 )
    ewrite_byte(TE_TEXTMESSAGE);
    ewrite_byte(0);      //(channel)
    ewrite_short(FixedSigned16(xTex,1<<13));  //(x) charsmin = center)
    ewrite_short(FixedSigned16(yTex,1<<13));  //(y) charsmin = center)
    ewrite_byte(effect);  //(effect) 0 = fade in/fade out, 1 is flickery credits, 2 is write out (training room)
    ewrite_byte(255);  //(red) - text color 255 100 75 20 25 200 175 30
    ewrite_byte(100);  //(GRN)
    ewrite_byte(iRainbow);  //(BLU)
    ewrite_byte(200);  //(alpha)
    ewrite_byte(25);  //(red) - effect color
    ewrite_byte(200);  //(GRN)
    ewrite_byte(iRainbow);  //(BLU)
    ewrite_byte(25);  //(alpha)
    ewrite_short(FixedUnsigned16(fadeInTime,1<<8));
    ewrite_short(FixedUnsigned16(fadeOutTime,1<<8));
    ewrite_short(FixedUnsigned16(holdTime,1<<8));
    if (effect == 2)
    ewrite_short(FixedUnsigned16(scanTime,1<<8));
    ewrite_string(MESSAGE);
    emessage_end();
}

stock FixedSigned16( Float:value, scale )
// Converts floating-point number to signed 16-bit fixed-point representation
{
    new Output;
    Output = floatround( value * scale )

    if ( Output > 3276 )
        Output = 32767
    if ( Output < -32768 )
        Output = -32768;

    return  Output;
}
stock FixedUnsigned16( Float:value, scale )
// Converts floating-point number to unsigned 16-bit fixed-point representation
{
    new Output;
    Output = floatround( value * scale )

    if ( Output < 0 )
        Output = 0;
    if ( Output > 0xFFFF )
        Output = 0xFFFF;

    return  Output;
}

    stock players_who_see_effects(){
    new players[MAX_PLAYERS], playercount, SEE;
    get_players(players,playercount,"ch");
    for (SEE=0; SEE<playercount; SEE++)
    return SEE;
    return PLUGIN_CONTINUE;
    }
/*
 *
 * name: stock iPlayers()
 * @param depends on what flavor of amxx you use.
 * @return total number of humans on multi-player.
 *
 */

stock iPlayers()

{
    #if AMXX_VERSION_NUM == 182;

        new players[ MAX_PLAYERS ],pNum;
        get_players(players,pNum,"ch");
        g_iHeadcount = pNum;

    #else

        g_iHeadcount = get_playersnum_ex(GetPlayersFlags:GetPlayers_ExcludeBots)

    #endif

    return g_iHeadcount
}
Значи, компилира се, дава, че плъгина "работи"... , худ-надписи вече няма , но ... Дава ми само този warning:
C:\Users\pc\Documents\compilator_1.9.0\proxysnort_2.sma(85) : warning 203: symbol is never used: "risk"
дали не съм изключил някоя функция? Ще даде ли някой компетентно мнение поне ?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1296 пъти
Обратна връзка:

Премахване на hud съобщенията.

Мнение от OciXCrom » 11 Фев 2021, 01:42

Просто ти казва, че символът не се използва и може да го премахнеш от кода.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Премахване на hud съобщенията.

Мнение от iv69 » 11 Фев 2021, 08:56

Заключете моля.

Заключено
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Заявки за плъгини”

Кой е на линия

Потребители разглеждащи този форум: Bing [Bot], XapD и 7 госта