I've been looking at this some more. It appears that when a static zone
loads, it makes the call to GetTimeSync before it is actually connected
to the world server, hence the check for worldserver.connected fails.
Angelox, try this. In zone/worldserver.cpp void WorldServer::OnConnected():
Around line 124, After:
Code:
if (ZoneLoaded) {
this->SetZone(zone->GetZoneID());
entity_list.UpdateWho(true);
this->SendEmoteMessage(0, 0, 15, "Zone connect: %s", zone->GetLongName());
Add:
Code:
zone->GetTimeSync();
So the whole section of code reads:
Code:
if (ZoneLoaded) {
this->SetZone(zone->GetZoneID());
entity_list.UpdateWho(true);
this->SendEmoteMessage(0, 0, 15, "Zone connect: %s", zone->GetLongName());
zone->GetTimeSync();
} else {
this->SetZone(0);
}
I started and stopped my server a couple of times and the time in my 5 dynamic and 1 static were now in sync.
This is purely experimental code
