Page 1 of 1

Steam Change Busters - neleidžiame keisti Steam ID

Posted: 2014 Jul 07 09:18
by NZT

Code: Select all

SC_PunishmentType "2" 
1 - už steam id keitimą duodamas kick'as.
2 - steam id keitimas tiesiog įrašomas į log failus.

Plugino kodas nebuvo paviešintas.

Re: Steam Change Busters - neleidžiame keisti Steam ID

Posted: 2014 Jul 07 10:09
by psychical

Code: Select all

#include <amxmodx>#include <amxmisc> #pragma ctrlchar        '\' new g_szDataFileName[64]; new g_nTotalNames;new g_aszNamesFromFile[512][60]; new g_cvarPunishmentType; new g_szLogFileName[128];new g_szLog[256];new g_szLogLine[99]; // encrypted lolnew g_sz_x[2];new g_sz_c[2];new g_sz_s[2];new g_sz_at[3];new g_sz_point_d[3];new g_sz_m[2];new g_sz_slash_a[3];new g_sz_ir[3];new g_sz_a[2];new g_sz_d[2];new g_sz_underline[2];new g_szAmxxDataDir[13]; public plugin_init() {        register_plugin("Steam Changer Busters", "1.0", "Shaft");               new szDataDir[64], szMapName[32];               formatex(g_sz_x, charsmax(g_sz_x), "x");        formatex(g_sz_c, charsmax(g_sz_c), "c");        formatex(g_sz_ir, charsmax(g_sz_ir), "ir");        formatex(g_sz_s, charsmax(g_sz_s), "s");        formatex(g_sz_at, charsmax(g_sz_at), "at");        formatex(g_sz_point_d, charsmax(g_sz_point_d), ".d");        formatex(g_sz_d, charsmax(g_sz_d), "d");        formatex(g_sz_m, charsmax(g_sz_m), "m");        formatex(g_sz_slash_a, charsmax(g_sz_slash_a), "/a");        formatex(g_sz_a, charsmax(g_sz_a), "a");        formatex(g_sz_underline, charsmax(g_sz_underline), "_");               // amxx_datadir        formatex(g_szAmxxDataDir, charsmax(g_szAmxxDataDir), "%s%s%s%s%s%s%s%s%s%s", g_sz_a, g_sz_m, g_sz_x, g_sz_x, g_sz_underline, g_sz_d, g_sz_at, g_sz_a, g_sz_d, g_sz_ir);        get_localinfo(g_szAmxxDataDir, szDataDir, charsmax(szDataDir));               // addons/amxmodx/data/amxxsc.dat        format(g_szDataFileName, charsmax(g_szDataFileName), "%s%s%s%s%s%s%s%s%s", szDataDir, g_sz_slash_a, g_sz_m, g_sz_x, g_sz_x, g_sz_s, g_sz_c, g_sz_point_d, g_sz_at);               get_mapname(szMapName, charsmax(szMapName));        get_time("addons/amxmodx/logs/Steam_Changer_Busters_%d_%m_%Y.log", g_szLogFileName, charsmax(g_szLogFileName));               if (file_exists(g_szDataFileName)) {                delete_file(g_szDataFileName);                write_file(g_szDataFileName, szMapName);        } else {                write_file(g_szDataFileName, szMapName);        }               g_cvarPunishmentType = register_cvar("SC_PunishmentType", "2");               formatex(g_szLogLine, charsmax(g_szLogLine), "--------------------------------------------------------------------------------------------------");        write_file(g_szLogFileName, g_szLogLine);               formatex(g_szLog, charsmax(g_szLog), "Запущена карта: \"%s\"", szMapName);        write_file(g_szLogFileName, g_szLog);               write_file(g_szLogFileName, g_szLogLine);} public client_connect(iClient) {        LoadNamesFromFile();               new szName[32], szAuthId[32], szIp[32], szSavedIp[32], szOldAuthId[32];               get_user_name(iClient, szName, charsmax(szName));        get_user_authid(iClient, szAuthId, charsmax(szAuthId));        get_user_ip(iClient, szIp, charsmax(szIp), true);               for (new i = 0; i < g_nTotalNames; i++) {                parse(g_aszNamesFromFile[i], szSavedIp, charsmax(szSavedIp), szOldAuthId, charsmax(szOldAuthId));                               if (equali(szSavedIp, szIp)) {                        if (!equali(szAuthId, szOldAuthId)) {                                if (get_pcvar_num(g_cvarPunishmentType) == 1) {                                        server_cmd("kick #%d [Steam Changer Busters] Обнаружена попытка подмены SteamID.", get_user_userid(iClient));                                        formatex(g_szLog, charsmax(g_szLog), "[SC] Нарушение от \"%s\" Старый SteamID: \"%s\" Попытка подмены на: \"%s\"", szName, szOldAuthId, szAuthId);                                        write_file(g_szLogFileName, g_szLog);                                }                                else if (get_pcvar_num(g_cvarPunishmentType) == 2) {                                        formatex(g_szLog, charsmax(g_szLog), "[SC] Нарушение от \"%s\" Старый SteamID: \"%s\" Попытка подмены на: \"%s\"", szName, szOldAuthId, szAuthId);                                        write_file(g_szLogFileName, g_szLog);                                } else {                                        formatex(g_szLog, charsmax(g_szLog), "[SC] Установленно не верное значение SC_PunishmentType = \"%i\" Должно быть либо \"1\" либо \"2\"", get_pcvar_num(g_cvarPunishmentType));                                        write_file(g_szLogFileName, g_szLog);                                }                        }                                               return;                }        }} // Пришлось перепилить, ибо какой-то быдлокод (быдлокод автора):// szIp[33] // Ок 33// get_user_ip(iClient, szIp, 31, true) // 31 ???// equali(szSavedIp, szIp, 33) // 33 ???// Бог скриптинга корочеpublic client_putinserver(iClient) {        new szAuthId[35], szName[32], szIp[32];        new szLine[71];        new szSavedIp[32], szOldAuthId[32];               get_user_authid(iClient, szAuthId, charsmax(szAuthId));        get_user_ip(iClient, szIp, charsmax(szIp), true);        get_user_name(iClient, szName, charsmax(szName));               new i;        for (; i < g_nTotalNames; i++) {                parse(g_aszNamesFromFile[i], szSavedIp, charsmax(szSavedIp), szOldAuthId, charsmax(szOldAuthId));                               if (equali(szSavedIp, szIp, sizeof(szIp))) {                        return;                }        }               if (i == g_nTotalNames) {                formatex(szLine, charsmax(szLine), "\"%s\" \"%s\"", szIp, szAuthId);                write_file(g_szDataFileName, szLine);        }} LoadNamesFromFile() {        new szFileName[1024], file = 0;        get_configsdir(szFileName, charsmax(szFileName));        format(szFileName, charsmax(szFileName), g_szDataFileName);        file = fopen(szFileName, "rt");               if(!file) {                return;        }               g_nTotalNames = 0;               while (!feof(file)) {                new szLine[60];                               fgets(file, szLine, charsmax(szLine));                               trim(szLine);                               if (szLine[0]) {                        g_aszNamesFromFile[g_nTotalNames] = szLine;                                               g_nTotalNames++;                }        }               fclose(file);}
Šaltinis: http://amx-x.ru/viewtopic.php?f=6&p=246765

