Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

История благодарностей участнику AngelStraxa ::: Спасибо сказали: 7
Дата поста: В теме: За сообщение: Спасибо сказали:
13.2.2017, 18:22 DopBan by Mazdan
mazdan,
Цитата
По идее dopban должен теперь писать метки, если бан был выдан до их получения и потом только сами метки (типа бан выдан при проверке файлов до того как motd окно отработало).
Но если нет или если кто-то не хочет обновлять но хочет чтобы не было, то можно использовать такой плагин прослойку

Без плагина-прослойки баны при проверке файлов все равно не попадают в db_bancookie, но с прослойкой попадают. Заменил везде fb_ban на exec_delayed 5 fb_ban. Спасибо!

P.S. FB 1.3.6 скомпилирован без доработанного time.inc, так что откатился на 1.3.5.
mazdan
10.2.2017, 17:14 DopBan by Mazdan
cpt
9.2.2017, 16:48 DopBan by Mazdan
Нашел ещё один баг. Хотя наверно не баг.
txt
FB_PRINT_CONSOLE1 = -------------------------------------
FB_PRINT_CONSOLE2 = ||| Вы забанены!
FB_PRINT_CONSOLE3 = ||| Ник: \player\
FB_PRINT_CONSOLE4 = ||| SteamID: \player_steam\
FB_PRINT_CONSOLE5 = ||| Админ: \admin\
FB_PRINT_CONSOLE6 = ||| Причина: \reason\
FB_PRINT_CONSOLE7 = ||| Срок: \lenght\
FB_PRINT_CONSOLE8 = ||| Выдан: \created_time\
FB_PRINT_CONSOLE9 = ||| Истекает: \expired_time\
FB_PRINT_CONSOLE10 = ||| Заявки на разбан:
FB_PRINT_CONSOLE11 = -------------------------------------

консоль
-------------------------------------
||| Вы забанены!
||| Ник: Angel Straxa
||| SteamID: STEAM_1:0:1624661113
||| Админ: Angel Straxa
||| Причина: test
||| Срок: 1 час
||| Выдан: 09.02.2017 - 17:37:47
||| Истекает: 09.02.2017 - 18:37:47
||| Заявки на разбан:
-------------------------------------
||| Will expire: expired_time

Will expire: expired_time кажется взялась из секции [en]
mazdan
9.2.2017, 16:16 DopBan by Mazdan
Цитата(mazdan @ 9.2.2017, 13:29) *
AngelStraxa, ну, а апдейты у вас выполнились?

Видимо нет. Помню, что когда нажимал "Актуализировать БД/Update DB" страница просто замигала, как будто страница просто обновилась. Я решил, что апдейт не потребовался.

P.S. нашел причину.
Код
    echo '<form target=update/update_all.php method=POST>';

Должно быть action, а не target.

И кстати проблема с serv -1 тоже была из-за этого. Удалил таблицы, создал заново с исправленным инсталлером, и теперь там без минуса.
mazdan
5.2.2017, 11:08 Fresh Bans
Цитата(bloody.hawk @ 5.2.2017, 12:39) *
selya-zek, не правильнее будет - месяц/месяцев ?

Для количества лет я сделал так:
TIME_ELEMENT_YEAR = год (например 1 год)
TIME_ELEMENT_YEARS1 = года (например 2/3/4 года)
TIME_ELEMENT_YEARS2 = лет (например 5 и более лет)

Надо бы для месяцев так же
TIME_ELEMENT_MONTH = месяц (например 1 месяц)
TIME_ELEMENT_MONTHS1 = месяца (например на 2/3/4 месяца)
TIME_ELEMENT_MONTHS2 = месяцев (например 5 и более месяцев)

Да и с днями и часами тоже.

Хотя у себя я для множественных чисел просто написал сокращенно сек., мин., ч., дн., нед., мес.
best101
15.1.2017, 17:31 Fresh Bans
mazdan,
Цитата
нет, он оттуда берет только при компиляции, но вы можете посмотреть есть ли там месяц и сколько там в месяце дней\минут и т.п.
Если есть желание доработать - доработайте, можно будет и с доработанным потом перекомпилировать, не проблема.

Сроков "месяц" и "год" там не было. Доработал. Движок форума запрещает загрузить файл инклюда, поэтому выложу в виде кода
Код
// vim: set ts=4 sw=4 tw=99 noet:
//
// AMX Mod X, based on AMX Mod by Aleksander Naszko ("OLO").
// Copyright (C) The AMX Mod X Development Team.
//
// This software is licensed under the GNU General Public License, version 3 or higher.
// Additional exceptions apply. For full license details, see LICENSE.txt or visit:
//     https://alliedmods.net/amxmodx-license

//
// Time Specific Functions
//

#if defined _time_included
  #endinput
#endif
#define _time_included

/* Time unit types for get_time_length() */
enum
{
    timeunit_seconds = 0,
    timeunit_minutes,
    timeunit_hours,
    timeunit_days,
    timeunit_weeks,
    timeunit_months,
    timeunit_years,
};

// seconds are in each time unit
#define SECONDS_IN_MINUTE 60
#define SECONDS_IN_HOUR   3600
#define SECONDS_IN_DAY    86400
#define SECONDS_IN_WEEK   604800
#define SECONDS_IN_MONTH  2592000
#define SECONDS_IN_YEAR   31536000

/* Stock by Brad */
stock get_time_length(id, unitCnt, type, output[], outputLen)
{
// IMPORTANT:     You must add register_dictionary("time.txt") in plugin_init()

// id:          The player whose language the length should be translated to (or 0 for server language).
// unitCnt:     The number of time units you want translated into verbose text.
// type:        The type of unit (i.e. seconds, minutes, hours, days, weeks) that you are passing in.
// output:      The variable you want the verbose text to be placed in.
// outputLen:    The length of the output variable.

    if (unitCnt > 0)
    {
        // determine the number of each time unit there are
        new yearCnt = 0, monthCnt = 0, weekCnt = 0, dayCnt = 0, hourCnt = 0, minuteCnt = 0, secondCnt = 0;

        switch (type)
        {
            case timeunit_seconds: secondCnt = unitCnt;
            case timeunit_minutes: secondCnt = unitCnt * SECONDS_IN_MINUTE;
            case timeunit_hours:   secondCnt = unitCnt * SECONDS_IN_HOUR;
            case timeunit_days:    secondCnt = unitCnt * SECONDS_IN_DAY;
            case timeunit_weeks:   secondCnt = unitCnt * SECONDS_IN_WEEK;
            case timeunit_months:  secondCnt = unitCnt * SECONDS_IN_MONTH;
            case timeunit_years:   secondCnt = unitCnt * SECONDS_IN_YEAR;
        }

        yearCnt = secondCnt / SECONDS_IN_YEAR;
        secondCnt -= (yearCnt * SECONDS_IN_YEAR);

        monthCnt = secondCnt / SECONDS_IN_MONTH;
        secondCnt -= (monthCnt * SECONDS_IN_MONTH);

        weekCnt = secondCnt / SECONDS_IN_WEEK;
        secondCnt -= (weekCnt * SECONDS_IN_WEEK);

        dayCnt = secondCnt / SECONDS_IN_DAY;
        secondCnt -= (dayCnt * SECONDS_IN_DAY);

        hourCnt = secondCnt / SECONDS_IN_HOUR;
        secondCnt -= (hourCnt * SECONDS_IN_HOUR);

        minuteCnt = secondCnt / SECONDS_IN_MINUTE;
        secondCnt -= (minuteCnt * SECONDS_IN_MINUTE);

        // translate the unit counts into verbose text
        new maxElementIdx = -1;
        new timeElement[7][33];

        if (yearCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", yearCnt, id, (yearCnt == 1) ? "TIME_ELEMENT_YEAR" : ((yearCnt < 5) ? "TIME_ELEMENT_YEARS1" : "TIME_ELEMENT_YEARS2"));
        if (monthCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", monthCnt, id, (monthCnt == 1) ? "TIME_ELEMENT_MONTH" : "TIME_ELEMENT_MONTHS");
        if (weekCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", weekCnt, id, (weekCnt == 1) ? "TIME_ELEMENT_WEEK" : "TIME_ELEMENT_WEEKS");
        if (dayCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", dayCnt, id, (dayCnt == 1) ? "TIME_ELEMENT_DAY" : "TIME_ELEMENT_DAYS");
        if (hourCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", hourCnt, id, (hourCnt == 1) ? "TIME_ELEMENT_HOUR" : "TIME_ELEMENT_HOURS");
        if (minuteCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", minuteCnt, id, (minuteCnt == 1) ? "TIME_ELEMENT_MINUTE" : "TIME_ELEMENT_MINUTES");
        if (secondCnt > 0)
            format(timeElement[++maxElementIdx], 32, "%i %L", secondCnt, id, (secondCnt == 1) ? "TIME_ELEMENT_SECOND" : "TIME_ELEMENT_SECONDS");

        switch(maxElementIdx)
        {
            case 0: format(output, outputLen, "%s", timeElement[0]);
            case 1: format(output, outputLen, "%s %L %s", timeElement[0], id, "TIME_ELEMENT_AND", timeElement[1]);
            case 2: format(output, outputLen, "%s, %s %L %s", timeElement[0], timeElement[1], id, "TIME_ELEMENT_AND", timeElement[2]);
            case 3: format(output, outputLen, "%s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], id, "TIME_ELEMENT_AND", timeElement[3]);
            case 4: format(output, outputLen, "%s, %s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], timeElement[3], id, "TIME_ELEMENT_AND", timeElement[4]);
            case 5: format(output, outputLen, "%s, %s, %s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], timeElement[3], timeElement[4], id, "TIME_ELEMENT_AND", timeElement[5]);
            case 6: format(output, outputLen, "%s, %s, %s, %s, %s, %s %L %s", timeElement[0], timeElement[1], timeElement[2], timeElement[3], timeElement[4], timeElement[5], id, "TIME_ELEMENT_AND", timeElement[6]);
        }
    }
}
mazdan