Изменение плагина CSS Bank / Parachute

Тема в разделе "Запросы", создана пользователем Eseth, 15 май 2013.

  1. Eseth

    Eseth

    Сообщения:
    75
    Симпатии:
    8
    Всем доброго времени суток, хотел бы именить плагины CSS Bank и SM Parachute таким образом чтобы ими могли пользоваться только игроки чьи SteamID прописаны в whitelist. Сделал бы сам, но знаний в Source Pawn мне не хватает, было бы хорошо выучить хотябы основы, ну а до тех пор прошу помощи от знатоков.

    Заранее спасибо!


    P.S. Думаю многим эта идеея понравится, особенно тем кто например хочет дать зарегистрированным на сайте / подписчикам Steam групп сервера дополнительные преймущества чтобы другие игроки тоже регистрировались на сайтах. :)
     
  2. spore

    spore SubPlay.ru

    Сообщения:
    640
    Симпатии:
    148
    Можно через флаг сделать.
     
  3. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    PHP:
    #include <sourcemod>

    new Handle:Array = INVALID_HANDLE;

    new 
    ArraySize 0;

    public 
    OnPluginStart()
    {
        Array = 
    CreateArray(2550);
    }

    public 
    OnMapStart()
    {
        new 
    Handle:file OpenFile("addons/sourcemod/configs/whitelist.cfg""r");

        if (
    file == INVALID_HANDLE
        { 
            
    LogError("Не удалось открыть файл");
        }
        else
        {
            
    decl String:line[150];
            while (!
    IsEndOfFile(file) && ReadFileLine(filelinesizeof(line)))
            {
                
    TrimString(line);
                
    PushArrayString(Array, line);
            }

            
    ArraySize GetArraySize(Array);

            
    CloseHandle(file);
        }
    }

    Остается это только добавить в код
    PHP:
    #include <sourcemod>

    new bool:Protect[MAXPLAYERS 1] = {false, ...};

    public 
    OnPluginStart()
    {
        
    RegConsoleCmd("test"CallBack);
    }

    public 
    OnClientPutInServer(client)
    {
        if (
    Protect[client])
        {
            
    Protect[client] = false;
        }
    }

    public 
    Action:CallBack(clientargs)
    {
        if (
    client 0)
        {
            
    // Получаем SteamID
            
    decl String:SteamID[32], String:Line[32];
            
    GetClientAuthString(clientSteamIDsizeof(SteamID));

            
    // Циклом получаем все SteamID из списка
            
    new 0;
            while (
    ArraySize && !Protect[client])
            {
                
    // Если строка найдена, устаналиваем переменную в значение true и останаливаем цикл
                
    if (strcmp(SteamIDGetArrayString(Array, iLinesizeof(Line)), false) == 0)
                {
                    
    Protect[client] = true;
                }

                
    i++;
            }

            
    // Если игрок в списке найден, разрешаем пользоваться командой
            
    if (Protect[client])
            {
                
    // Остальной код
            
    }
        }

        return 
    Plugin_Handled;
    }

    255 - размер ячейки
     
    Последнее редактирование: 15 май 2013
    Eseth нравится это.
  4. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    ты тут промазал
     
    Eseth и The End Is Near... нравится это.
  5. Eseth

    Eseth

    Сообщения:
    75
    Симпатии:
    8
    The End Is Near..., Большое спасибо за труд! Надеюсь это будет полезно и многим другим пользователям. ;)
     
    Последнее редактирование: 15 май 2013
  6. FrozDark

    FrozDark Команда сайта HLMod Модератор

    Сообщения:
    1.761
    Симпатии:
    1.915
    всё равно промазал

    PHP:
        if (client 0)
        {
            
    decl String:SteamID[32];
            if (
    GetClientAuthString(clientSteamIDsizeof(SteamID)) && FindStringInArray(Array, SteamID) != -1)
            {
                
    // Игрок найден
            
    }
        }
     
    Eseth нравится это.
  7. Eseth

    Eseth

    Сообщения:
    75
    Симпатии:
    8
    FrozDark, Я уже запутался. :mda: Не знаю что удалять а что оставлять... :)


    Может тупой вопрос, но что подразумивается под "Остальной код"?
     
    Последнее редактирование: 15 май 2013
  8. Eseth

    Eseth

    Сообщения:
    75
    Симпатии:
    8
    Вроде сделал всё, но при компиляции выдаёт ошибки:

    //// csgobank.sp
    // csgobank/commands.sp(239) : warning 217: loose indentation
    // csgobank/commands.sp(239) : error 029: invalid expression, assumed zero
    // csgobank/commands.sp(239) : warning 221: label name "Action" shadows tag name
    // csgobank/commands.sp(239) : error 017: undefined symbol "CallBack"
    // csgobank/commands.sp(249) : error 035: argument type mismatch (argument 2)
    // csgobank/commands.sp(253) : error 029: invalid expression, assumed zero
    // csgobank/commands.sp(255) : error 001: expected token: ",", but found ";"
    // csgobank/commands.sp(268) : warning 217: loose indentation
    // csgobank/commands.sp(270) : warning 225: unreachable code
    // csgobank/commands.sp(270) : warning 217: loose indentation
    // csgobank/commands.sp(239) : warning 203: symbol is never used: "Action"
    // F:\Servers\Plugins Compilation\Sourcemod\addons\sourcemod\scripting\csgobank.sp(324) : error 021: symbol already defined: "OnPluginStart"
    // F:\Servers\Plugins Compilation\Sourcemod\addons\sourcemod\scripting\csgobank.sp(325) : error 017: undefined symbol "CallBack"
    // F:\Servers\Plugins Compilation\Sourcemod\addons\sourcemod\scripting\scripting\csgobank.sp(337) : e
    rror 021: symbol already defined: "OnPluginStart"
    // F:\Servers\Plugins Compilation\Sourcemod\addons\sourcemod\scripting\scripting\csgobank.sp(411) : error 021: symbol already defined: "OnMapStart"
    //
    // 9 Errors.
    //
    // Compilation Time: 0,37 sec
    // ----------------------------------------

    Press enter to exit ...

    Может я что-то не туда воткнул... Кто может выложить готовый исходник для CSS Bank, а то мучаюсь зря. :(
     

    Вложения:

    • cssbank.sp
      Размер файла:
      31,7 КБ
      Просмотров:
      4
    • commands.sp
      Размер файла:
      8,8 КБ
      Просмотров:
      1
    • database.sp
      Размер файла:
      15,1 КБ
      Просмотров:
      1
    • menus.sp
      Размер файла:
      17,8 КБ
      Просмотров:
      0
    • money.sp
      Размер файла:
      10,1 КБ
      Просмотров:
      1
  9. Eseth

    Eseth

    Сообщения:
    75
    Симпатии:
    8
    Большую часть ошибок удалось исправить. Осталась одна ошибка и одно предупреждение:

    bank/commands.sp(63) : error 035: argument type mismatch (argument 2)
    bank/commands.sp(73) : warning 217: loose indentation

    Помогите доделать/исправить, пожалуйста.



    P.S. Прикрепил исходники с которыми работал. Первый - исходник плагина, второй - include commands.sp
     

    Вложения:

    • bank.sp
      Размер файла:
      23,9 КБ
      Просмотров:
      6
    • commands.sp
      Размер файла:
      9,3 КБ
      Просмотров:
      4
  10. The End Is Near...

    The End Is Near... Russian Roulette

    Сообщения:
    893
    Симпатии:
    659
    Совсем не то
     
  11. Eseth

    Eseth

    Сообщения:
    75
    Симпатии:
    8
    The End Is Near..., Я так и знал. Хотябы попробовал. Дело это совсем новое для меня поэтому, надеюсь, имею право на ошибки. ;)
     
  12. R1KO

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

    Сообщения:
    5.997
    Симпатии:
    2.991
    Eseth, на такие ошибки "warning 217: loose indentation" не обращай внимания.