Quantcast
Download
(118 Kb)
Download
Updated: 04/25/21 06:41 AM
Pictures
File Info
Compatibility:
Blackwood (7.0.5)
Flames of Ambition (6.3.5)
Updated:04/25/21 06:41 AM
Created:10/25/20 04:32 PM
Monthly downloads:5,464
Total downloads:355,117
Favorites:218
MD5:
Categories:Libraries, Data Mods
LibHistoire - Guild History  Popular! (More than 5000 hits)
Version: 1.2.2
by: sirinsidiator [More]
What is this library for?
Up until now, addons had to send guild history requests to the server individually, which in the past has lead to huge performance problems as more and more players started using these addons and ultimately forced ZOS to throttle how fast they are allowed to send automated requests for the guild history. In order to alleviate this problem and take a lot of the complexity away from individual addons, this library was born. Instead of having each addon send requests, it will all be taken care of by LibHistoire and they will simply become passive listeners.

The library will take care of loading missing history from the server in the background and store everything locally so it never has to request the same time range more than once.

Right now the game provides the history in an inverse order (future to past) of what addons actually try to use (past to future), so before the library passes any events to addons, it will attempt to load the full time range since you last played the game. During this time, it will keep them in a temporary "unlinked" state and only when it encounters the last stored event, it will save them and start sending events to listening addons. If you quit the game before that happens, all progress will be lost and it will have to start over from the beginning the next time you log in.

You can speed this process up by manually requesting missing history via the guild history menu, as this action won't be subject to the cooldown any addon has to deal with. Another option is to tell the library to force a link with what data it has got and create a hole in your history. You can always manually request more history events and trigger a rescan which will find any missing entries later.

Unlike other addons, the library won't request the full range of history provided by the server when you first use it. Instead it will immediately force a link and start collecting data from there. If you want to collect older history in that situation, you will need to manually request it and then hit the rescan button for that guild and category.

Dependencies
The following dependencies are required by LibHistoire:
  • LibAsync - to minimize fps loss while processing history events
  • LibCustomMenu - for the options menu of the status window
  • LibDebugLogger - for logging useful debug information in case something goes wrong

Some observations on what the server does
  • Requesting older history events via an addon starts a cooldown
  • The cooldown is separate for each guild and category, meaning an addon can send up to 20 requests at once
  • Simply put the interval between requests depends on how many players are currently online and is dynamically controlled by the server
  • Interval can be anything from a few seconds (on PTS) to several minutes during primetime EU. I've often seen values between 3 and 4 minutes while developing the library
  • New events are pushed automatically by the server with no way for addons to influence that process
  • The time between new events varies greatly and seems to depend on the how many players are online and how many events a guild produces
  • Sometimes the updates arrive almost instantly, sometimes they don't arrive for several hours - I've had to wait 2-3 hours quite often before any new guild history arrived
  • Ocassionally the updates never arrive (even after waiting for 5 hours) and restarting the game is the only way to force an update in that situation

User Interface

The status icon on the bottom right of the guild history symbolizes the link status of the currently viewed category in the selected guild. On hover it will show a tooltip that gives information about the stored history and unlinked events.


The new guild history status panel will provide an overview of what LibHistoire has stored and what is missing.

On the left side it will show each guild and the overall progress, on the right side it will show the categories for the currently selected guild.
Clicking on a guild or category will update the selection in both the status window and the guild history menu accordingly.
When you hover over any of the entries, a tooltip will show you the same information as the tooltip in the guild history menu.
The category entries also house the force link button (while the category is unlinked) and the rescan button (after it has linked up with stored events).
On the bottom of the panel you can see an icon which symbolizes the overall state and gives some general information about what is happening when you hover over it.
The cog button on the top right will open a context menu with an option to unlock the window so it can be moved and an option to hide it (same as the button on the bottom left of the guild history)

Special Thanks
FooWasHere who helped me test how the history behaves on rank and permission changes
ZOSDanBatson for answering my many questions about the history API
Everyone else who helped me test this and gave me feedback

