Posted by jack445 on Sun, 29 Sep 2013 11:43:24
I'm currently developing this: http://www.wowace.com/addons/black-market-tracker/ (yes I know, this is quite far from being finished, don't even bother using it yet ;p)
The main feature of it is to predict when an auction is going to end with up to 1min accuracy. This is done by analyzing current BMAH search as well as previous ones. Example: - first search is done, auction is 2h-12h time left on BMAH, predicted time left is set to 2h-12h - after 5min a another search is done, auction still at 2h-12h on BMAH, predicted time is therefore narrowed down to 2h-11h55m - after 3min another search is done, BMAH time left goes down to 30m-2h, predictions get narrowed down to 1h57m-2h.
The addon also synchronizes itself between other players in guild/selected friends.
Everything goes well, except for the part where i need one unified time for everyone to calculate all this (for example, i need to get the time between search and now). Currently I use GetGameTime() but I've recently found out that there are differences between maps, depending on server that it's hosted on. On my realm there's a difference of 1 minute between Eastern Kingdoms and Pandaria (where all searches are done). But I can imagine that this difference can be much bigger. Getting local time will work even worse obviously.
My question here is: Is there any solution to this problem?
EDIT: In fact, it's not only a problem when synchronizing, it's also problematic for self if I decide not to use local time and use realm time instead (I really don't like the idea of using local time).
Posted by jnwhiteh on Sun, 29 Sep 2013 16:09:46
To figuring out what time it is? Not without some difficulty =) What you would do is elect a master node and then use local time on that master to figure things out. It's a pretty 'difficult' problem, so I'm not sure I have many brilliant suggestions =)
Posted by jack445 on Sun, 29 Sep 2013 17:24:56
If by master node you mean one selected player, then it won't really work. Currently I store the BMAH search time in saved vars and calculate the difference between that time and now (realm time..) to determine when the auction is going to end. It has to be same for everyone independently, as not everyone wants to share the predictions (and there's an option to disable it, without breaking the predictions done alone). The difference between search time and now has to also be the same even when zoning to an instance/other continent that has realm time dramatically different from our Pandaria time. It has to be possible for everyone to log out at the same time (meaning the 'master node' would disappear) and log in in different order and have their predictions update correctly, without having to visit BMAH or even be in Pandaria (which has the 'correct' realm time). I don't like the idea of using local time either, as the user can change it at any given point just to mess everyone else's predictions.
Posted by jnwhiteh on Sun, 29 Sep 2013 19:07:39
I know, that's why I said it was difficult =)