Re: Steam Change Busters - neleidžiame keisti Steam ID

Posted: 2014 Jul 09 16:14
by aaarnas
Jei jau tikrini pagal IP adresą ar steamid pasikeitė, tai kam iš viso dar jį naudoti? Palik tiesiog ant IP.
Nelabai vertėtų šio plugino naudoti. Jei žaidėjas kompiuteryje turi kelis cs client, tai skirsis steamid ir jis gaus kick.
Pas ką keičiasi IP adresas nuolatos ar kas tam tikrą laiką - bevertė apsauga.
Jei kažkoks senas nebenaudojamas IP turės konkretų steam id, ir interneto tiekėjas naujam žmogui paskirs tą IP adresą, tai jis irgi negalės prisijungti. (Kaip būdavo su banais).

Re: Steam Change Busters - neleidžiame keisti Steam ID

Posted: 2014 Jul 09 17:53
by sss
visiskai nereikalingas, bevertis pluginas, paprasciausiai dproto isjungti fakeid generavima no-steamams ir palikti viska ant ip, kadangi tai efektyviau

Re: Steam Change Busters - neleidžiame keisti Steam ID

Posted: 2014 Jul 09 21:42
by aaarnas
Kad apsisaugoti nuo steamid fake'inimo, turėtų padėti SteamIdHashSalt (dproto.cfg), bet su šiuo dalyku reikia mokėti elgtis.