View Single Post
  #2  
Old 06-27-2008, 02:38 PM
Derision
Developer
 
Join Date: Feb 2004
Location: UK
Posts: 1,540
Default

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
Reply With Quote