For Developers
Why should you use it?
  • It minimizes the amount of requests sent by addons to the absolute minimum and if every addon starts using it, it will likely lower the cooldown the server chooses, so everyone gets their data faster.
  • It takes care of all the complexity that comes with requesting the history. There are many special cases you probably didn't even think about. The lib will handle them all for you.
  • It stores the history locally, so an addon can access time ranges that would be impossible via the game api
  • The data format minimizes impact on load time and disk space usage (compared to other addons like MM or ATT)

How does it work
The library listens to all incoming data and determines for each individual event if it has already been stored locally. It also takes care of sorting the events in the correct historic order and waits until the hole since the last login has been filled before saving them to disk and passing them to listeners.
When a listener starts, it will first iterate over available stored events, then wait for "unlinked" events to link before it iterates over those and finally start passing along newer events whenever they arrive. This is all done via LibAsync, so you will only get as many events per frame as you can safely process without affecting performance.
To avoid having to deserialize all stored events, it offers ways to select a starting point either by specifying an eventId or a timestamp*. It will do a binary search for the closest event and start from there instead of the beginning of the stored history.

*timestamps may not be 100% accurate as event times are returned from the game api as seconds since an event and manually converted to an absolute timestamp. This brings a certain inaccuracy with it and can lead to events being stored with timestamps that do not reflect their actual order. If precision is required it may be best to specify a timestamp a few seconds before the actual target time and use eventIds to identify an actual border for a time range.

If you find a problem, feel free to open an issue over on github, or leave a comment here on ESOUI.

API Reference
Callbacks
Can be accessed via the LibHistoire.callback table.

Code:
INITIALIZED()
Fired when Histy has finished initializing and is ready. Any call to the api (aside of RegisterCallback) should be done after it has fired.

Code:
HISTORY_RESCAN_STARTED(integer guildId, integer category)
Fired when the user or library triggered a rescan of the history.

Code:
HISTORY_RESCAN_ENDED(integer guildId, integer category, integer numEventsBefore, integer numEventsInside, integer numEventsAfter, boolean foundInvalidEvents)
Fired after a category rescan has finished. Invalid events are product of a bug where the game won't set the correct event time for a few seconds and the library will ignore them.

Library API
Code:
RegisterCallback(LibHistoire.callback type, function callback)
Register to a callback fired by the library. Usage is the same as with CALLBACK_MANAGER:RegisterCallback.

Code:
UnregisterCallback(LibHistoire.callback type, function callback)
Unregister from a callback. Usage is the same as with CALLBACK_MANAGER:UnregisterCallback.

Code:
LibHistoire.GuildHistoryEventListener listener = CreateGuildHistoryListener(integer guildId, integer category)
Creates a GuildHistoryEventListener object which can be configured before it starts listening to history events, or nil if guildId or category are not valid.
WARNING: Make sure you only call it after the INITIALIZED callback has fired, otherwise it may return nil.

GuildHistoryEventListener
Code:
string key = GetKey()
Returns a key consisting of server, guild id and history category, which can be used to store the last received eventId.

Code:
integer guildId = GetGuildId()
Returns the guild id of the listener.

Code:
integer category = GetCategory()
Returns the category of the listener.

Code:
integer eventCount, number processingSpeed, number timeLeft = GetPendingEventMetrics()
Returns information about history events that need to be sent to the listener.
  • eventCount - the amount of stored or unlinked events that are currently waiting to be processed by the listener
  • processingSpeed - the average processing speed in events per second or -1 if not enough data is yet available
  • timeLeft - the estimated time in seconds it takes to process the remaining events or -1 if no estimate is possible

Code:
boolean success = SetAfterEventId(id64 eventId)
Accepts an eventId (id64). The nextEventCallback will only return events which have a higher eventId when it is set. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = SetAfterEventTime(integer eventTime)
If no afterEventId has been specified, the nextEventCallback will only receive events after the specified timestamp. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = SetBeforeEventId(id64 eventId)
Accepts an eventId (id64). The nextEventCallback will only return events which have a lower or equal eventId when it is set. Once the specified eventId has been passed, the listener will automatically stop and call the function specified with SetIterationCompletedCallback. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = SetBeforeEventTime(integer eventTime)
If no beforeEventId has been specified, the nextEventCallback will only receive events before (including) the specified timestamp. Like with beforeEventId, the listener will stop and call the iteration completed function when the specified eventTime has been reached. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = SetIterationCompletedCallback(function callback)
When an end criteria is set, this callback will fire when the listener has stopped automatically.

Code:
boolean success = SetTimeFrame(integer startTime, integer endTime)
A convenience method to specify a time range which includes the startTime and excludes the endTime. See SetAfterEventTime and SetBeforeEventTime.

Code:
boolean success = SetNextEventCallback(function callback)
Sets a callback which is passed stored and received events in the correct historic order (sorted by eventId). Will return true if it was called while the listener is not running, or false otherwise.
The callback has the following signature:
Code:
function(GuildEventType eventType, id64 eventId, integer eventTime, variable param1, variable param2, variable param3, variable param4, variable param5, variable param6)
More details about param1-6 can be found in guildhistory_shared.lua in the UI source code.

Code:
boolean success = SetMissedEventCallback(function callback)
Sets a callback which is passed missed events that are discovered during a rescan, ignoring any afterEventId or afterEventTime values. See SetNextEventCallback for details on the callback. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = SetEventCallback(function callback)
A convenience function which will set both callback types in one go. See SetNextEventCallback for details on the callback. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = Start()
Signals that the listener can start sending data to the addon. Will return true if it was called while the listener is not running, or false otherwise.

Code:
boolean success = Stop()
Signals that the listener to stop sending data to the addon. Will return true if it was called while the listener is running and has been stopped, or false otherwise.

Code:
boolean success = IsRunning()
Returns the current state of the listener.

Examples
Iterate over all stored events
Lua Code:
  1. LibHistoire:RegisterCallback(LibHistoire.callback.INITIALIZED, function()
  2.     local listener = LibHistoire:CreateGuildHistoryListener(guildId, category)
  3.     listener:SetEventCallback(function(eventType, eventId, eventTime, param1, param2, param3, param4, param5, param6)
  4.         -- do something with the event data
  5.     end)
  6.     listener:Start()
  7. end)
This will simply iterate over all stored events and then listen to any newly received data, including anything that will be found on a rescan.

Retrieve a time range
Lua Code:
  1. LibHistoire:RegisterCallback(LibHistoire.callback.INITIALIZED, function()
  2.     local listener = LibHistoire:CreateGuildHistoryListener(guildId, category)
  3.     listener:SetTimeFrame(startTime, endTime)
  4.     listener:SetNextEventCallback(function(eventType, eventId, eventTime, param1, param2, param3, param4, param5, param6)
  5.          -- do something with the event data
  6.     end)
  7.     listener:Start()
  8. end)
This example shows how to iterate over a specific time frame and then stop. SetTimeFrame is preferable over just checking the eventTime in the callback, as it will be faster than just iterating everything.

Retrieve sales for different guilds and continue from last event
Lua Code:
  1. LibHistoire:RegisterCallback(LibHistoire.callback.INITIALIZED, function()
  2.     local function SetUpListener(guildId, category)
  3.         local listener = LibHistoire:CreateGuildHistoryListener(guildId, category)
  4.         local key = listener:GetKey()
  5.         listener:SetAfterEventId(StringToId64(saveData.lastEventId[key]))
  6.  
  7.         listener:SetNextEventCallback(function(eventType, eventId, eventTime, param1, param2, param3, param4, param5, param6)
  8.             -- the events received by this callback are in the correct historic order
  9.             saveData.lastEventId[key] = Id64ToString(eventId)
  10.         end)
  11.  
  12.         listener:SetMissedEventCallback(function(eventType, eventId, eventTime, param1, param2, param3, param4, param5, param6)
  13.             -- events in this callback are out of order compared to what has been received by the next event callback and can even have an eventId smaller than what has been specified via SetAfterEventId.
  14.         end)
  15.         listener:Start()
  16.     end
  17.  
  18.     for i = 1, GetNumGuilds() do
  19.         SetUpListener(GetGuildId(i), category)
  20.     end
  21. end)
This example will register listeners for all guilds and keep track of the last event id that has been processed by the addon. That way the library will pass every event to the listener only once. It will also handle events that have been found later during a manual rescan.
v1.2.2
- fixed error when serializing unexpected event types

