Quantcast
Download
(1 MB)
Download
Updated: 06/10/21 10:14 AM
Pictures
File Info
Compatibility:
Blackwood (7.0.5)
Flames of Ambition (6.3.5)
Updated:06/10/21 10:14 AM
Created:05/25/21 02:56 PM
Monthly downloads:293
Total downloads:294
Favorites:1
MD5:
Categories:Character Advancement, Data Mods, Miscellaneous
7.0.5
Completionist's Lists  Updated this week!
Version: 4.0
by: rosadogg [More]
This is an addon for those that like to make lists and graphs in excel / open office calculator / google sheets or any other place you can import CSV files to!

Export Lists in CSV format of your currently logged in character known Motifs, Provisioning Recipes, and Furniture Recipes.

Export List of all Antiquities, how often they have been discovered, and lore entries revealed.

Also possible to export a list of all motifs and recipies in the game.

Much thanks to the creators of MasterRecipeList and CraftStore!


DependsOn: LibMotif LibZone
OptionalDependsOn: LibSlashCommander LibDebugLogger

How To Setup:
Install like other addons - by unziping into the Elder Scrolls Online\live\AddOns folder

How To Use:
1. Type /completionistslists
2. Choose an icon on the left side
CP icon: List all recipies in the game
Helmet icon: List all known motifs, use the button at the bottom to choose if to list each page in own line, or one line per motif with 0 = unknown page, 1 = known page
Chair icon: List all known furniture recipies
Pot icon: List all known provisioning recipies
Star icon: List of all antiquities in game, nr of leads found and codex entries discovered
3. Click on the list, use ctrl + A to select all, and ctrl + c to copy
4. Go to either a notepad or calculator sheet (your choice!) and use ctrl + v to paste (or select in edit > paste or import data depending on your choice!). Column delimiter is semicolon ( ; ) See picture in how-to as example for open office calculator
5. Use arrow keys on top right corner of the addon window to navigate to the next page (see current page / total pages in bottom right corner of addon window) and repeat untill you have all the pages in your chosen sheet

Note: If you use the sample calculator sheet, remember to clear the lists before adding your own character info. You can select the upper corder left of A and above 1 to select all, and click delete.
Updates
Version 2
# Improve: Added headers to the lists
# Improve: Add total known pages per motif in one-line view
# Improve: Added sample file, open office calculator format
# Fix: Saved variables store server, please delete your old one
# Fix: Unregister from event once loaded
# Fix: Scene manager and command inside on loaded
# Fix: Use Zo strings instead of hardcoded strings, note this might change some spelling
# Fix: Set current page to 1 on reload filter
# Fix: zipped in a folder so that it is properly extracted in Addon folder

Version 3
# New: List all antiquities, leads, and status
# Improve: Added readme.txt
# Fix: local variables leak

Version 4
# Improve: Add view for only name, or all info for recipes
# Improve: Include recipe category in full info
Optional Files (0)


Archived Files (3)
File Name
Version
Size
Uploader
Date
3
117kB
rosadogg
05/27/21 05:00 PM
2
582kB
rosadogg
05/27/21 01:26 PM
1
7kB
05/25/21 02:56 PM


Post A Reply Comment Options
Unread 05/28/21, 05:01 AM  
Baertram
 
Baertram's Avatar
AddOn Author - Click to view AddOns

Forum posts: 3536
File comments: 4321
Uploads: 68
You can always have a look at the ESOUI Wiki as well, it provides some "howtos" and best practices.
http://wiki.esoui.com/
It's much text, I know. But it also informs about lua (differences to other coding languages e.g.)
https://wiki.esoui.com/New_to_lua%3F_GOTCHA
https://wiki.esoui.com/LUA_Tables

lua is interpreting the code in the files from top to bottom, so if you define a variable it needs to be defined before it's call (on top of the line it is called, or in the line).
If you do not put local up in front of the variable it will pollute the global namespace tabel _G (where all addons and lua code is given which is global -> not local!). This will overwrite entries in _G e.g. if you define a variable addonName without local, it will be _G.addonName or _G["addonName"] (same variable, only different notation) and if _G.addonName already existed elsewhere you are overwriting it.
best practice is to define one global table like myAddonName = {} and then add all avriables and functions to the table like myAddonName.myVar = true, function myaddonName.doSomething() end (or myAddonName.doSomething = function() end).

