(Please do not post in the comments section to report bugs)
Before posting a comment... please read the entire addon description below - especially the Frequently Asked Questions section!
For best results, get your friends and guild mates to install Nauticus.
--- What is Nauticus?
Nauticus tracks the precise arrival & departure schedules of boats and Zeppelins around Azeroth and displays them on the Mini-Map and World Map in real-time.
Look up arrival & departure schedules for any transport and know exactly when you need to be there. Less time waiting on platforms, more time at the AH or mailbox, less duelling rogues or shamies who want you to take a seat while they crit you... 'for fun'...
To track a transport requires that you, or someone else running the addon, has taken the route sometime earlier. Nauticus uses hidden addon-to-addon communications to synchronise and share up-to-date schedules between players automatically.
Important: This addon works best the more players on your realm also using the addon. So get your friends and guild mates to install Nauticus - the more the merrier! Even if you don't use transports because you're only ever in Outland, you can help store and transmit up-to-date data to everyone that needs it. Nauticus performs well in the background and you can disable the map icons for zero interference.
--- Main Features
Plots all (16) Horde, Alliance and neutral transports on the World Map in real time
Displays the most relevant transports on the Mini-Map, based on your current zone
Map icons rotate to show their actual direction at any point in time
Shows arrival or departure schedule for each platform when you mouse-over any map icon
Discovers schedule by travelling a route in either direction
Calculates future schedules, based on precisely measured round-trip cycles
Automatically share schedules with other users of the addon on your realm
Differential delayed updates keep communication bandwidth low even with many users (O(1))
Ranks quality of data based on number of reboots and swaps, always picking the best
Remember schedule data even after computer reboot (see FAQ for caveat)
Select any transport for viewing in any LibDataBroker (LDB) display addon.†
Shows the next arrival or departure event in the button text.
Button icon changes colour to indicate status (yellow = docked, red = about to depart, green = in transit)
Auto-selects nearest transport when standing at a platform (optional)
Alt-click button to manually set audio alarm to warn you before next departure
Less spam: Filter ship crew talk and Zeppelin Master yells from your chat window (optional)
† If you're new to Broker plugins, they're a bit like FuBar plugins but displayed how you want. Try StatBlockCore, Button Bin or Fortress for display addons and see here for more plugins. Titan has LDB support built-in. FuBar requires the lightweight bridge addon Broker2FuBar (not to be confused with FuBar2Broker, which does the opposite).
Usage
Find out the status of a transport via World Map/Mini-Map or via an LDB button display.
For options, type /nauticus or /naut in the command line.
--- TO DO
Auto pop-up tooltip and/or sound arrival/departure alarm (i.e. Zeppelin horn or boats bell) when at platform
Nauticus is always in continual development. You should try to keep your version up-to-date, not least because the addon interacts with other users and they rely on good quality data from you. You'll be notified upon login when there's a new version available, after other users are seen using a later version. For this reason, please DON'T redistribute or include in a compilation pack!
--- Frequently Asked Questions
Q. I just installed Nauticus, why don't I see any schedules?
A player with the addon needs to travel on the boat/Zeppelin/turtle before the schedules come up. This could be you or someone else who may have taken the transport earlier. The most recent schedules are synchronised between other players running the addon, so after a short while the data will most likely be available to you before you take any transport. Get as many of your friends and guild mates to install Nauticus - the more the merrier.
Q. How does Nauticus get the schedules?
There are no Blizzard-provided API methods to directly determine the transport schedule. Thus we do it indirectly by getting player coords and comparing them to a known set of coords along the route. When the player 'triggers' these coords, we know the cycle and can subsequently work out future schedules at any point in time.
Q. How accurate is it?
Round-trip cycles have been calculated to one microsecond (six decimal places) over a 1-2 week period. This is significantly better resolution than provided by the API, which only measures in milliseconds (three decimal places). Baring slight adjustments in Blizzard's clocks etc., 99.9% of the time there should be no observable drift of more than a second or two.
Q. Why are some of my schedules wrong?
Rarely, schedules can become corrupted due to changes in your computer's system clock that may occur between WoW sessions/reboots. This can also be caused by dodgy CMOS batteries and some over-clocked systems. Otherwise, Nauticus can normally keep track of schedules between reboots. Additionally, while realm servers appear to keep very precise clocks for running the transports and to generate their positions, from time to time they may re-synchronise these clocks, sending the data slightly out of wack. Nauticus should quickly fix the schedules, as it will gather more recent and better quality data from other users or from your own travels.
Q. Doesn't weekly maintenance ruin the schedules?
It doesn't! We can only assume how Blizzard calculates transport schedules and their positions but it's probably based on the realm server's system clock, which is likely synchronised with a centralised ntp time server at each data centre. You can verify this by visiting another realm (at least, in the same geographical location - e.g. EU, US Eastern) to observe exactly the same schedules. This is another way to obtain accurate schedule data - from other realms. If there is one, an epoch is presently unknown - if any maths wiz can manage to reverse engineer it (simultaneous equations?), do let me know!
Q. Why does Nauticus have to use a chat channel?
Blizzard's SendAddonMessage() API is effectively limited to guild and raid addon communication, which is insufficient to get data spread furtherest across your realm. For maximum availability and accuracy of schedules, we need to use a chat channel. You shouldn't be concerned if you have the channel slot spare - we're extra careful not to mess up channel numbers.
Q. Where did the GUI disappear to?
The red window was removed in favour of map icons with tooltips. It became difficulty to maintain the rather clunky code necessary to provide this functionality and consumed more resources than desirable. Plus it didn't cater for other languages very well due to its fixed size. Native FuBar support was removed in favour of LibDataBroker (Broker/LDB) displays. Broker allows you to choose your method of displaying plugins. The lightweight bridge addon Broker2FuBar returns the old FuBar functionality, as well as allowing you to put it as a Mini-Map button (even if you don't use FuBar).
Q. Can you add the Deeprun Tram?
Unfortunately no, since it's treated as an instance and we can't properly track player coords within instances.
---
Nauticus is a complete rewrite of ZeppelinMaster which was originally conceived by Sammysnake. He runs a DKP hosting service @ dkphosting.net.
Change Log - Nauticus
v3.2.0
- add new zeppelin route - The Zephyr for patch 3.2
- fix: don't trigger coords when in vehicle
- remove some legacy saved var handling
- update deDE and ruRU
v3.1.4
- fix: mini-map icon rotations when rotate minimap not set
v3.1.3
- fix: don't error if encounter invalid comms decoding
- fix: put LibDBIcon-1.0 in no-lib-strip section of .toc
- anchor map icon tooltips to mouse cursor
- append string hash value to known transport data in comms
- kill tabs in .pkgmeta
- fix OptionalDeps and put back X-Embeds
v3.1.0
- fix: replace MiniMapCompassRing with GetPlayerFacing()
- re-package for GetPlayerFacing() fixes in latest Astrolabe
v3.0.9
- fix: occasional bad/inaccurate comms data being exchanged
- fix: error clicking ldb button if all transports filtered from list
v3.0.8
- fix: issue when detecting if dropdown is shown (caused by patch 3.0.8)
- new version notification shown in tooltip instead of chat
- update frFR, esES
- remove mini-map overlay (again)
- mini-map button now shown by default
v3.0.6
- span lengthy comms over multiple messages if necessary
- ignore comms messages that are too long
- fix: possible error if player coords are invalid immediately after login
- fix: possible bug if global var 'version' exists
- minor localisation updates/tidy-up
- compress comms number data (not backwards compatible)
v3.0.5
- bump internal version number (i'm a nubcake)
v3.0.4
- port to Ace3, add in Blizzard interface options
- add new vessel icons for WotLK and re-do others for consistency
- replace bloaty Dewdrop with UIDropDownMenu
- add individual options to toggle both world and mini map icons
- fix: possible data corruption when clock drift is detected as wrong
- fix: nil argument to fmod in DrawMapIcons() due to the above bug
- fix: nil value in ShowTooltip() if old route selected
- fix: flickering world map icons in Carbon$hite
- fix: icon not showing in some ldb displays (e.g. statblockcore)
- fix: case for some libs paths in .toc
- extend new routes on mini-map into orgrimmar and undercity
- change default world map icon size to 125%
- add minimap button (default state is hidden)
- add option to show only faction-friendly map icons
- add emote's to crew chat filter
- temp text delay increased to 2-3s
- remove key modifiers for unlocking tooltip frame, to fix partial draw issue
- change the show map icon settings to profile-based instead of per char
- parent icons to WorldMapButton and test its visibility to fix some map mods
- give mini map icons a global name to allow certain mods to skip re-parenting
- add world map overlay to Astrolabe's list of map frames to watch out for
- set proper level for tooltip frame
- properly hide the map icons in all cases
- optimise the texture rotation and handling
- put version number in ldb title contexts
- use spanish locale for esMX
v3.0.3
- FIX: Northspear, Cloudkisser and Captured Zeppelin routes
- FIX: issue where triggering could occur after login/reload (d'oh)
- completed German and Chinese localisations (thanks LarryCurse and Juha!)
- add Titan as OptDep so we can hook CloseRightClickMenu properly
- some code cleanup and optimisations, remove lots of debug stuff
- add Harrowmeiser to chat filter
v3.0.2 r91
- completed Russian and French translations (thanks Zuz666 and thelys!)
- couple of zone name fixes for German and Spanish locales
v3.0.2
- remove unused localisations and add some missing strings; options, ship and npc names
- more complete German translation (thanks LarryCurse)
- complete traditional & simplified Chinese translation (thanks Juha)
- add initial Russion localisation (thanks Zuz666)
v3.0.1
- FIX: chat frame breakage (white window and all chat filtered)
- add WotLK routes (Valgarde boat and Westguard Zep not working yet)
- change 'The Bravery' route from Menethil to Stormwind
- recalibrated all old world routes
- FIX for Titan v4+ (now uses LDB...)
- replace TabletLib with custom LibSimpleFrame (much less bloated tooltip lib)
- replace FuBar/Titan plugin code with LibDataBroker (LDB)
- remove legacy GUI (red window)
- removed CHAT_MSG_ADDON (guild/raid) and custom channel
- removed data reset option (abused and unnecessary)
- add Sky-Captain Cableclamp + Navigator Fairweather to crew chat filter
- rename 'goblin' to 'crew' (chat filter), rename 'Ra' to 'Rat' abbreviation
- colour routes in right-click dropdown menu based on faction
v2.4.1
- IMPROVED data accuracy; prioritise quality on boots < swaps < since
- NEW: auto select transport option when standing near platform
- FIX: world map icons staying when trying to hide them
- show multiple transports in tooltip for all map icons under mouse
- slightly tweaked round-trip-times again (15 day period)
- added all options to Titan/FuBar right-click menu
- remove some irrelevant FuBar options from slash command
- more complete French translation (thanks thelys/yann!)
- esES updated (thanks StiviS!)
v2.4.0
- UPDATE: all routes recalibrated for patch 2.4, finally
- FIX: Titan button update for newer v3.20+ (backward compatible)
- FIX: updated embedded Astrolabe lib; no more lockups during zoning
- warn that cycle data reset is for emergency usage only!
Originally posted by Codex Why do I see people joining and leaving nautisync if its a hidden channel?
edit- nvmd found out how to disable that
Don't try to join the NauticSync channel manually - let the addon do it. If you're still seeing issues, /leave NauticSync then log off and back on again. Nauticus will take care of the proper joining and hiding. (If you do join it manually, your channel numbers may get messed up.)
Originally posted by Codex can you make this use the hidden addon channel and not NautiSync?
NauticSync is a hidden addon channel. If you mean the SendAddonMessage() API, then no - that's for raid and guild comms only and is nowhere near suitable. It won't be added, sorry. The reason is explained in the FAQ of the addon description...
Originally posted by Codex Id love to see it track the position of the Skybreaker and horde equivalent in IC
I gotta be honest - didn't know about those places till you just told me. My main is level 77 and only just got the flying mount so popped over there to take a looksee...
Not really sure it'd be feasible to add those. For a start, they don't have platforms (not really a big deal - could just show their positions). Also, without platforms, it'd be a tad more difficult (tho not impossible) to measure its round-trip times. But the biggest issue is they trundle along at only ~25% speed.
The current algorithm detects when player speed is greater than ~300% (unattainable by any other non-mount method) or two sets of coords are triggered within recent succession. The latter would be doable but the code would start getting pretty complicated just to add a couple of blips on the map.
With a high enough View Distance (Farclip), anybody should be able to see where the gunships are at any given time. Plus, aren't their locations already on the mini-map (friendly-faction only)? So after all this, I still remain to be convinced.
Also the MinimapButton doesn't work,not left neither right click on it and no Tooltip (if there should be one). Using MinimapButtonFrame.
=> Addon in general doesn't work. No Routes, no Timetables. Also I toured every zep myself (don't know if someone else on the Realm uses it, probably not or not many) will check in the afternoon and at night again.
I couldn't bear any longer the fact that Nauticus and Minimap Button Frame, two addons I love and use continually, can't stand each other. So I decided to get my hands dirty and got that:
Now, add "Nauticus" to the list of line 87 and remove "Naut_" from the list at line 88 and tadaaa: both addons work perfectly together without a glitch, in love and peace for a better world.
Edit: Only minor changes in v3.0.8. Next planned is automated audio alert when standing at platform.
Edit: v3.0.6 includes some important fixes to prevent schedule data being corrupted when communicated to other players. For this reason, comms with previous versions isn't possible and you should update asap and get your friends and guildmates to do the same.
(They'll eventually be informed of a new version when your Nauticus talks to theirs.)
---
Cheers for the bug report. Can you remember what flight path that was?
[2009/01/11 12:48:26-1135-x19]: Nauticus-305\Libs\Astrolabe\Astrolabe.lua:174: attempt to perform arithmetic on local 'x2' (a nil value)
Nauticus-305\NautCore.lua:519: in function <Interface\AddOns\Nauticus\NautCore.lua:509>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[2]":9: in function <[string "safecall Dispatcher[2]"]:5>
(tail call): ?:
AceTimer-3.0\AceTimer-3.0.lua:144: in function <...AddOns\BuffEnough\Libs\AceTimer-3.0\AceTimer-3.0.lua:118>
Note: I've made a lot of internal changes in v3.0.4, including Saved Vars structures. Be warned that if you go back to an earlier version, your schedule data will be wiped.
@littlebuddha - lemme know if this update fixes your issue...
I can try to turn off addons and turn them back on one by one, to see if there is a conflict, but I might just wait and see if your update fixes the problem first since it is not a big inconvenience, really. I'm posting a couple screen captures of my addon folder (since one screen-cap cannot fit all the addons in it) just to give you an idea of how long trying them one by one will take me.
Yes, I am an addict, but I have my UI JUST THE WAY I LIKE IT
I'm just wondering if you might be running an addon that unlock frames for dragging - like MoveAnything etc..
Would you be able to provide a list of your addons and their version numbers? Or better yet, disable your addons one-by-one with e.g. ACP. (Maybe try Nauticus and StatBlockCore on its own first. ACP can save a preset of your active addons so you can easily go back, and disable/re-enable in-game.)
I'll be putting out a release in a day or so anyway, with lots of internal changes and removal of the locking code just in case.