Иконка ресурса
Версия Дата выпуска Скачивания Оценка  
1.0.3 119 0.00 звёзд 0 оценок Скачать
1.0.2 39 0.00 звёзд 0 оценок Скачать
1.0.1 43 0.00 звёзд 0 оценок Скачать
1.0.0 46 0.00 звёзд 0 оценок Скачать
Циклов для 4294967295 было: 73005, стало: 49759. Было бы круче добавлять сначала годы/месяцы, сначала так и хотел, но всплывали недочеты. Это наверно последняя ускоряющая правка, хотя через какое-то время подумаю еще над функцией, или может кто-нибудь предложит лучшее решение.
В 1.0.1 FormatUTime работало неверно на Linux.
Изменил принцип работы. Тесты показали что всё ок.
C-подобный:
native bool FormatUTime(char[] buffer, int maxlength, const char[] format, int stamp=0);

C++:
public void OnPluginStart()
{
    char s[128];

    // Было:
    FormatTime(s, sizeof(s), "%d.%m.%Y - %H:%M:%S", 4294967295);
    PrintToServer(s); // 27.01.2021 - 05:35:06 (I'm not sure, I'm begging on my knees forgive me.)

    // Стало:
    FormatUTime(s, sizeof(s), "%d.%m.%Y - %H:%M:%S", 4294967295);
    PrintToServer(s); // 07.02.2106 - 08:28:15 (I'm sure!)

    //

    // Было:
    FormatTime(s, sizeof(s), "%d.%m.%Y - %H:%M:%S", 2147483648);
    // Тупо краш плага, т.к. число отрицательное (-1 является исключением), с ошибкой:
    // [SM] Exception reported: Invalid time format or buffer too small (or I'm stupid and forgot to convert stamp in unsigned int)

    // Стало:
    FormatUTime(s, sizeof(s), "%d.%m.%Y - %H:%M:%S", 2147483648);
    PrintToServer(s); // 19.01.2038 - 05:14:08
}

Если хотите оставаться на стандартном FormatTime, то нужна функция вроде:

C++:
stock void FormatTime_(char[] buffer, int maxlength, const char[] format, int stamp=-1) {
    FormatTime(buffer, maxlength, format, stamp >= -1 ? stamp : 2147483647); // И наслаждайтесь int ограничением
}

---
Похоже FormatUTime на Linux работает неправильно, если найду решение, подправлю.
Сверху Снизу