v1.2.1
- fixed an error preventing events from getting stored for new users or when joining a new guild
- fixed progress bars flickering yellow on initial load
- fixed event listener getting stuck in a loop in some cases
- fixed game freezing when storing missing events during a rescan in categories with lots of stored events
- fixed typo in logout warning dialog

v1.2.0
- fixed an issue that would cause some players to get kicked from the PTS (public test server)
- fixed progress bar not immediately filling to 100% when the last batch of missing events are received in a category
- fixed a rare error that could occur when stored data is deserialized and added some assertions to find the underlying reason
- changed progress bars on status window to show in a red color while events are missing and yellow while events are being processed
- added a confirmation dialog when trying to logout or quit the game while history events are not yet linked, which will send players to the history menu
- updated api version

v1.1.3 (dedicated to Sharlikran who found all these problems)
- fixed codec storing item links in an uncompressed form
- fixed several codec bugs that caused item links to get decoded into invalid links
NOTE: No data was lost and I believe I've found and fixed all incorrect cases and added unit tests to guard against regressions. As an additional measure the lib will now also throw an assertion error if it encounters links that cannot be decoded. Please make sure to report these so I can add them to the test cases and fix them!

- fixed several more bugs in the new GetPendingEventMetrics function

v1.1.2
- fixed error when rescanning a category

v1.1.1
- fixed error in new GetPendingEventMetrics function

v1.1.0
- improved event decoding speed
- changed some logging to reduce log spam
- fixed afterEventTime not returning the correct event when multiple events have the same timestamp
- fixed status tooltip not updating when linking process begins
- added progress info to tooltip while linking
- added log warning when trying to start a listener without an event callback
- added new functions to EventListener API
- GetKey - returns an identifier which can be used to store the last seen eventId for a listener
- GetGuildId - returns the guildId of a listener
- GetCategory - returns the category of a listener
- GetPendingEventMetrics - returns
the amount of stored or unlinked events that are currently waiting to be processed by the listener
the average processing speed in events per second or -1 if not enough data is yet available
the estimated time in seconds it takes to process the remaining events or -1 if no estimate is possible
- SetBeforeEventId, SetBeforeEventTime
these can be used to limit the iteration range and automatically stop the listener when they are passed
they will also ensure the correct data is returned by the GetPendingEventMetrics function when only a subset of the data is requested (otherwise it will consider all available events)
- SetIterationCompletedCallback
when an end criteria is set, this callback will fire when the listener has stopped automatically
- SetTimeFrame(startTime, endTime)
a convenience method to specify a range which includes the startTime and excludes the endTime
v1.0.2
- added new callback for when Histy is ready

v1.0.1 - initial release
Optional Files (0)


Archived Files (8)
File Name
Version
Size
Uploader
Date
1.2.1
118kB
sirinsidiator
04/24/21 03:01 PM
1.2.0
118kB
sirinsidiator
04/22/21 01:22 PM
1.1.3
119kB
sirinsidiator
12/12/20 11:12 AM
1.1.2
118kB
sirinsidiator
12/05/20 02:33 PM
1.1.1
118kB
sirinsidiator
12/05/20 09:47 AM
1.1.0
118kB
sirinsidiator
12/04/20 07:01 AM
1.0.2
115kB
sirinsidiator
10/31/20 05:32 AM
1.0.1
115kB
sirinsidiator
10/25/20 04:32 PM


Post A Reply Comment Options
Unread 09/24/22, 09:13 AM  
Verling
AddOn Author - Click to view AddOns

Forum posts: 1
File comments: 15
Uploads: 4
Re: Re: Libhistoire is the cause of freezes in the game

Originally Posted by Sharlikran
Originally Posted by Rishikesa108
Hi Sharlikran, since a long time I have a lot of freezes in the game, mostly when I summon another character, or when I open packed rewards, or when I accost a jewelry station. I've tried a lot of solutions, but only disabling Libhistoire is the real solution. But I can not do without Libhistorie if I want MM to work. So please have you got a solution for me ? Is it possible that changing my pc with a more performant one could improve the fluidity of the game ? Or maybe is there another less drastic way ?
A better PC won't address that. I don't have that issue at all. The author of this Library knows that I have probably the slowest computer in existence and I don't have any of those issues.

