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 4
  • Thanks 1
Link to comment
Share on other sites

  • 3 months later...

Есть небольшая программа, которая упрощает весь процесс

Please Log in or Register to see this: Spoiler

Please Log in or Register to see this: Attachment

  • Like 1
Link to comment
Share on other sites

  • 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

@ProHack Понятно одно, или это криво описано или это не работает, третьего точно не дано. (хотя, может дело не в бобине)

Link to comment
Share on other sites

@Denic1979 напишите свою значит версию как вы видите суточное ускорение при 4 часах игрового времени.

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

@Denic1979 Если исходить из расчетов автора, то:

Мне нужно что-бы игровые сутки проходили за 3 реальных часа, соответственно:

Please Log in or Register to see this: Code

 

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

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

Please Log in or Register to see this: Code

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

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

@Armagedon У меня перезагрузка сервера не через 4 а через 3 часа. Сколько у вас длится ночь на сервере реального времени? По факту.

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 Эти расчеты были сделаны Denic1979 с которым вы дискутировали на эту тему )). По мне единственно верный метод.

Link to comment
Share on other sites

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

@BceOk ...."времена года......не влияют"...то есть в 3.50 ночи 12.20 темно так же как 3.50 6.20?
 

Link to comment
Share on other sites

@don XyaH 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...

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

Link to comment
Share on other sites

  • 4 months later...

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...