denisio / Dayz-Epoch-Linux-Server

A private hive DayZ Epoch server on Linux
36 stars 30 forks source link

Day/Night Cycle #2

Closed Curtis-VL closed 10 years ago

Curtis-VL commented 10 years ago

I'm struggling to see how this can work, at the moment, the server seems to have this sort of client side day/night cycle that is different for everyone. From what I can see from forums, the day/night cycle is edited in the hive ini, which of what I know cannot be used on Linux. Is it actually possible for real time day/night with the Linux Epoch server?

denisio commented 10 years ago

The server time is set on every restart by "restarter,pl" (cache/set_time.sqf).

sub set_time {
    my ($s, $m, $h, $day, $mon, $y) = localtime(time() - 3*3600); # shift localtime on -3 hours
    $y += 1900;
    $mon++;
    # Uncomment to disable night
    #($h, $m) = (17, 0) if ($h > 17 || ($h >= 0 && $h < 4));
    my $file = PATH.'cache/set_time.sqf';
    open  (IN, $file) or die "Can't find $file";
    print IN '["PASS",[2012,6,6,'.$h.','.$m.']]'; # Full moon 6/6/2012
    close (IN);
}
Curtis-VL commented 10 years ago

Sorry for the late reply, was out with family over Christmas...

I can see that, but like I said, the time in game is not real time, everyone in the server has there own day/night cycle that becomes day when they relog. Is that an error with one of my configuration files?

denisio commented 10 years ago

I do not know what it is.

ghost commented 10 years ago

Hello, we have the same issue. Every Player has his own day/night cycle. If i logged in, and never logged out, i see the change in time. But if i make a relog, the time is back at the time on restart.

Can you look at this issue?

Curtis-VL commented 10 years ago

Problem is fixed now mostly. The server does set time on restart, and I assume clients logging in all read what the time was at the last restart, which then causes for different joining times and different times in-game

It's a bit of a pain, but I will try to look for a way to make it update the time every half an hour or so.

Thanks for the help!