local variables are ONLY known within the same scope. A scope will be either a function end, a for ... do end looop, an if ... end, and so on. If you define the local variable at the top of your file, it will b known for the whole file.
If your addon uses multiple filenames to split up the code the 1 global table approach is the easiest one.
At first lua file called (first lua file from the top in your txt manifest) you define the global table
myAddon = {}
You then assign a local pointer below to that table to speed up the acess as else the _G table needs to be searched for myAddon each time:
local mya = myAddon

And then you assign the variables and functions to mya

In all other lua files you check if myAddon exists or else create it as new empty table
myAddon = myAddon or {}
It's the same as
if myAddon == nil then myAddon = {} end

And then again you use the local mya there to speed up the access: local mya = myAddon
and add new variables/functions of that other file to the table


Originally Posted by rosadogg
Thank you so much! This is very helpfull.. haven't spent any time with lua before

I will update w a new version, since I added a new tab (antiquities, yay!), but its good to know I can fix text without increasing version




Originally Posted by Baertram
Hey again,

there is a changelog tab at the addon maintain page which should be used to put the versioning changes in there, as it will also be shown wihtin Minion e.g.
Please move your changelog text from the description in there, thank you.

You can just maintain your addon without updating the zip file: Click on maintain, uncheck he checkbox below the filename (archive file...) and check the checkbox "Disable version check" so it keeps the version you already got.
Move your text to the changelog tab and/or update other text and images.
Then check the checkbox at the bottom about the disclaimer and save. No file and version update will be done but the text will be updated.


Edit:
Your addon is leaking some variables to the global _G table, where you would need to put a local up in front or decalre them at the top of your addon as local (as you e.g. did for resultList), or add them to your addon table CompletionistsLists so that they do not float around without any connection to your addon and maybe destroy other addons using the same variable names.

totalLogMsgLenght, line 103
motif_name, line 144
itemText -> critical as very common name
knownListRecipies
craftingSkillName
exportText

Your XML file says "bad character" ( "-" ) in my editor at each line where you added the comments:
Code:
<!-- ----------------------- <Text like Customize Here, Filter buttons, ...> -------------- -->
It says the furst - after the <!-- is a bad character. Not sure if my XML validator is wrong but you should try to fix this and use other chars than - there, maybe =
Last edited by Baertram : 05/28/21 at 05:07 AM.
Report comment to moderator  
Reply With Quote
Unread 05/27/21, 04:53 PM  
rosadogg
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
Thank you so much! This is very helpfull.. haven't spent any time with lua before

I will update w a new version, since I added a new tab (antiquities, yay!), but its good to know I can fix text without increasing version




Originally Posted by Baertram
Hey again,

there is a changelog tab at the addon maintain page which should be used to put the versioning changes in there, as it will also be shown wihtin Minion e.g.
Please move your changelog text from the description in there, thank you.

You can just maintain your addon without updating the zip file: Click on maintain, uncheck he checkbox below the filename (archive file...) and check the checkbox "Disable version check" so it keeps the version you already got.
Move your text to the changelog tab and/or update other text and images.
Then check the checkbox at the bottom about the disclaimer and save. No file and version update will be done but the text will be updated.


Edit:
Your addon is leaking some variables to the global _G table, where you would need to put a local up in front or decalre them at the top of your addon as local (as you e.g. did for resultList), or add them to your addon table CompletionistsLists so that they do not float around without any connection to your addon and maybe destroy other addons using the same variable names.

totalLogMsgLenght, line 103
motif_name, line 144
itemText -> critical as very common name
knownListRecipies
craftingSkillName
exportText

Your XML file says "bad character" ( "-" ) in my editor at each line where you added the comments:
Code:
<!-- ----------------------- <Text like Customize Here, Filter buttons, ...> -------------- -->
It says the furst - after the <!-- is a bad character. Not sure if my XML validator is wrong but you should try to fix this and use other chars than - there, maybe =
Report comment to moderator  
Reply With Quote
Unread 05/27/21, 02:35 PM  
Baertram
 
Baertram's Avatar
AddOn Author - Click to view AddOns

Forum posts: 3536
File comments: 4321
Uploads: 68
Hey again,

there is a changelog tab at the addon maintain page which should be used to put the versioning changes in there, as it will also be shown wihtin Minion e.g.
Please move your changelog text from the description in there, thank you.

