Таймер очистки сервера

изображение.png

На самом нижнем уровне памятника «Ядерная ракетная шахта» вы можете заметить ядерную боеголовку, подключённую к небольшому ноутбуку с таймером. Это не случайный таймер обратного отсчёта — на самом деле этот таймер с надписью «ТЕСТ НА ВЫЖИВАНИЕ ПОПУЛЯЦИИ» отсчитывает время до следующей перезагрузки сервера. Это также определяет, когда сервер должен начать выполнение событий эндгейма, поэтому важно синхронизировать этот таймер с расписанием перезагрузки вашего сервера.

События эндшпиля

В последний день (за 24 часа до) каждого цикла wipe на сервере запускаются два события в конце игры. (В течение часа, и это можно изменить с помощью eventschedulewipeoffset.event_hours_before_wipe переменной. Установите значение 0, чтобы отключить их.)

F-15E Strike Eagle приближается

Самолёты F-15E «Страйк Игл» начнут наблюдение за островом. Вы услышите агрессивный звук пролетающего мимо самолёта. Это событие не оказывает прямого влияния на игровой процесс. Поскольку это событие, вы можете запустить его в любое время с помощью spawn f15e команды.

Road Bradleys

Количество учёных на острове увеличится, а бронетранспортёры «Брэдли» начнут перемещаться по случайным дорогам, атакуя всё, что встретят. Количество бронетранспортёров зависит от размера вашей карты: WorldSize / 1000 * 2. Вы можете вручную создать бронетранспортёр «Брэдли», посмотрев на дорогу и используя spawnroadbradley команду. Он остаётся на той же дороге, перемещаясь вперёд и назад.

Как работает таймер?

Конфигурация по умолчанию соответствует принудительной очистке, поэтому для большинства пользователей она не нуждается в каких-либо изменениях. Убедитесь, что время правильно установлено на ваших серверах!

Таймер рассчитывается с использованием тега очистки сервера (monthly/biweekly/weekly), wipetimer.wipeTimezonewipetimer.wipeDayofWeek и wipetimer.wipeHourofDay конваров, однако вы можете изменить их с помощью wipetimer.wipeUnixTimestampOverride или wipetimer.wipecronoverride конваров.

Это означает, что у вас есть три «формата» расписания — ежемесячноееженедельное и ежедневное, а по умолчанию:

  • Ежемесячно: в первый четверг каждого месяца в 19:00 (по лондонскому времени)
  • Еженедельно: каждый четверг в 19:00 по лондонскому времени)
  • Дважды в неделю: в первый и третий четверг каждого месяца в 19:00 (по лондонскому времени), но в месяцах с 5 неделями 3-недельный перерыв делится на 2+1 неделю

Если вы измените настройки на среду в 13:00, а ваш сервер работает раз в неделю, то таймер будет срабатывать 00:00:00:00 каждую неделю, ровно в 13:00 (по лондонскому времени). Если ваш сервер работает с более короткими циклами очистки (например, раз в 3 дня), вам нужно будет использовать переменные wipeUnixTimestampOverride или wipeCronOverride.

Изменение дня недели - wipeDayofWeek <0-6>

Значение День недели Примечания
0 Воскресенье  
1 Понедельник  
2 Вторник  
3 Среда  
4 Четверг (по умолчанию)
5 Пятница  
6 Суббота  

Изменение времени очистки - wipeHourofDay <0-23>

По умолчанию: 19 — вы можете изменить это значение, чтобы указать время, в которое ваш сервер будет очищаться. Время указывается в 24-часовом формате. Если вы введете wipeHourofDay 14.5, то это будет интерпретировано как 14:30.

Изменение часового пояса - wipeTimezone

По умолчанию: GMT (ID=Europe/London, IANA=Europe/London) — вы можете изменить это значение, чтобы указать часовой пояс вашего сервера, см. Поддерживаемые часовые пояса

Указание точной даты очистки

Cronos

Теперь внутри приложения используются выражения cron с помощью библиотеки Cronos. При желании вы можете использовать пользовательское выражение cron для таймера очистки, установив переменную wipeCronOverride. Анализатор Cronos

UnixTimeStampOverride

Вы можете установить точную дату и время очистки, используя метку времени UNIX с помощью этого параметра сервера: wipeUnixTimestampOverride <timestamp>. Имейте в виду, что этот параметр переопределит все остальные настройки таймера очистки. Конвертер эпох

Сервер проигнорирует переопределение, если указанная временная метка уже прошла. В этом случае он вернется к использованию ваших параметров расписания очистки.

Примеры

Вот несколько примеров, чтобы увидеть, как это работает:

Метка частоты очистки Конфигурация Объяснение
Ежемесячно +wipeDayofWeek 4 +wipeHourofDay 14.5 Сервер будет очищаться каждый первый четверг месяца в 14:30.
Ежемесячно +wipeDayofWeek 1 +wipeHourofDay 9 Очистка сервера производится каждый первый понедельник месяца в 9 утра.
Еженедельно +wipeDayofWeek 4 +wipeHourofDay 18 Очистка сервера производится каждый четверг в 18:00.
Раз в две недели +wipeDayofWeek 0 +wipeHourofDay 23 Очистка сервера будет производиться каждое второе воскресенье в 11 часов вечера.
Раз в две недели +wipeDayofWeek 4 +wipeHourofDay 19 Очистка сервера будет производиться каждый второй четверг в 19:00.
  +wipeUnixTimestampOverride 1683622506 Сервер будет удалён ровно 9 мая 2023 года в 08:55:06 (GMT+0)
  +wipeUnixTimestampOverride 1686766934 Сервер будет удалён ровно 14 июня 2023 года в 18:22:14 (GMT+0)
  +wipeCronOverride "0 14 1-7,15-21 * 4" Сервер будет очищен первым и третьим в четверг в 14:00

PrintWipe

Чтобы проверить, правильно ли вы настроили таймер, вы можете использовать PrintWipe команду.

Пример вывода

Frequency: Monthly Timezone: GMT (ID=Europe/London, IANA=Europe/London) Wipe day of week: Thursday Wipe hour: 19 Test time: 2023-06-01T20:56:53.2858450+00:00 Wipe time: 2023-07-06T19:00:00.0000000+01:00 Time until wipe: 34:21:03:06.714155 Ticks until wipe: 30133867141550 Cron: 0 19 * * 4#1 Next 10 occurrences: 0. 2023-07-06T19:00:00.0000000+01:00 1. 2023-08-03T19:00:00.0000000+01:00 2. 2023-09-07T19:00:00.0000000+01:00 3. 2023-10-05T19:00:00.0000000+01:00 4. 2023-11-02T19:00:00.0000000+00:00 5. 2023-12-07T19:00:00.0000000+00:00 6. 2024-01-04T19:00:00.0000000+00:00 7. 2024-02-01T19:00:00.0000000+00:00 8. 2024-03-07T19:00:00.0000000+00:00 9. 2024-04-04T19:00:00.0000000+01:00

Объяснено

Здесь показано, как в данный момент настроен ваш таймер.

  • Частота — это настройка расписания очистки в вашем сервере-браузере-тегах
  • Тестовый режим (текущее время + daysToAddTest + hoursToAddTest конвары. По умолчанию оба конвара равны 0, поэтому, если вы их не меняли, в этой строке будет отображаться текущее местное время.
  • Время очистки (при этом будет выведена точная дата расчетного времени очистки)
  • Время до очистки: дни: часы: минуты: секунды.
  • Количество тиков до очистки: возвращает количество оставшихся тиков до очистки. Тик — это наименьшая единица времени, равная 100 наносекундам.
  • Cron: выражение cron, используемое вашим сервером, и следующие 10 дат, которые ему соответствуют

Разное

Эти переменные, по-видимому, не имеют значения, если вы не разработчик. Возможно, они будут удалены/изменены в будущем. До сих пор они использовались только для вывода информации PrintWipe; Время тестирования

daysToAddTest <значение>

По умолчанию установлено значение 0.

hoursToAddTest <значение>

По умолчанию установлено значение 0.

Код

Код таймера очистки доступен в WipeTimer.cs. Вы можете получить к нему доступ через выделенный сервер Rust Assembly-CSharp.dll.

Если вы не знаете время и часовой пояс вашего сервера, вы можете добавить это в один из своих плагинов Oxide. Найдите плагин с OnServerInitialized() и добавьте две строки в начало. При перезагрузке плагина информация будет выводиться в консоль и в файл журнала Oxide.

TimeZone curTimeZone = TimeZone.CurrentTimeZone; Выводит ($"время сейчас: {DateTime.Now.ToString("ч:мм:сс tt")} — часовой пояс: {curTimeZone.StandardName}");