Здравствуйте, гость Вход | Регистрация
Наши новости:
|
| Дата поста: | В теме: | За сообщение: | Спасибо сказали: | ||
|---|---|---|---|---|---|
| 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 | Видимо нет. Помню, что когда нажимал "Актуализировать БД/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 | Для количества лет я сделал так: 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 | ||