Not caused by any mods I use or LibHistoire.
There is such a problem. It depends on the amount of data collected. About 60 MB.
I was checking the loading speed of the character. 1 minute and 10 minutes are very different.
Do I need all the data from this library ?
MM and ATT have taken their data and are clearing everything themselves for more than 30 days. And Libhistorie accumulates all the data.
In addition to MM and ATT, I do not know addons that use it and can show me data tables.
Therefore, as the game starts to load for a long time, I delete LibHistoire.lua in SavedVariables.
Report comment to moderator  
Reply With Quote
Unread 09/21/22, 11:00 AM  
Navarill

Forum posts: 1
File comments: 3
Uploads: 0
U36 Problems (PTS)

Having issues with PTS for U36. Is this all you need?:

https://sir.insidi.at/or/logviewer/yXx0q4
Report comment to moderator  
Reply With Quote
Unread 08/26/22, 06:01 AM  
Magic Charmer

Forum posts: 11
File comments: 29
Uploads: 0
Re: Re: Libhistoire is the cause of freezes in the game

Originally Posted by Sharlikran
Originally Posted by Rishikesa108
Hi Sharlikran, since a long time I have a lot of freezes in the game, mostly when I summon another character, or when I open packed rewards, or when I accost a jewelry station. I've tried a lot of solutions, but only disabling Libhistoire is the real solution. But I can not do without Libhistorie if I want MM to work. So please have you got a solution for me ? Is it possible that changing my pc with a more performant one could improve the fluidity of the game ? Or maybe is there another less drastic way ?
A better PC won't address that. I don't have that issue at all. The author of this Library knows that I have probably the slowest computer in existence and I don't have any of those issues.

Not caused by any mods I use or LibHistoire.
:

Hi Sharlikran

In settings
Master Merchant
OTHER TOOLTIP OPTIONS

I changed
Show Pricing History Graph
to OFF

Now, opening packed rewards, or accosting a station or a vendor or a bank, freezes have stopped on both computers, mine and my wife Rishikesa108's).











In settings
LibGuildStore (as suggested by you):


Last edited by Magic Charmer : 08/28/22 at 03:17 PM.
Report comment to moderator  
Reply With Quote
Unread 08/19/22, 06:52 PM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Re: Libhistoire is the cause of freezes in the game

Originally Posted by Rishikesa108
Hi Sharlikran, since a long time I have a lot of freezes in the game, mostly when I summon another character, or when I open packed rewards, or when I accost a jewelry station. I've tried a lot of solutions, but only disabling Libhistoire is the real solution. But I can not do without Libhistorie if I want MM to work. So please have you got a solution for me ? Is it possible that changing my pc with a more performant one could improve the fluidity of the game ? Or maybe is there another less drastic way ?
A better PC won't address that. I don't have that issue at all. The author of this Library knows that I have probably the slowest computer in existence and I don't have any of those issues.

Not caused by any mods I use or LibHistoire.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Last edited by Sharlikran : 08/20/22 at 06:54 PM.
Report comment to moderator  
Reply With Quote
Unread 08/19/22, 06:41 PM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Originally Posted by pauli
Is there a way to prune particularly old data? I've seen mention of backing up the current file and starting fresh, but I'm hoping for a happy medium between "here's two years" and "here's ten days".
back up the file and just do it 10-day scan because there's no way to do that yet.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Report comment to moderator  
Reply With Quote
Unread 08/16/22, 09:15 AM  
Rishikesa108

Forum posts: 9
File comments: 16
Uploads: 0
Libhistoire is the cause of freezes in the game

Hi Sharlikran, since a long time I have a lot of freezes in the game, mostly when I summon another character, or when I open packed rewards, or when I accost a jewelry station. I've tried a lot of solutions, but only disabling Libhistoire is the real solution. But I can not do without Libhistorie if I want MM to work. So please have you got a solution for me ? Is it possible that changing my pc with a more performant one could improve the fluidity of the game ? Or maybe is there another less drastic way ?
Report comment to moderator  
Reply With Quote
Unread 08/10/22, 03:44 AM  
pauli

Forum posts: 0
File comments: 8
Uploads: 0
Is there a way to prune particularly old data? I've seen mention of backing up the current file and starting fresh, but I'm hoping for a happy medium between "here's two years" and "here's ten days".
Report comment to moderator  
Reply With Quote
Unread 06/20/22, 08:11 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Re: Too frequent updating?