You can just maintain your addon without updating the zip file: Click on maintain, uncheck he checkbox below the filename (archive file...) and check the checkbox "Disable version check" so it keeps the version you already got.
Move your text to the changelog tab and/or update other text and images.
Then check the checkbox at the bottom about the disclaimer and save. No file and version update will be done but the text will be updated.


Edit:
Your addon is leaking some variables to the global _G table, where you would need to put a local up in front or decalre them at the top of your addon as local (as you e.g. did for resultList), or add them to your addon table CompletionistsLists so that they do not float around without any connection to your addon and maybe destroy other addons using the same variable names.

totalLogMsgLenght, line 103
motif_name, line 144
itemText -> critical as very common name
knownListRecipies
craftingSkillName
exportText

Your XML file says "bad character" ( "-" ) in my editor at each line where you added the comments:
Code:
<!-- ----------------------- <Text like Customize Here, Filter buttons, ...> -------------- -->
It says the furst - after the <!-- is a bad character. Not sure if my XML validator is wrong but you should try to fix this and use other chars than - there, maybe =
Last edited by Baertram : 05/27/21 at 02:48 PM.
Report comment to moderator  
Reply With Quote
Unread 05/26/21, 02:02 PM  
rosadogg
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
Thank you! Will upload with the changes your suggest

Originally Posted by Baertram
Thanks for the addon.
If you use libraries/depedencies please name those in your addon description so one can see which ones are needed without having to start the game client (within Minion addon manager e.g).

LibMotif
Optional: LibSlashCommander LibDebugLogger

And important for new addons:
Your SavedVariables are not respecting the server!
If you want the settings to store differently for different servers please add the servername to the SVs, like this e.g.

Lua Code:
  1. self.savedVariables = ZO_SavedVars:NewAccountWide("CompletionistsListsSavedVariables", 1, GetWorldName(), {})

or like this:

Lua Code:
  1. self.savedVariables = ZO_SavedVars:NewAccountWide("CompletionistsListsSavedVariables", 1, nil, {}, GetWorldName())

And your addon's code should not run before your EVENT_ADD_ON_LOADED fires, so I'd try to move these lines into the event's callback function:
Code:
SCENE_MANAGER:RegisterTopLevel(CompletionistsListsWindow, false)
SLASH_COMMANDS["/completionistslists"] = CompletionistsLists.ShowCompletionistsLists
+ unregister the event after your addon was loaded, as else the name check will be done again and again for EACH of your activated addons:

Lua Code:
  1. function CompletionistsLists.OnAddOnLoaded(event, addonName)
  2.   -- The event fires each time *any* addon loads - but we only care about when our own addon loads.
  3.   if addonName == CompletionistsLists.name then
  4.     EVENT_MANAGER:UnregisterForEvent(CompletionistsLists.name, EVENT_ADD_ON_LOADED)
  5.    
  6.     SCENE_MANAGER:RegisterTopLevel(CompletionistsListsWindow, false)
  7.     SLASH_COMMANDS["/completionistslists"] = CompletionistsLists.ShowCompletionistsLists
  8.  
  9.     CompletionistsLists:Initialize()
  10.   end
  11. end

Another hint:
Using mixed notation for CompletionistsLists: and CompletionistsLists. is kind of working, but not intended. The : is meant to be used for object oriented class-like objects that you create as ZO_Object objects from a class/subclass.
If your variable is "only" a table though you should only use the . notation so that one does not think it's an object.
Also prevents errors with self pointer or missing 1st params pointing to the correct object.

