Иконка ресурса

ReAmxBhop 0.1.0

Нет прав для скачивания
Сообщения
3,389
Реакции
1,487
Помог
125 раз(а)
b0t., по коду всё хорошо, но есть несколько моментов, чтобы довести его до идеала
:smile3:

  1. Вместо feof можно сразу использовать fgets. Пример.


  2. Код:
    szData,szLeft,charsmax(szLeft),szRight,charsmax(szRight),'=');
    trim(szLeft);
    trim(szRight);
    Вместо этого можно использовать strtok2.
    Параметр trim.
    Код:
    /** * Breaks a string in two by token.
    *
    * @note Only available in 1.8.3 and above.
    *
    * @param text String to tokenize
    * @param left Buffer to store left half
    * @param llen Size of left buffer
    * @param right Buffer to store right half
    * @param rlen Size of right buffer
    * @param token Token to split by
    * @param trim Flags for trimming behavior, see above
    *
    * @return Returns position of token in string if found,
    * -1 if token was not found
    */
    native strtok2(const text[], left[], const llen, right[], const rlen, const token = ' ', const trim = 0);
    Флаги для аргумента trim из string_const.inc:
    Код:
    /** * Below are the trim flags for strtok2
    *
    * You can specify how the left and right buffers will
    * be trimmed by strtok2. LTRIM trims spaces from the
    * left side. RTRIM trims from the right side.
    *
    * The defines TRIM_INNER, TRIM_OUTER and TRIM_FULL are
    * shorthands for commonly used flag combinations.
    *
    * When the initial string is trimmed, using TRIM_INNER
    * for all subsequent strtok2 calls will ensure that left
    * and right are always trimmed from both sides.
    *
    * Examples:
    * str1[] = " This is * some text "
    * strtok2(str1, left, 24, right, 24, '*', TRIM_FULL)
    * left will be "This is", right will be "some text"
    *
    * str2[] = " Here is | an | example "
    * trim(str2)
    * strtok2(str2, left, 24, right, 24, '|', TRIM_INNER)
    * left will be "Here is", right will be "an | example"
    * strtok2(right, left, 24, right, 24, '|', TRIM_INNER)
    * left will be "an", right will be "example"
    *
    * str3[] = " One - more "
    * strtok2(str3, left, 24, right, 24, '-', TRIM_OUTER)
    * left will be "One ", right will be " more"
    *
    * str4[] = " Final . example "
    * strtok2(str4, left, 24, right, 24, '.', LTRIM_LEFT|LTRIM_RIGHT)
    * left will be "Final ", right will be "example "
    */
    #define LTRIM_LEFT (1<<0)
    #define RTRIM_LEFT (1<<1)
    #define LTRIM_RIGHT (1<<2)
    #define RTRIM_RIGHT (1<<3)
    
    #define TRIM_INNER RTRIM_LEFT|LTRIM_RIGHT
    #define TRIM_OUTER LTRIM_LEFT|RTRIM_RIGHT
    #define TRIM_FULL TRIM_OUTER|TRIM_INNER

  3. А вообще в целом, почему бы не использовать готовый инструмент от amxx для парсинга? textparse_ini.inc. Пример.

  4. Не очень удобным решением с точки зрения пользователя считаю создание конфига автоматически. Вместо того чтобы сконфигурировать
    плагин как надо, и просто установить его, пользователь должен сначала его установить, дождаться смены карты (если речь идёт о сервере с хорошим онлайном), затем сконфигурировать его, опять подождать смену карты, и затем уже плагин будет работать как ему надо.

  5. Вроде как дурным тоном считается хардкодить пути до папки configs, и предлагается использовать get_configsdir.
 
Последнее редактирование:
  • Нравится
Реакции: b0t.
Сообщения
3,389
Реакции
1,487
Помог
125 раз(а)
b0t., ну так да, можно класть готовый кфг в архив, но у тебя его не было.

Насчёт папки configs, потому что её расположение (и других стандартных директорий) пользователь может изменить. Глянь конфиг
configs/core.ini.
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу