![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Level 6 ![]() ![]() Класс: Разведчик Арфистов Характер: True Neutral Раса: Животное ![]() |
Проблема такова:
По необъяснимой причине время встает на определенной временной отметке и сдвигаться не собирается. Сам по себе вызов дм команды "dm_settime" сдвигает часы сразу на сутки, а часы за вычетом 1-2 часов(с этими нюансами пока что не было времени плотно разобраться, просто примерно так) от заданного смещения. Изменение часов с помощью скриптовых команд так же двигают сутки, оставляя час неизменным. Запуск сервера на моей локальной машине с измененым временем стартайма ранее давал положительный результат, но на сервере все снова вставало на круги своя. После моих попыток разобраться с проблемой и решить ее различными методами, смена стартайма прекратила как-то влиять на зависание времени и на моей локальной машине. На сервере ранее использовался механизм реального времени, основаный на восстановлении текущего времени из базы мускула. Теперь по некоторым причинам мускул отрублен, поэтому используется стандартная база нвн. Механизм восстановления времени отлажен, ошибок и зацикливаний в нем нет. Врубание\отрубание системы рестора времени влияния не оказывает - время стабильно виснет. Версия: 1.67 Размер модуля: 50+мб(разбить, чтоли?) Вот такие пироги... Кто встречался с подобным и как разруливал данную ситуацию? |
![]() |
![]()
Сообщение
#2
|
|
Level 6 ![]() ![]() Класс: Разведчик Арфистов Характер: True Neutral Раса: Животное ![]() |
Давным-давно решил данную проблему. Из-за отсутсвия у коммунити интереса к данной проблеме, отписаться в свое время поленился.
Теперь к проблеме. Прична - однозначна, нехватка вычислительных ресурсов + корявость системы времени, а точнее - процедуры, отвечающей за связку между гуишным компасом, который по совместительству является и часами, системой, отвечающей за обновление показаний на этом гуишном придатке и системой смены суток. Можете смеятся сколько хотите, но к этому выводу я пришел после длительных экспериментов, никак иначе ЛОГИЧНО объяснить сие явление возможным не представляется. Смена суток в нвне завязана на СМЕНЕ ПОКАЗАНИЙ игровых ГУИШНЫХ часов(компаса), а не на реальное, движковое время, которое продолжает идти своим чередом даже после прекращения обновления показаний времени на гуи. Скорее всего, процедура СМЕНЫ СУТОК срабатывает уже после изменения показаний времени на гуи, а так как в результате нехватки вычислительных ресурсов показания на гуи встают колом и НЕ ОБНОВЛЯЮТСЯ, то и время суток тоже не меняется. Итак, МЕГАХИНТ: хотите вернуть модулю его реальное время? Нет ничего проще - взять показания из движка, который продолжает отсчитывать игровое время в нормальном режиме и инициировать процедуру изменения показаний на гребаных недоразвитых гуишных часах, бегать за которым с сопливчиком игровой движок при нехватке ресурсов на более важные задачи почему-то отказывается. Механизм решения данной проблемы, был описан выше... Подтвержает эту бредятину. Изменяем показания(неважно, насколько, важно, чтобы показания изменились, система смены суток запустилась на этом ивенте, и внесла коррективы в текущее отображаемое время суток). Вот такие пироги. Цитата Да, заметил еще такую пакость. Если модуль имеет огромные размеры, то хартбит модуля срабатывает не через каждые 6 сек, а с небольшим запаздыванием (сбои начинаются после достижения размеров модуля больше 12 мб.). У меня в модуле запаздывание дошло до 5-6 секунд. Т.е. практически получилось 2 раунда. Как это отражается на АИ, становится заметно, когда модуль работает без рестарта несколько часов. Первопричина не размер модуля, а производительность хоста. Подвисание времени один из звоночков, что серверу не хватает мозгов(ну или разрабам =) ). Ну а если хост тянет, то и время не встанет. Сообщение отредактировал Existor - Mar 11 2008, 18:40 |
![]() ![]() |
Текстовая версия | Сейчас: 26th April 2025 - 15:00 |