Originally Posted by Poalima
I had to reinstall ESO today. Yesterday, everything worked fine. Now, every time I log off (doing crafting writs, so every 4 minutes), LibHistoire requires scanning of the past week or so. Any idea what might cause this? It is scanning the same sales, each time.

NVM. The same thing is happening when I disable LibHistoire. I will try disabling TTC and Arkadius, one at a time, to narrow this down.
Everyone posting comments like this feel mods are slow and not doing something correctly. They feel there has to be something wrong or they feel they are doing something wrong. It's not you at all, it is ZOS controlled. Mods and authors have no control over the server.

As mentioned in a previous post LibHistoire is not used by ATT. ATT and LibHistoire both read the Guild History directly like MM 3.1.0 was doing in Oct of 2020. As mentioned on the description page the reason for the LibHistoire cache is to reduce the amount of load on the server. I'd read about it as I'm sure sirinsidiator explains it pretty well. So if you do not use MM then you could uninstall this library, you don't need it.

If you wonder about Guild Sales information then that's also explained many times. I'd read the previous posts. Simply put ZOS does not intend to send you previous sales information from the time you are logged off. It is an enormous drain on the server. So it does not come to you like a streaming video service. Instead any mod using the ZOS provided code can request data automatically like LibHistoire does however, the server will frequently deny those requests.

It isn't that LibHistoire needs to gather sales too frequently, ZOS does not send you information frequently when mods request it. This has been this way for more then 2 years now, maybe three years.

If you use Master Merchant then read the documentation on how to Update Your Guild History Each Day and do a Ten Day Scan to make sure you have all the data the server retains.

As mentioned in the section for the MM docs Unlinked Events Notification the server only retains 10 days of data. Once you have ten days you don't ever need to do a Ten Day scan again unless your data is corrupted and you reset it or unless you go longer then 10 days without logging into ESO and obtaining your sales data.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Last edited by Sharlikran : 06/20/22 at 08:14 AM.
Report comment to moderator  
Reply With Quote
Unread 06/17/22, 12:01 AM  
Poalima

Forum posts: 2
File comments: 37
Uploads: 0
Too frequent updating?

I had to reinstall ESO today. Yesterday, everything worked fine. Now, every time I log off (doing crafting writs, so every 4 minutes), LibHistoire requires scanning of the past week or so. Any idea what might cause this? It is scanning the same sales, each time.

NVM. The same thing is happening when I disable LibHistoire. I will try disabling TTC and Arkadius, one at a time, to narrow this down.
Last edited by Poalima : 06/17/22 at 03:07 PM.
Report comment to moderator  
Reply With Quote
Unread 06/01/22, 02:39 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Originally Posted by Dingodan
is it normal that i have to link again almost every day for some guilds?
It is not only normal but you should expect this. ZOS controls how fast you get data. The previous MM author tried to circumvent the ZOS server restrictions and they not old told him to remove the code they eliminated the ability to do what he was doing. More or less they blocked that exploit. Users should be aware of this since it has been that way for more then two years now, probably more like three years.

Also I hear a rumor (from the UI dev) that ZOS may have allegedly considered disallowing authors to use the data so be happy they didn't.

As I mention in my documentation you should be updating your sales data each day. If you don't it will take longer and longer depending on the sales volume. Users in a guild with billions a month in sales could never allow the server to give them their sales data automatically. Although LibHistoire does request the data and the server does provide the data automatically, it just depends on server load and sales volume of the guild. A few hundred sales a day might work to allow it to happen automatically. Otherwise it depends on sales volume.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Last edited by Sharlikran : 06/01/22 at 03:07 AM.
Report comment to moderator  
Reply With Quote
Unread 06/01/22, 02:32 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Originally Posted by jinncrazey
Hi! Firstly thanks for the addon!

my question is: Is it ok to delete libhistoire's savedvars? It seems to have gotten so huge that it may be causing me game issues, not cause specifically libhistoire but also since I have a lot of other addons. Is the savedvars of libhistoire needed by other addons
If you check the change log and previous posts for other mods (not this mod of course) you will see that the only mod (I am award of) that uses this Library is Master Merchant. Other then the fact that I do use it for Advanced Member Tooltip - LibHistoire, but that mod uses the Guild and Bank parts of LibHistoire.

So unless you use MM or Advanced Member Tooltip then you don't need this Library at all.

As far as doing that you should make a backup of your current file anyway because High Isle is coming out soon.

For MM users, once you make a copy, use the Refresh LibHistoire button under LibGuildStore. Then move the backup to a safe place. After you exit the game, you need to delete only LibHistoire.lua and LibGuildStore.lua under SavedVariables. Then when you log in do a Ten Day scan.

If your data becomes corrupt you would exit the game and restore and refresh the old backup first. You will need to force link the events though for the old file. Don't do a ten day scan. Then exit the game and restore and refresh the current backup. Then link events or rescan older events to be sure there are no gaps.

Do not touch LibGuildStore.lua during that process. Once MM is initialized then Refresh LibHistoire button under LibGuildStore. That would restore previous sales, and then the new LibHistoire sales depending on your MM settings. If you are at 30 days for MM and your new file has more then 30 days then you don't have to restore the previous file.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Last edited by Sharlikran : 06/04/22 at 10:54 PM.
Report comment to moderator  
Reply With Quote
Unread 06/01/22, 02:22 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Originally Posted by talmak
I play ESO on 2 computer ; I would like to know which saved variable I need to ccopy from one computer for both to have current libhistoire data
Since MM is the only sales mod that uses the file just read the documentation on what to backup for LibGuildStore. You need to copy all of it and that can still be a bit problematic and if you copy from A to B and then add more sales on computer B and then copy to A that could still be problematic. Possible of course but you have to be really diligent on how you collect data.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Report comment to moderator  
Reply With Quote
Unread 06/01/22, 02:18 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Originally Posted by Magic Charmer
Hi sirinsidiator.
Hi Sharlikran.
Hi all.

Hi have this issue.
That is not a bug with LibHistoire or any other mod. The server is giving an eronous time stamp and I explain that in my documentation. Nothing can be processed while that is happening. It can not be resolved by mods because it is from the server. ZOS is aware of it and they have no idea what causes it or how to fix it. Usually it fixes itself but if it's consistently that way for several hours best to not keep waiting and trying to get things to update. You would have to try again at another time.
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Last edited by Sharlikran : 06/01/22 at 02:41 AM.
Report comment to moderator  
Reply With Quote
Unread 06/01/22, 02:15 AM  
Sharlikran
 
Sharlikran's Avatar
AddOn Author - Click to view AddOns

Forum posts: 389
File comments: 1655
Uploads: 13
Originally Posted by Octopuss
Is there any chance the lib could display date format readable for european residents? I assume the information what server is a player logged in is readable by addons so it should be automatable...
The server does not need it that way. When a sale is made it comes from the server as seconds from the time of the sale. So if it has been 1 day since the item sold then then the server returns 86400. To get the date and time you have to then get the time which is in epoch time. It isn't that it is or isn't human readable. Where are you seeing this though because the mod does give its tooltip in human readable format on the tooltip. Anything else isn't from this mod. Where are you seeing this non human readable format?
__________________
Admin for TES5Edit, occasional LOOT masterlist contributor, and Wrye Bash contributor. I also maintain special Fallout 3 and Fallout NV versions of Wrye Flash.
Report comment to moderator  
Reply With Quote
Unread 05/21/22, 10:40 AM  
Zantari Zenithoc

Forum posts: 0
File comments: 24
Uploads: 0
Guild Bank Data will not retain link

I have 5 guild memberships. 4 of them are working fine. The newest guild has all but the Bank data consistently linking. For this one most recent guild, the Bank data just won't retain it's linking. Each time I logout, it shows this guild bank data not linked. There is no option to Show More because there is no more data to load (there is no regular activity in this guild bank). As I'm viewing this I can scroll all the way up and down in the existing guild history with no missing data, so it's all present. I've tried various things like switching to other guild info tabs. I've force linked the Guild Bank data several times on previous logouts.

Update 05/31/2022
The issue eventually resolved itself, but it did take several days (at least 4-5 days). Not sure what caused it to finally resolve itself.
Last edited by Zantari Zenithoc : 05/31/22 at 09:46 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.