PDA

Просмотр полной версии : Команда tod и Dedicated Server



SlavikSG
07.06.2007, 13:12
Помогите с проблемой. Или быть может кто совет даст? Сам найти не смог. Почему-то форум на слово "tod" ничего не находит. Возможно оно слишком короткое для поиска по форуму.

Задача предельно простая:
Запускаем выделенный сервер. Время на карте стартует, скажем, в 5 утра. Время тикает. Все летают, все довольны. В 19:00 нужно чтобы на серваке сработала команда "tod 5" и время опять вернулось на 5 утра. Вот, собственно, и все. Просто нужно, чтобы не наступала ночь.

Сервак сейчас работает под управление программы "IL2 Server Commander v.2.01". В этой программе есть великое множество настроек работы сервера, но именно такой возможности я там не нашел. Поэтому пришлось тупо и банально остановить время на карте. Поставил на 12:00. Но согласитесь, что постоянно висящее в зените солнце - это скучно. Так же не смог в этой программе отключить "Ротацию карт". МНЕ НЕ НУЖНА РОТАЦИЯ!!! У меня всего одна карта. Какой смысл ее перезапускать по таймеру или по какому-то там условию?! К тому же у меня на серваке частенько летает бот http://www.sukhoi.ru/forum/showthread.php?t=43009 который сразу отвалится, и ессно, сам на сервак не перезайдет. Так что, пусть карта пашет не останавливаясь. Онлайн у меня на серваке крохотный, и если вдруг поздно вечером срабатывает "перезапуск карты", то половина вирпилов просто и банально отключается от сервака и топает спать. Разве это есть гуд? :) Летать, так летать до утра! :) Да и вообще, неприятно ждать, перезапуск карты. Тем более что она одна и та же и другой не будет.

Оффтопик:
Попутно крохотный вопрос к спецам. Так как я не смог в "IL2 Server Commander v.2.01" отключить "Ротацию карт", (похоже она там вообще не отключается никак), то мне пришлось поставить максимальное время жизни одной карты. Это 10000 минут (166 часов или почти неделя). И на серваке, разумеется, стало постоянно выскакивать это сообщение:
[12:11:45] Chat: Server: 99975 min left before mission end. Server time 12:00:00
Которое, откровенно говоря, уже достало основательно. Можно его как-то придушить раз и на всегда?

Вообще-то, я мог бы совсем не юзать "IL2 Server Commander v.2.01". Тем более, что я совершенно ничего из него не использую. Но программа умеет работать со "Статистикой"! А это фишка, конечно и бесспорно, очень полезная и нужная.

P.S. Где-то я видел на каком-то серваке, как меняли время. Бывало летаешь там, летаешь, приближается вечер. Уже становится плохо видно. А потом - бац! И снова полдень. И тогда мне показалось, что это делалось как-то автоматически, а не вручную. Вот и вопрос. Как?!

SlavikSG
07.06.2007, 17:34
Итак... Ура товарищи!
Решение проблемы нашлось. Гибкое, красивое. Даже, не побоюсь этого слова, гениальное! Без всяких лишних прог и шаманства с бубном. И проблему эту решил легендарный (лично для меня), ныне навечно, на этом форуме, забаненый, вирпил Orion33!!! Посему, наше с ним обсуждение этого вопроса, происходило исключительно по Аське.

В общем, меньше текста! Погнали по пунктам:

1. Залезаем в корневую папку выделенного сервака

2. Находим там файл rcu (без расширения)

3. Открываем его на редактирование любым текстовым редактором и добавляем туда новую строку @file time. Сохраняем.

4. Затем в той же корневой папке сервака создаем новый текстовый файл с именем time (без расширения) и пишем туда две строки:
tod 5
timeout 120000 file time
Сохраняем.

5. Запускаем сервак

Теперь на серваке время каждые две минуты будет сбрасываться на 5 часов утра. Это все! :)

Поясняю, что тут нами было сделано.
Файл rcu является "обязательно-исполняемым" для сервака ИЛ-2 (и для клиента тоже). Когда сервак стартует, то это файл (как всем известный autoexec.bat) стартует тоже. И все команды что в нем есть, исполняются. Там нами была прописана команда @file time. И это означает, что нужно исполнить файл time. Файл time выполняется, а в нем сидят две команды. Первая - это, собственно, сама команда tod 5, которая устанавливает время на серваке на 5 часов утра. А вторая команда timeout 120000 - это пауза длительностью в две минуты, (учитывая что в одной секунде 1000 миллисекунд) и сразу следом идет команда на выполнение того же самого файла time. В итоге файл time, с сидящими в нем командами, навечно зацикливается сам на себя. Вот такой гениальный фокус! :)

Себе на серваке я поставил тайм-аут в 50 миллионов 400 тысяч (timeout 50400000). Что означает паузу длительностью в 14 часов. Сервак стартует с временем 5 утра. В 19 часов вечера время опять установится в 5 утра. Таким образом, мы без перезапуска карты, полностью пропускаем темное время суток.

Когда я тестировал это дело, то сидел в пилотской кабине бота (Б-25) и смотрел на игровые часы. Было прикольно наблюдать, как секундная стрелка часов отсчитывала ровно две минуты, и часы снова устанавливались на - ровно на 5 утра. :)

Огромное и персональное спасибо для Orion33!!!

P.S. Админам:
Разве можно банить таких хороших людей?! :)

Shtraib
07.06.2007, 18:20
Вроде есть команда заморозить время, зачем тебе морока эта.

Charger
07.06.2007, 19:14
Чтобы карту не рестартить. Сервер не перезапускать, и клиентов не скидывать. А заморозить время, насколько я понимаю, работает несколько не так.

SlavikSG
08.06.2007, 09:54
Не понял, что значит "Заморозить время"? В смысле, остановить?

Так оно и было всегда. Я же писал... На карте всегда полдень. 12 часов дня. Солнце в небе стоит как вкопанное. Жарища! На ВПП в кабине крафта духота. Ни дуновения ветерка, ни утренней, ни вечерней прохлады. А где легкий туман по утрам? А где красота вечернего заката?

Вот в том все и дело...! Очень хотелось, чтобы время на карте шло как обычно. Чтобы было утро, день, вечер. Чтобы удлинялись тени. Чтобы карта хоть немного динамично "жила". Но чтобы при всем при этом исключалось темное время суток. Бои ночью - это уже садомазохизм. Тем более не на зимней карте, а на летней, да еще среди гор. Там хоть глаз выколи, ни черта не видно. И все это нужно было сделать без перезагрузки карты.

В общем, протестировал сегодня ночью окончательно. В ТаймАут было забито число 50 400 000 - 14 часов. Все прекрасно сработало. Ровно в 19:00 по серверному времени, вновь настало утро - 05:00

Еще раз - Ура товарищи! :)

Charger
09.06.2007, 13:52
Вот-вот. Хочется и утречка раненького, и разного положения солнца в небе. И соответственно с этим различность построения маневра на подход-отход к/от цели. И чтобы без рестарта. SlavikSG tnx!