Jump to content
DAYZ-CODE.RU - Создай свой игровой сервер

Настройки скорости времени суток (день / ночь)


Vostok
 Share

Recommended Posts

Регулируем время суток на вашем сервере:
 

Please Log in or Register to see this: Code


Пример как выглядит временной суточный интервал в игре, за 4 часа реального игрового времени:
 

Please Log in or Register to see this: Code

 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

  • 3 months later...
  • 4 weeks later...

Мне пример очень нравится. и тут же в описании напротив serverTimeAcceleration " если ставим 6, например, то за 4 часа пройдет 1 полный игровой день с ночью и днем"

И по факту в serverTimeAcceleration=4; (как то совсем не логично). Нет логики господа. Или я чего о недопонимаю. Может я ошибаюсь, но serverTimeAcceleration это не день с ночью, а только день, если исходить из этого то можно контролировать время длительности дня. Так же в расчетах полная ересь (извиняюсь за выражение) сами себе противоречат.

Link to comment
Share on other sites

@Denic1979 Ну так в чем логики то нет когда здесь указано что за 4 часа игрового времени в самой игре! проходят сутки! То есть день + ночь. То есть 3 с копейками идет дневное время в этих (4 часах) и около 1 часа идет (сумерки/ночь/и цепляет не много рассвета) далее идет рестарт сервера и все по новой. В чем у тебя логики то нет.

Link to comment
Share on other sites

@ProHack Исходя из расчетов (описанных автором)

Please Log in or Register to see this: Code

 

Please Log in or Register to see this: Code


Но обратите внимание на комментарий к serverTimeAcceleration даже комментарий противоречит установленному значению

Please Log in or Register to see this: Code

 

Link to comment
Share on other sites

@Denic1979 Мне ночь не интересна, мне важно дневное значение, т.к. ночью у меня все спят 🙂 (после перезагрузки сервера наступает 6-00) при 3 часовом рестарте у меня значение день-5,5 ночь 2,5 день (на память) день длится ровно 2ч20м (при рестартах 3 часа) получается в реале ночь 40 минут(но она вся не проходит). Все было хорошо и никого не беспокоило, пока я сам не задался этим вопросом (найти истину, чтоб ее нехорошо) 🙂 . Сейчас немного разбираюсь, но считать буду от коэффициента день ночь (что бы упростить весь процесс и контролироват) напри мер хочу что бы ночь была 5 часов в сутки соответственно 5/24 ≈ 0,201, в теме исход сделан 9/24 = 0,375 (то есть соотношение ночи ко дню) дальше буду соображать как это все увязать

@Armagedon По вопросу, я его никак не вижу, если бы я видел как это и понимал, я бы не читал эти темы. Попробую сам разобраться.

Link to comment
Share on other sites

А вот в примере, у автора более менее похожие значения для 4 реальных часов (только если не обращать внимание на комментарий к serverTimeAcceleration=4;) но эти значения не имею ничего общего с описанным автором расчетами.

serverTimeAcceleration=4;         // Ускорение времени (значения 0-24)        если ставим 6, например, то за 4 часа пройдет 1 полный игровой день с ночью и днем
serverNightTimeAcceleration=6;  // Дополнительное ускорение времени ночью (значения 0.1-64). Оно добавляет ускорение времени к serverTimeAcceleration.

Идем от обратного:

У автора в примере стоит serverTimeAcceleration=4; 

решение:

4 (кооф ускорения дня) х 4 (реальных игровых часа указанных в примере автора) получаем 16 (как раз то, реальное время, за которое проходит один реальный день, без ночи) соответственно никакого отношения к общим суткам этот коэффициент не имеет, если исходить из логики расчета примера автора) .

Я не кого не хочу оскорбить, просто пытаюсь понять алгоритм работы дня и ночи.

 

 

Link to comment
Share on other sites

@Denic1979 то что автор написал взято с официального вики Богемии, получается вы умный, а в Богемии тупые ребята ) возможно не совсем точный перевод с Английского. 

Edited by Armagedon
Link to comment
Share on other sites

41 минуту назад, Armagedon сказал:

@Denic1979 то что автор написал взято с официального вики Богемии, получается вы умный, а в Богемии тупые ребята ) возможно не совсем точный перевод с Английского. 

Вот это с богемии с перводом.

Please Log in or Register to see this: Code

Я уже разобрался, теперь в голове собираю все в кучу и попытаюсь сделать таблицу ехель расчета дня и ночи.

Параметр  serverNightTimeAcceleration= по умолчанию умножается на 2, допустим, вы поставили serverNightTimeAcceleration=10 (ночное время будет идти в 20 раз быстрее). Я еще раз повторюсь, я не кого не хочу обидеть , я пытаюсь разобраться и то что в теме не правильно показан расчет, это уже точно. На данный момент у меня секунда в секунду сохраняется соотношение реального и игрового времени на лкальном сервере 7,5 секунд  реального времени,  ровно 1 минуте игрового времени. Жду ночи.

Edited by Denic1979
Link to comment
Share on other sites

@Denic1979 странно почему у вас сутки игрового времени не идут за 4 часа игрового времени в игре по этим расчетам что даны от автора у меня так же стоит и все работает нормально. Ну пробуйте может вы какого другого результата добиваетесь. Выше автором просто приведён 1 из по примеров как можно сделать. 

Link to comment
Share on other sites

@Denic1979 Реального времени у меня длится ночь минут 40 остальные минут 20 это закат и рассвет далее рестарт в этот час и входится ночное время вместе с закатом и рассветом. Остальные 3 часа дневное время суток с сменой суточного времени "дневного"

Link to comment
Share on other sites

  • 2 months later...

@Armagedon если ваш рестарт каждые 3 часа реального времени, получается день длится 2 часа, ночь 40 минут, и закат с рассветом в общем 20, правильно?

тогда какие значения вы выставили, если в действительности так работает у вас

Please Log in or Register to see this: Code

 

Link to comment
Share on other sites

@koshka

В DeyZ  все просто, игровые сутки разделены на 2 части, 12 часов дня и 12 часов ночи (ночь с закатами и рассветами) функция serverTimeAcceleration отвечает за ускорение 12 часов игрового дня, а функция serverNightTimeAcceleration отвечает за ускорение вторых 12 часов ночного игрового времени, только с той разницей, что по умолчанию значение serverNightTimeAcceleration (ускорение ночи) умножается на значение serverTimeAcceleration (это очевидно, т.к. в реальности продолжительность ночи грубо говоря 8 часов, т.е. 1/3 от суток и уножение ночного ускорения на дневное выполняет это условие). По факту, ночное ускорение времени начинается в 18-00 игрового времени и заканчивается в 6-00 игрового времени (может там дает какое то значение время года, не проверял, но даже если оно и есть по сути оно не важно и будет максимум выражаться в минутах). Получается вы можете настроить продолжительность дня и ночи так, как вам удобно. 

Теперь к расчетам, начнем со всеми любимыми 4 часами, допустим мы хотим что бы день был 3 часа, а ночь 1 час. Считаем:

Всегда начинаем считать день, т.к  serverNightTimeAcceleration по дефолту умножается уже на известное число, итак.

Так как у нас игровые сутки разделены на 2 части 12 часов дня и 12 часов ночи (с закатами и рассветами) то берем наши 12 часов от дневных игровых суток и делим их на 3 часа реального времени ( это то время, за которое у нас пройдет полный игровой день (без ночи) ) 12/3=4 вот мы и получили serverTimeAcceleration и он равен 4 (serverTimeAcceleration = 4), идем дальше и считаем множитель ночи, она у нас должна быть 1 (реальный час), делим вторые (ночные)  12 часов  на 1 час того времени (ночного) которое мы хотим получить, получаем 12 (что бы ночь прошла за час, она должна идти в 12 раз быстрее) соответственно 12/1=12 но тут вспоминаем то, что у нас ночной множитель, который  умножается на дневной,  т.к. мы идем расчетом от обратного, на нужно ночное ускорение 12 поделить на дневное ускорение 4 и мы получим 3 итого serverNightTimeAcceleration = 3.

Пройдемся просто по цифрам 12/3=4 (день); 12/1=12/4=3 (ночь)

Теперь посчитаем соотношение 2 часа дневного времени и 2 часа ночного времени: 12/2=6 (serverTimeAcceleration = 6) 12/2=6/6=1 (serverNightTimeAcceleration = 1). Надеюсь что вы поняли мои расчеты, если не так, то прикрепляю таблицу ехель в ней нужно вставить только нужные вам значение, остальное она сама все посчитает, надеюсь что она вам поможет.

PS1:На всякий случай, все тесты делались с "serverTime="1979/10/22/06/00";"

Edited by Armagedon
  • Thanks 2
Link to comment
Share on other sites

@Armagedon  с вашими цифрами

Please Log in or Register to see this: Code

продолжительность дня = 180 минут (3 часа)

продолжительно ночи = 60 минут (1 час)

// как итог ваш расчёт 24 часа игрового времени пройдут за 4 часа реального времени

upd: я поняла как рассчитывать, долго не могла понять по какой формуле

Link to comment
Share on other sites

  • 1 month later...

Armagedon

Основное пропустили.

PS2: В serverDZ.cfg на оф сайте богемии, разделитель множителя с десятичным значением показана запятая, это не так, ставьте точку. Если вы этого не учтете, то движок возьмет целое число, т.е. если вы поставите serverTimeAcceleration = 4,8 (вместо точки запятую) то движок будет считать не 4.8 и не будет округлять до 5 а возьмёт целое число 4 и по факту дневное ускорение у вас будет 4 а не 4.8. С точкой все отлично, движок видит и понимает десятичное значение. Правильно serverTimeAcceleration = 4.8 
09.01.2023 г.
Решил добить до конца вопрос и развенчиваю последний миф, времена года никак не влияют на продолжительность дней и ночей, оно всегда равно 12 часов день и 12 часов ночь.
Изменено 9 января пользователем Denis1979

Edited by BceOk
  • Thanks 1
Link to comment
Share on other sites

On 12/11/2022 at 10:25 AM, don XyaH said:

There is a small program that simplifies the whole process

Please Log in or Register to see this: Spoiler

Please Log in or Register to see this: Attachment

Thank you mate, was looking for a Calculator to set my times. I was trying up to 2 days to understand how this works. Tried ChatGPT to help me out but no way haha 

  • Haha 1
Link to comment
Share on other sites

  • 2 months later...
В 06.01.2023 в 18:31, Denic1979 сказал:

Вот это с богемии с перводом.

Please Log in or Register to see this: Code

Я уже разобрался, теперь в голове собираю все в кучу и попытаюсь сделать таблицу ехель расчета дня и ночи.

Параметр  serverNightTimeAcceleration= по умолчанию умножается на 2, допустим, вы поставили serverNightTimeAcceleration=10 (ночное время будет идти в 20 раз быстрее). Я еще раз повторюсь, я не кого не хочу обидеть , я пытаюсь разобраться и то что в теме не правильно показан расчет, это уже точно. На данный момент у меня секунда в секунду сохраняется соотношение реального и игрового времени на лкальном сервере 7,5 секунд  реального времени,  ровно 1 минуте игрового времени. Жду ночи.

привет , не могли бы мне составить день ночь за три часа что бы ночь проходила за 20 мин пожалуйста, заранее багодарю

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...