Final hint:
The hardcoded english only texts within your table
local motifPageText = {
can be found ingame already in pre-ceated strin constants SI_* which, if used, provide the autoamtic translated texts to the supported game languages de, fr, ru, jp and en!
So better use them via GetString(SI*) instead of hardcoding texts like "Axe" again and again in the addons!

You can find example string constants here:
https://github.com/esoui/esoui/blob/...tedstrings.lua
https://github.com/esoui/esoui/blob/...tedstrings.lua

e.g. instead of "Axes" use:
"Axe", -- SI_WEAPONTYPE1
GetString(SI_WEAPONTYPE1) will return Axe

CRAFTING_TYPE_BLACKSMITHING -> SI_ITEMTYPEDISPLAYCATEGORY10

and so on!

Not all strings are given the way you need them, but using predefiend translated ones will help to make your addon multilanguage supported autoamtically.
If you really need the plural AxeS instead of Axe: The function zo_strformat is able to create the plural of it.
Check the Wiki for examples: https://wiki.esoui.com/How_to_format...h_zo_strformat


Thank you!
Report comment to moderator  
Reply With Quote
Unread 05/26/21, 05:39 AM  
Baertram
 
Baertram's Avatar
AddOn Author - Click to view AddOns

Forum posts: 3536
File comments: 4321
Uploads: 68
Thanks for the addon.
If you use libraries/depedencies please name those in your addon description so one can see which ones are needed without having to start the game client (within Minion addon manager e.g).

LibMotif
Optional: LibSlashCommander LibDebugLogger

And important for new addons:
Your SavedVariables are not respecting the server!
If you want the settings to store differently for different servers please add the servername to the SVs, like this e.g.

Lua Code:
  1. self.savedVariables = ZO_SavedVars:NewAccountWide("CompletionistsListsSavedVariables", 1, GetWorldName(), {})

or like this:

Lua Code:
  1. self.savedVariables = ZO_SavedVars:NewAccountWide("CompletionistsListsSavedVariables", 1, nil, {}, GetWorldName())

And your addon's code should not run before your EVENT_ADD_ON_LOADED fires, so I'd try to move these lines into the event's callback function:
Code:
SCENE_MANAGER:RegisterTopLevel(CompletionistsListsWindow, false)
SLASH_COMMANDS["/completionistslists"] = CompletionistsLists.ShowCompletionistsLists
+ unregister the event after your addon was loaded, as else the name check will be done again and again for EACH of your activated addons:

Lua Code:
  1. function CompletionistsLists.OnAddOnLoaded(event, addonName)
  2.   -- The event fires each time *any* addon loads - but we only care about when our own addon loads.
  3.   if addonName == CompletionistsLists.name then
  4.     EVENT_MANAGER:UnregisterForEvent(CompletionistsLists.name, EVENT_ADD_ON_LOADED)
  5.    
  6.     SCENE_MANAGER:RegisterTopLevel(CompletionistsListsWindow, false)
  7.     SLASH_COMMANDS["/completionistslists"] = CompletionistsLists.ShowCompletionistsLists
  8.  
  9.     CompletionistsLists:Initialize()
  10.   end
  11. end

Another hint:
Using mixed notation for CompletionistsLists: and CompletionistsLists. is kind of working, but not intended. The : is meant to be used for object oriented class-like objects that you create as ZO_Object objects from a class/subclass.
If your variable is "only" a table though you should only use the . notation so that one does not think it's an object.
Also prevents errors with self pointer or missing 1st params pointing to the correct object.

Final hint:
The hardcoded english only texts within your table
local motifPageText = {
can be found ingame already in pre-ceated strin constants SI_* which, if used, provide the autoamtic translated texts to the supported game languages de, fr, ru, jp and en!
So better use them via GetString(SI*) instead of hardcoding texts like "Axe" again and again in the addons!

You can find example string constants here:
https://github.com/esoui/esoui/blob/master/esoui/ingamelocalization/localizegeneratedstrings.lua
https://github.com/esoui/esoui/blob/master/esoui/internalingamelocalization/localizeinternalingamegeneratedstrings.lua

e.g. instead of "Axes" use:
"Axe", -- SI_WEAPONTYPE1
GetString(SI_WEAPONTYPE1) will return Axe

CRAFTING_TYPE_BLACKSMITHING -> SI_ITEMTYPEDISPLAYCATEGORY10

and so on!

Not all strings are given the way you need them, but using predefiend translated ones will help to make your addon multilanguage supported autoamtically.
If you really need the plural AxeS instead of Axe: The function zo_strformat is able to create the plural of it.
Check the Wiki for examples: https://wiki.esoui.com/How_to_format_strings_with_zo_strformat


Thank you!
Last edited by Baertram : 05/26/21 at 05:52 AM.
Report comment to moderator  
Reply With Quote
Unread 05/25/21, 04:00 PM  
rosadogg
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 3
Uploads: 1
for the one-line per motif the columns are following
motifname;Axes;Belts;Boots;Bows;Chests;Daggers;Gloves;Helmets;Legs;Maces;Shields;Shoulders;Staves;Swords
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: