Quantcast
Download
(20 Kb)
Download
Updated: 02/28/20 11:32 PM
Pictures
File Info
Compatibility:
Harrowstorm (5.3.4)
Updated:02/28/20 11:32 PM
Created:06/04/19 12:41 PM
Monthly downloads:426
Total downloads:4,866
Favorites:27
MD5:
5.3.4
HomeStationMarker
Version: 5.3.1
by: ziggr [More]
Home Station Marker

An add-on for Elder Scrolls Online that draws 3D markers over crafting stations in a player home.



Adapted from Shinni's HarvestMap and Marify's Confirm Master Writ.

Originally written to help visitors find stations when crafting master writs with WritWorthy.

Follow development on GitHub

Libraries

Required Libraries:

Optional Libraries, recommended:
  • Baertram's LibSets
    Allows you to type /hsm Alessia cl instead of /hsm 82 2 for Alessia's Bulwark clothier station.

FAQ

Why don't I see any markers?

HomeStationMarker starts out not knowing any station locations. Once it has some station locations recorded to SavedVariables, it can show markers for those stations.
  1. Run around the player house and interact with a few crafting stations, such as Enchanting or Armor Master Blacksmithing.
  2. /hsm enchanting or /hsm armor bs to show the above marker.
    (This command requires Baertram's LibSets.)

In your own house, or any house in which you are trusted enough to have "Decorator" access, you can replace step 1 with /hsm scanlocs to immediately teach HomeStationMarker the location of every crafting station in the house.

Learning a station location after requesting a marker for it will not show a marker for that station. The marker will appear next time you enter the house or /reloadui.

Why are the markers not perfectly aligned with their stations?

When HomeStationMarker records a crafting station's location from you interacting with that station, HomeStationMarker actually records your player's position, not the crafting station's.

The API to learn a station's location is restricted to a house's owner or guests with "Decorator" access. For all other players, this is as close as I can get it.

Slash Commands

A few commands to help while testing, probably not useful to players:

/hsm <set> <station>

Toggle a marker above the given station. Can omit either argument.
  • /hsm alchemy toggles a marker over an alchemy station
  • /hsm alessia's blacksmithing toggles a marker over the Alessia's Bulwark blacksmithing station

This is mostly for testing/debugging this add-on. The simplistic string matching here was designed for, and tested on, EN English only. If it doesn't work in DE German, sorry.

Requires Baertram's LibSets

Crafting station abbreviations

Nobody wants to type "Jewelry Crafting Station".
  • two-letters: bs, cl, ww, jw, al, en, pr
  • first few letters: black, cloth, wood, jewel

Set abbreviations
  • first few letters: alessia, twice-born, eternal
  • tbs, nmg, juli, kags, seducer

Uppercase and punctuation ignored.

/hsm forgetlocs [all]

Forget all station locations for current house, or all houses if /hsm forgetlocs all. Use /hsm forgetlocs in a house after moving any crafting stations. Deletes all markers in current house (or all houses if /hsm forgetlocs all) as a necessary side effect.

/hsm scanlocs

Teach HomeStationMarker the location of every crafting station in this house.

Requires "Decorator" access, which you automatically have in your own houses, and rarely ever have in anybody else's house.

Not Supported

I have no desire to add these ever:
  • custom markers
  • colors
  • per-add-on sets of markers

No thank you. That's an additional API and complexity that I don't want to spend my days supporting.

API

Code:
HomeStationMarker.AddMarker(setId, stationId)
    Increment ref count for <setId, stationId>.
    Show a marker for that station if in player housing and its
    location is known.
    Return true if shown, false if not shown or was already shown.

HomeStationMarker.DeleteMarker(setId, stationId)
    Decrement ref count for <setId, stationId>.
    Hide any marker for that station if refcount hits 0.
    Return true if refcount hit zero and there was a request for that marker.

HomeStationMarker.DeleteAllMarkers()
    Reset all ref counts to zero.
    Delete all requests for markers.
    Hide any markers.

- setId:     integer set bonus ID, such as 82 for Alessia's Bulwark.
             nil or string "no_set" for set-less stations such as Alchemy
             or Enchanting.

- stationId: integer crafting type such as CRAFTING_TYPE_BLACKSMITHING or 1.
Why RefCount?

Reference counts free up other code from worrying about whether they need a station for two or more crafting requests, and whether the completion of a request means it is time to remove the marker or not. Let the refcounts do the worrying for you.

Ref counts also help if multiple add-ons use HomeStationMarker: what if WritWorthy needed a station, but some other add-on also needed that same station. If either one removed the marker, the other add-on's requested marker would end up lost.

RefCount/Marker Desync

The above 3 API functions are the only ones that touch or see the ref counts.
Slash commands such as /hsm <set> <station> bypass the ref count and toggle the marker regardless of API requests.

FPS Cost

Each marker slows down your frames per second.

This add-on also slows down frames per second while in player housing:

zo_callLater : a periodic task updates each marker rotation 8 times per second. Only registered within player housing.

EVENT_CRAFTING_STATION_INTERACT
EVENT_CLIENT_INTERACT_RESULT
EVENT_DYEING_STATION_INTERACT_START
EVENT_RETRAIT_STATION_INTERACT_START : Event listeners record station location each time you interact with a crafting station or assistant. This listener is only registered within player housing.

EVENT_PLAYER_ACTIVATED : An event listener hides all of a house's markers when you exit player housing, shows that house's previously hidden markers when you enter player housing.

Scene Listener : An event listener that shows/hides all markers when the HUD is shown/hidden while in player housing. Hides the markers when you're in the inventory/bank/dialog/whatever scene, unhides when you're back to walking around the house.

SavedVariables
  • station locations: for each player house: each known crafting station's location
  • requested markers: list of set and station ids for each requested marker
  • reference counts: keep track of how many times a marker has been requested via API.

To Do
  • Why the z-index weirdness?
5.3.1 2020-02-28
  • Fix EN-only bug where `/hsm scanlocs` did not correctly register with LibSlashCommander.

5.2.1 2019-11-24
  • Baertram's DE translations. Thank you!

5.0.2 2019-06-06
  • Stop replacing perfectly good /hsm scanlocs location data with less good data from a player's location while interacting with a station.
  • Gather assistant, transmute station, outfitter/dye station, and mundus stone locations from interacting with them.
  • Add Elsweyr assistants Ezabi and Fezez.

5.0.1 2019-06-04
  • Initial release.
Archived Files (4)
File Name
Version
Size
Uploader
Date
5.3.1
153kB
ziggr
02/28/20 03:19 PM
5.2.1
20kB
ziggr
11/24/19 03:22 PM
5.0.2
20kB
ziggr
06/06/19 11:51 AM
5.0.1
16kB
ziggr
06/04/19 12:41 PM


Post A Reply Comment Options
Unread 03/31/20, 12:11 PM  
Snow

Forum posts: 0
File comments: 50
Uploads: 0
JC Stations for new Cyrodiil Sets not added

Hi,
HomeStationMarker refuses to add the jewlery craftings stations of the new cyrodiil sets: set ids 480, 481 and 482.

According to LibDebugLoggers Log, the problem is that it does not get a set_id for the jc stations.
If I understand your code correct you use GetSmithingPatternResultLink to determin the id.
On all other set stations: /script d(GetSmithingPatternResultLink(unpack({ 3,1,2,1,1,0 })))
gives a vaild link, but not on the three new ones - [Empty String] is returned.
I got a valid link on the new ones when I change the patternIndex from 3 to 4, but this does not work on the old stations.

Hope you find a way around this. - Maybe this is the same problem preventing Writworthy to autocraft jc writs on the new stations.

Regard
Snow
Report comment to moderator  
Reply With Quote
Unread 03/11/20, 03:55 PM  
LokiAndBlack

Forum posts: 0
File comments: 4
Uploads: 0
Originally Posted by ziggr
Jewelry stations: yeah, some times HomeStationMarker refuses to mark a station. I have yet to figure that bug out.
Well it is rather it marks none of my 30 writs in queue simply not any at all. good luck in finding bug, I promise to help newbies further =)
Report comment to moderator  
Reply With Quote
Unread 03/11/20, 12:07 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 233
Uploads: 9
Jewelry stations: yeah, some times HomeStationMarker refuses to mark a station. I have yet to figure that bug out.

Donation: no thank you. I have all that I could ever need. Pay it forward. Make the game a nicer place for the next guildie who needs some help getting through a boss, or hand some food or training gear to a newbie you see out in the wild.

Originally Posted by LokiAndBlack
Thanks!
Why the jewelry writs are not highlighted when I add them into queue in writworthy? And do you have paypal.me link? I would like to send you few coins for a coffee to support your hard work =)
Report comment to moderator  
Reply With Quote
Unread 03/11/20, 12:47 AM  
LokiAndBlack

Forum posts: 0
File comments: 4
Uploads: 0
Thanks!
Why the jewelry writs are not highlighted when I add them into queue in writworthy? And do you have paypal.me link? I would like to send you few coins for a coffee to support your hard work =)
Report comment to moderator  
Reply With Quote
Unread 03/06/20, 07:39 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 233
Uploads: 9
Set abbreviations

HomeStationMarker.SET_ABBREV, defined in HomeStationMarker_Text.lua:

Lua Code:
  1. HomeStationMarker.SET_ABBREV = {
  2.     ["tbs"          ] = 161 -- Twice-Born Star
  3. ,   ["nmg"          ] =  51 -- Night Mother's Gaze
  4. ,   ["julianos"     ] = 207 -- Law of Julianos
  5. ,   ["kags"         ] =  92 -- Kagrenac's Hope
  6. ,   ["seducer"      ] =  43 -- Armor of the Seducer
  7. ,   ["whitestrake"  ] =  41 -- Whitestrake's Retribution
  8. }

These are the only set name abbreviations. Otherwise just type the full set name such as "Alessia's Bulwark" or "Hist Bark" or whatever.

Originally Posted by LokiAndBlack
Thank you so much for your addon Could you please tell me where I can find list of all used abbreviations for all set so that I can highlight any set table doing the things for my clan mates =)
Report comment to moderator  
Reply With Quote
Unread 03/06/20, 06:57 PM  
LokiAndBlack

Forum posts: 0
File comments: 4
Uploads: 0
Thank you so much for your addon Could you please tell me where I can find list of all used abbreviations for all set so that I can highlight any set table doing the things for my clan mates =)
Report comment to moderator  
Reply With Quote
Unread 02/29/20, 12:56 PM  
wizzard2k

Forum posts: 0
File comments: 57
Uploads: 0
Re: Re: esoui mixup?

Originally Posted by ziggr
Oops. My mistake. I selected the wrong .zip file from my workstation when uploading today's update.

Fixed. I just uploaded the correct .zip file.

This is what happens when I try to update more than one add-on on the same day.



--Z

Originally Posted by wizzard2k
For some reason minion and esoui replaced the latest version of this with libcrafttext
\o/ thanks for all your hard work!!!
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 11:36 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 233
Uploads: 9
Re: esoui mixup?

Oops. My mistake. I selected the wrong .zip file from my workstation when uploading today's update.

Fixed. I just uploaded the correct .zip file.

This is what happens when I try to update more than one add-on on the same day.



--Z

Originally Posted by wizzard2k
For some reason minion and esoui replaced the latest version of this with libcrafttext
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 10:43 PM  
wizzard2k

Forum posts: 0
File comments: 57
Uploads: 0
esoui mixup?

For some reason minion and esoui replaced the latest version of this with libcrafttext
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 03:26 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 233
Uploads: 9
"Armor of the Seducer" name change: no effect on HSM

The Update 25 name change from "Seducer" to "Armor of the Seducer" has no effect on HomeStationMarker. HomeStationMarker continues to correctly mark those stations even with the new name. It should continue to work fine with WritWorthy when WritWorthy queues up a master writ for those stations.

HomeStationMarker identifies sets by integer set index (43 for Seducer/Armor of the Seducer). Works regardless of set name or language.

The only time the name comes into play is if you use a slash command to toggle a mark. These three commands all toggle a marker over the seducer blacksmith station, but the latter two look up the set name via LibSets:
  • /hsm 43 bs
  • /hsm seducer bs
  • /hsm armor of the seducer bs

(I did just upload an update to HomeStationMarker, but that's unrelated to Seducer.)

--Z

Originally Posted by EvilDave
I noticed you changed the Seducer set on Writworthy, I have not gotten a writ yet for HSM, but will that automatically find Armor of the Seducer now?

Thanks again for an amazing addon.
Report comment to moderator  
Reply With Quote
Unread 02/28/20, 10:44 AM  
EvilDave

Forum posts: 2
File comments: 51
Uploads: 0
I noticed you changed the Seducer set on Writworthy, I have not gotten a writ yet for HSM, but will that automatically find Armor of the Seducer now?

Thanks again for an amazing addon.
Report comment to moderator  
Reply With Quote
Unread 02/11/20, 05:28 PM  
Aquaq

Forum posts: 0
File comments: 3
Uploads: 0
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:200: attempt to index a nil value
stack traceback:
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:200: in function 'HomeStationMarker.RegisterSlashCommands'
user:/AddOns/HomeStationMarker/HomeStationMarker.lua:1517: in function 'HomeStationMarker.OnAddOnLoaded'
Report comment to moderator  
Reply With Quote
Unread 11/24/19, 10:01 AM  
Baertram
 
Baertram's Avatar
AddOn Author - Click to view AddOns

Forum posts: 2724
File comments: 3270
Uploads: 58
Thanks for this great addon!

@ziggr:
Please find here a patched version containing German translations for the helpers and multi language support for the slash commands (currently EN always shown + clientLanguage if <> EN):
HomeStationMarker multilanguage slash commands

I also fixed the call to LibSlashCommander to use it's global variable LibSlashCommander before trying LibStub.

The translations are split into several subtables now, to be able to distinguish the slash command data and the helper names.
Last edited by Baertram : 11/24/19 at 10:03 AM.
Report comment to moderator  
Reply With Quote
Unread 10/23/19, 09:30 AM  
EvilDave

Forum posts: 2
File comments: 51
Uploads: 0
Thanks again for an amazing add-on.

Originally Posted by ziggr
... (Yes, this step is awful for guild halls with 187 attuned stations.)
I temporarily gave decorator permissions to members of my guild that use this add-on to scan. I know not everyone can do that though.
Report comment to moderator  
Reply With Quote
Unread 10/01/19, 12:29 PM  
ziggr
 
ziggr's Avatar
AddOn Author - Click to view AddOns

Forum posts: 26
File comments: 233
Uploads: 9
Resetting HomeStationMarker

/hsm forgetlocs all will clear all markers. Try this first.

If unwanted markers reappear later, delete HomeStationMarker's saved variables:
  1. /logout
  2. delete file SavedVariables\HomeStationMarker.lua


Originally Posted by selen67
I have some problem with showing up icons for stations while the master writ isn't queued.
I know I messed up sth, coz once I got a few MWs for one station and got out of space in inventory, I tried to deqeue all and enqueue, then dequeue again and queue only some that I chose. After I turned in a few books, even though the few Armor Master were done and not showing up when I refreshed writWorthy, it still created 3 items (that were made before) when I used a station. Now no matter if I'm on that character or on my main, a few stations still have the mark. Something bugged out :<
I just tried deleting saved variables on both homeStation addon and writ worthy, as well as delete the addon with saved variables in minion and install, just reloading the game, icons still remain.
Can't figure out if there is a way to repair this without deleting those addons again, quitting game, then install it and start game again?
Last edited by ziggr : 10/01/19 at 12:37 PM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: