Admin Password Checker 1.3.1

Замена steamid protector-ов простым плагином

  1. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    Пользователь Danyas разместил новый ресурс:

    Admin Password Checker - Замена steamid protector-ов простым плагином

    Узнать больше об этом ресурсе...
     
    Meowmurmur нравится это.
  2. Hejter

    Hejter Mapper Source Engine

    Сообщения:
    1.771
    Симпатии:
    259
  3. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    Оффтоп
     
  4. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    Пользователь Danyas обновил ресурс Admin Password Checker новой записью:

    Фиксы и доп. проверка пароля

    Узнать больше об этом обновлении...
     
  5. Felton

    Felton

    Сообщения:
    330
    Симпатии:
    9
    Спасибо! Работает.Проверил на домашнем сервере.Вот только не понял зачем это сообщение ?" "Админ без пароля" показывть на сервере.По стиму и так не пустит это и понятно а по ip я захожу.Мне кажется показывать всему серверу что Админ без пароля это лишнее.На врятли можно ip потделать(или можно ?).Я даже у себя на сервере меняю ники чтобы не догадались кто админ.
     
    Последнее редактирование: 2 окт 2016
  6. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    @Danyas,
    PHP:
    stock bool:GetPassInfoVar(String:value[], maxlength)
    {
        new 
    Handle:file OpenFile("addons/sourcemod/configs/core.cfg""rt");
        new 
    bool:find false;
        if (
    file != INVALID_HANDLE)
        {
            new 
    Handle:re INVALID_HANDLE;
            
    re CompileRegex("^\\s+\"PassInfoVar\"\\s+\"(\\w+)\""); // ([^\"]*)
            
    if (re != INVALID_HANDLE)
            {
                
    decl String:buffer[PLATFORM_MAX_PATH];
                while (!
    IsEndOfFile(file) && ReadFileLine(filebuffersizeof(buffer)))
                {
                    if (
    MatchRegex(rebuffer) > && GetRegexSubString(re1valuemaxlength))
                    {
                        
    find true;
                        break;
                    }
                }
               
    CloseHandle(re);
            }
            
    CloseHandle(file);
        }
        return 
    find;
    можно так:
    PHP:
    bool:GetPassInfoVar(String:value[], maxlength)
    {
        new 
    Handle:file OpenFile("addons/sourcemod/configs/core.cfg""rt");
        if (
    file != INVALID_HANDLE)
        {
            new 
    Handle:re CompileRegex("^\\s+\"PassInfoVar\"\\s+\"(\\w+)\""); // ([^\"]*)
            
    if (re != INVALID_HANDLE)
            {
                
    decl String:buffer[PLATFORM_MAX_PATH];
                while (!
    IsEndOfFile(file) && ReadFileLine(filebuffersizeof(buffer)))
                {
                    if (
    MatchRegex(rebuffer) > && GetRegexSubString(re1valuemaxlength))
                    {
                        
    CloseHandle(re);
                       
    CloseHandle(file);
                       return 
    true;
                    }
                }
               
    CloseHandle(re);
            }
            
    CloseHandle(file);
        }
        return 
    false;
    }
    PHP:
    ReplaceString(sAuthsizeof(sAuth), "STEAM_1""STEAM_0");
    Почему бы не так:
    PHP:
    sAuth[6] = '0';

    PHP:
    new String:sAuth[64];
    и
    PHP:
    new String:sPassword[64];
    лучше decl

    PHP:
    if (StrEqual(sConVarValue""))
    лучше
    PHP:
    if (!sConVarValue[0])
    и датапак можно закрыть сразу после извлечения строки.
    И не помешало бы проверить в игре ли игрок когда значение получено

    PHP:
    new Handle:hDataPack INVALID_HANDLE;
            
    hDataPack CreateDataPack();
    Зачем так делать? Это лишнее действие.
    • Выделение памяти для переменной
    • Запись туда значения 0
    • Создание датапака и запись указателя в переменную
    А так:
    PHP:
    new Handle:hDataPack CreateDataPack();
    • Выделение памяти для переменной
    • Создание датапака и запись указателя в переменную
     
    Последнее редактирование: 3 окт 2016
    666FoX666, White Wolf, Danyas и 3 другим нравится это.
  7. CrazyHackGUT

    CrazyHackGUT Меня здесь нет

    Сообщения:
    819
    Симпатии:
    521
    Оффтоп
     
  8. White Wolf

    White Wolf [] (int _n) -> double { return (_n % 2) == 0;}); Супер-модератор

    Сообщения:
    1.186
    Симпатии:
    411
    Разве перед
    PHP:
    return true;
    не стоит ли закрыть Handle?
     
    R1KO и CrazyHackGUT нравится это.
  9. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    Да, проглядел. поправил
     
    Последнее редактирование: 3 окт 2016
  10. AlmazON

    AlmazON деревянный © yand3xmail

    Сообщения:
    4.506
    Симпатии:
    1.961
    Это "повыше" поставить - при INVALID_HANDLE ничего не закрывается.
     
  11. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    @AlmazON, кстати да. у себя всегда замечаю, у других не замечаю.
     
    CrazyHackGUT нравится это.
  12. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
  13. lexx777

    lexx777

    Сообщения:
    102
    Симпатии:
    4
    Классный плагин жаль на моей сервере не работает из-за того, что при прописывании пароля к админке через SB исчезает сама админка. :ab:
     
  14. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    Это как? У меня всё отлично работает
     
  15. lexx777

    lexx777

    Сообщения:
    102
    Симпатии:
    4
    Даю админку через SB:
    - без пароля админка работает;
    - когда даю с паролем при заходе на сервер нет админки;
    - убираю пароль у админа, админка возвращается.
    Какая то мистика непонятная.
    Аналогично если напрямую прописывать через файл admins.cfg
    Не могу понять в чем дело либо в SM 1.8.0. и css v34 , возможно здесь какая то несовместимость (аналогично было и на SM 1.7.3.).
    Либо так в чем то.
    Площадки размещения серверов разные, результат один.
     
  16. R1KO

    R1KO Супер-модератор

    Сообщения:
    5.972
    Симпатии:
    2.977
    @lexx777, так а при входе пароль он ввел?
     
  17. lexx777

    lexx777

    Сообщения:
    102
    Симпатии:
    4
    да да.
    Пароль вводится, на сервер заходишь, а админки нет.
    Пароль убираешь заново заходишь, админка есть.
    Чудеса да и только...
     
  18. Reg1oxeN

    Reg1oxeN

    Сообщения:
    83
    Симпатии:
    26
    @Danyas, у тебя классный велик :D
    Код:
    QueryClientConVar(client, sInfoVar, OnQueryClientConVar, hDataPack);
    но ты ведь не квар у клиента парсишь, а юзерскую инфу. поэтому тут лучше использовать это:
    Код:
    new String:Value[64];
    GetClientInfo(client, sInfoVar, Value, sizeof(Value));
    тут главное помнить, что если GetClientInfo вернет false, то Value не изменится.


    Код:
    public OnClientAuthorized(client, const String:sAuth[])
    // STEAM_ID_PENDING? -> OnClientPutInServer (DarkSlide)   
    // but i think OnClientPreAdminCheck better than OnClientPutInServer (Danyas)
    так почему же OnClientAuthorized? хотя на мой взгляд тут лучше бы подошел OnClientPostAdminCheck
     
    Danyas и R1KO нравится это.
  19. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    OnClientPostAdminCheck - однозначно нет, ибо с помощью несложных луя-скриптов и LSS можно будет успеть выполнить какую-то каку перед киком.

    OnClientPreAdminCheck - да.

    На счёт GetClientValue - плюсик, не подумал чет.
     
  20. Danyas

    Danyas Спасибо, браток © yand3xmail Модератор

    Сообщения:
    1.714
    Симпатии:
    451
    Пользователь Danyas обновил ресурс Admin Password Checker новой записью:

    Еще оптимизация, ty Reg1oxeN

    Узнать больше об этом обновлении...
    --- Добавлено позже ---
    я вот думаю, может стоить кваров прикрутить, и выпустить как вполне конфигурируемый плагин.
    ибо одним нужно скрывать setinfovar, другим - наоборот его показывать