Плъгин "Bad Names"

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

Плъгин "Bad Names"

Мнение от iv69 » 01 Авг 2018, 13:48

Здравейте,

Не знам , правилно ли съм го написал или не в заглавието , но ми трябва плъгин който да не допуска в сървъра, играчи с "точно" определени имена. Сложих "точно" - в кавички за да поясня : Ако може към плъгина да има и текстови файл в който да са написани точно играчи с кои имена не могат да се коненктват, като при опитите им за влизане, , да им изписва в конзолата ясно и точно на английски , че трябва да сменят името си. И едно уточнение: Ако името на играча е по-голямо и съдържа забранените думи от текстовия файл да бъде допускан. Не знам дали е възможно и как ще се направи точно така, но ако може просто да не бъдат допускани само ония, които имат само 100% еднаквост със "забранените" никове. Дори и един символ, цифра или буква да е променена или добавена или съкратена - играча да може да играе. Тоест , нещо като забранен или баннат списък с точни имена, които да са "persona non grata".
Това ми е необходимо като допълнение към плъгина за резервация на ник. Дори и с диманично IP, ако хакер играе с един и същи ник и е напред в топа, да му "банна" ника... , а също и да не допускам анонимници с никове "unnamed" , "player" , "unknown"... да развалят в топ-а.
Благодаря !

Аватар
TheRedShoko
Извън линия
Модератор
Модератор
Мнения: 1016
Регистриран на: 06 Окт 2016, 07:42
Местоположение: Бургас
Се отблагодари: 5 пъти
Получена благодарност: 84 пъти

Плъгин "Bad Names"

Мнение от TheRedShoko » 01 Авг 2018, 14:03


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

Плъгин "Bad Names"

Мнение от iv69 » 01 Авг 2018, 21:07

TheRedShoko написа: 01 Авг 2018, 14:03 viewtopic.php?f=21&t=1210
Благодаря, кода работи и прави всичко което искам, но има една малка подробност: Ако не е нахално , може ли да се "преработи" кода така , че в конзолата на кикнатият играч да не изписва само ето това:

Server # 1
Kicked :""


а и "резон"(т.е. -причината) поради който е кикнат играча с "лош ник" ? Тоест нещо подобно:


Server # 1
Kicked :"reason: You used "bad nick" , please change nick ..."

Ето кода за "дообрабработка", ако може, разбира се :

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

#include <amxmodx>
#include <amxmisc>

new const g_szVersion[] = "1.0 (Edited)";

new Array:g_szNames, Array:g_szReasons;
new g_iTotalFilterNames;

public plugin_init()
{
    register_plugin("Nick Filter", g_szVersion, "TheRedShoko @ AMXX-BG.info");
    register_cvar("nick_filter", g_szVersion, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED);

    register_concmd("amx_reload_nickfilter", "AdminReloadNicknames", ADMIN_RCON);

    g_szNames = ArrayCreate(32);
    g_szReasons = ArrayCreate(64);
    
    LoadNicksFile();
}

public plugin_end()
{
    ArrayDestroy(g_szNames);
    ArrayDestroy(g_szReasons);
}

public client_putinserver(id)
{
    static szName[32], szArrayName[32];
    get_user_name(id, szName, charsmax(szName));
    
    for (new i = 0; i < g_iTotalFilterNames; i++)
    {
        ArrayGetString(g_szNames, i, szArrayName, charsmax(szArrayName));
        
        if (containi(szName, szArrayName) != -1)
        {
            static szReason[64];
            ArrayGetString(g_szReasons, i, szReason, charsmax(szReason));

            server_cmd("kick #%d ^"%s^"", get_user_userid(id), szReason);
        }
    }
}

public AdminReloadNicknames(id, level, cid)
{
    if (!cmd_access(id, level, cid, 1))
    {
        return PLUGIN_HANDLED;
    }
    
    console_print(id, "Reading from file...");

    console_print(id, LoadNicksFile() ? "Succesfully loaded the file!" : "Failed to read from the file!");
    
    return PLUGIN_HANDLED;
}

LoadNicksFile()
{
    ArrayClear(g_szNames);
    ArrayClear(g_szReasons);
    
    new szFile[64];
    get_configsdir(szFile, charsmax(szFile));
    add(szFile, charsmax(szFile), "/nick_filter.ini");
    
    if (file_exists(szFile))
    {        
        new iLine, szLine[128], iBuffer;
        new szName[32], szReason[64];
        
        while ( (iLine = read_file(szFile, iLine, szLine, charsmax(szLine), iBuffer)) > 0)
        {
            if (szLine[0] == EOS || szLine[0] == ';' || szLine[0] == '/' && szLine[1] == '/') continue;
            
            parse(szLine, szName, charsmax(szName), szReason, charsmax(szReason));
            
            ArrayPushString(g_szNames, szName);
            ArrayPushString(g_szReasons, szReason);
        }
        
        g_iTotalFilterNames = ArraySize(g_szNames);
        
        return true;
    }
    else
    {
        write_file(szFile, "; Nick filter by TheRedShoko^n; Don't forget to visit AMXX-BG.info");
        write_file(szFile, "; Usage: ^"Name^" ^"Reason^" ^n; Example: ^"TheRedShoko^" ^"Test^"");
    }
    
    return false;
}
Иначе пак казвам , кода е направен добре, изпробвах го и е супер, но е по-добре, ако самия играч знае все пак защо е "кикван" .

Благодаря !

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

Плъгин "Bad Names"

Мнение от OciXCrom » 01 Авг 2018, 21:10

Не си видял това:
; Nick filter by TheRedShoko
; Don't forget to visit AMXX-BG.info
; Usage: "Name" "Reason"
; Example: "TheRedShoko" "Test"
Демек причината се въвежда след името на играча.

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

Плъгин "Bad Names"

Мнение от iv69 » 01 Авг 2018, 21:28

ммм, май не..... , пак ти благодаря за кой ли път... Заключвайте !!! :headbang:
перфектен плъгин !

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

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

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта