Go to Page... |
%UserProfile%\Documents\Elder Scrolls Online\live\GuildHistory
~/Documents/Elder Scrolls Online/live/CachedData/GuildHistory
LibHistoire:OnReady(function(lib) local guildId = GetGuildId(1) local category = GUILD_HISTORY_EVENT_CATEGORY_BANKED_CURRENCY local addonName = "MyAddon" local processor = lib:CreateGuildHistoryProcessor(guildId, category, addonName) if not processor then -- the processor could not be created return end local started = processor:StartIteratingTimeRange(startTime, endTime, function(event) local info = event:GetEventInfo() assert(info.currencyType == CURT_MONEY, "Unsupported currency type") local eventType = info.eventType if eventType == GUILD_HISTORY_BANKED_CURRENCY_EVENT_DEPOSITED then local amount = info.amount local displayName = DecorateDisplayName(info.displayName) ProcessDeposit(guildId, displayName, amount) end end, function(reason) if (reason == LibHistoire.StopReason.ITERATION_COMPLETED) then -- all events in the time range have been processed else -- the iteration has stopped early for some reason and not all events have been processed end end) if not started then -- the processor could not be started end end)
LibHistoire:OnReady(function(lib) local category = GUILD_HISTORY_EVENT_CATEGORY_TRADER local addonName = "MyAddon" local function SetUpListener(guildId) local processor = lib:CreateGuildHistoryProcessor(guildId, category, addonName) if not processor then -- the processor could not be created return end local key = processor:GetKey() local started = processor:StartStreaming(saveData.lastEventId[key], function(event) local info = event:GetEventInfo() if info.eventType == GUILD_HISTORY_TRADER_EVENT_ITEM_SOLD then ProcessItemSold(info) end saveData.lastEventId[key] = info.eventId end) if not started then -- the processor could not be started end end for i = 1, GetNumGuilds() do SetUpListener(GetGuildId(i)) end end)
ConvertArtificialLegacyId64ToEventId
Utility function to convert id64s that have been artificially created by a legacy listener to the new id53 equivalent.Lua Code:
(method) LibHistoire:ConvertArtificialLegacyId64ToEventId(id64: string) -> id53: integer53|nil
Should be used one time only to convert all id64s that have been stored by the addon when switching to the new event processor api, since it's not the fastest operation.
@param id64 — The id64 to convert.
@return id53 — The converted id53 or nil if the id64 cannot be converted.
CreateGuildHistoryListener(deprecated)
This method will be removed in a future version. Use CreateGuildHistoryProcessor instead.
Creates a legacy listener object which emulates the old guild history api. See guildHistoryCache/GuildHistoryLegacyEventListener.lua for details.Lua Code:
(method) LibHistoire:CreateGuildHistoryListener(guildId: integer, category: integer) -> listener: GuildHistoryLegacyEventListener|nil
It's highly recommended to transition to CreateGuildHistoryProcessor instead, to take better advantage of the new history api.
@param guildId — The id of the guild to listen to.
@param category — The legacy category to listen to. One of the GUILD_HISTORY_* constants. See guildHistoryCache/compatibility.lua for details.
@return listener — The created listener object or nil if no caches were found for the provided guildId and category.
See:
CreateGuildHistoryProcessor
Creates a processor object which can be configured before it starts sending history events to an addon. See guildHistoryCache/GuildHistoryEventProcessor.lua for details.Lua Code:
(method) LibHistoire:CreateGuildHistoryProcessor(guildId: integer, category: GuildHistoryEventCategory, addonName: string) -> processor: GuildHistoryEventProcessor|nil
@param guildId — The id of the guild to process history events for.
@param category — The category to process history events for.
@param addonName — The name of the addon that is processing the events. This is used to allow users to identify addons that are registered to a category, as well as to provide better logging.
@return processor — The created processor object or nil if no caches were found for the provided guildId and category.
See:
IsReady
This function can be used to check if the library is ready to be used. It will return true after the INITIALIZED callback has been fired.Lua Code:
(method) LibHistoire:IsReady() -> isReady: boolean
When the library is not ready yet, make sure to register to the INITIALIZED callback to know when it is.
@return isReady — True if the library is ready to be used, false otherwise.
See:
OnReady
A convenience function to execute a callback when the library is ready. When the library is already initialized, the callback will be executed immediately.Lua Code:
(method) LibHistoire:OnReady(callback: fun(lib: LibHistoire))
@param callback — The function to call when the library is ready. It will receive the LibHistoire object as an argument.
See:
RegisterCallback
Register to a callback fired by the library. Usage is the same as with ZO_CallbackObject.RegisterCallback. You can find the list of exposed callbacks in api.luaLua Code:
(method) LibHistoire:RegisterCallback(callbackName: Callbacks, callback: function, ...any)
@param callbackName — One of the exposed callbacks.
@param callback — The function to call when the callback is fired.
See:
GuildHistoryEventProcessor
UnregisterCallback
Unregister from a callback fired by the library. Usage is the same as with ZO_CallbackObject.UnregisterCallback.Lua Code:
(method) LibHistoire:UnregisterCallback(callbackName: Callbacks, callback: function, ...any)
@param callbackName — One of the exposed callbacks.
@param callback — The function to unregister.
See:
GetAddonName
Returns the name of the addon that created the processor.Lua Code:
(method) GuildHistoryEventProcessor:GetAddonName() -> addonName: string
@return addonName — The name of the addon that created the processor.
GetCategory
Returns the category.Lua Code:
(method) GuildHistoryEventProcessor:GetCategory() -> category: GuildHistoryEventCategory
@return category — The event category the processor is listening to.
GetGuildId
Returns the guild id.Lua Code:
(method) GuildHistoryEventProcessor:GetGuildId() -> guildId: integer
@return guildId — The id of the guild the processor is listening to.
GetKey
Returns a key consisting of server, guild id and history category, which can be used to store the last received eventId.Lua Code:
(method) GuildHistoryEventProcessor:GetKey() -> key: string
@return key — The key that identifies the processor.
GetPendingEventMetrics
Returns information about history events that need to be sent to the processor.Lua Code:
(method) GuildHistoryEventProcessor:GetPendingEventMetrics() -> numEventsRemaining: integer 2. processingSpeed: integer 3. timeLeft: integer
@return numEventsRemaining — The amount of queued history events that are currently waiting to be processed by the processor.
@return processingSpeed — The processing speed in events per second (rolling average over 5 seconds).
@return timeLeft — The estimated time in seconds it takes to process the remaining events or -1 if it cannot be estimated.
IsRunning
Returns true while iterating over or listening for events.Lua Code:
(method) GuildHistoryEventProcessor:IsRunning() -> running: boolean
@return running — true if the processor is currently running.
SetAfterEventId
Allows to specify a start condition. The nextEventCallback will only return events which have a higher eventId.Lua Code:
(method) GuildHistoryEventProcessor:SetAfterEventId(eventId: integer53) -> success: boolean
@param eventId — An eventId to start after.
@return success — true if the condition was set successfully, false if the processor is already running.
SetAfterEventTime
Allows to specify a start condition. The nextEventCallback will only receive events after the specified timestamp. Only is considered if no afterEventId has been specified.Lua Code:
(method) GuildHistoryEventProcessor:SetAfterEventTime(eventTime: integer53) -> success: boolean
@param eventTime — A timestamp to start after.
@return success — true if the condition was set successfully, false if the processor is already running.
SetBeforeEventId
Allows to specify an end condition. The nextEventCallback will only return events which have a lower eventId.Lua Code:
(method) GuildHistoryEventProcessor:SetBeforeEventId(eventId: integer53) -> success: boolean
@param eventId — An eventId to end before.
@return success — true if the condition was set successfully, false if the processor is already running.
SetBeforeEventTime
Allows to specify an end condition. The nextEventCallback will only return events which have a lower timestamp. Only is considered if no beforeEventId has been specified.Lua Code:
(method) GuildHistoryEventProcessor:SetBeforeEventTime(eventTime: integer53) -> success: boolean
@param eventTime — A timestamp to end before.
@return success — true if the condition was set successfully, false if the processor is already running.
SetEventCallback
Convenience method to set both callback types at once.Lua Code:
(method) GuildHistoryEventProcessor:SetEventCallback(callback: fun(event: ZO_GuildHistoryEventData_Base)) -> success: boolean
@param callback — The function that will be called for each missed event that was found.
@return success — true if the condition was set successfully, false if the processor is already running.
See:
SetMissedEventCallback
Sets a callback which will get passed events that had not previously been included in the managed range, but are inside the start and end criteria. The order of the events is not guaranteed.Lua Code:
(method) GuildHistoryEventProcessor:SetMissedEventCallback(callback: fun(event: ZO_GuildHistoryEventData_Base)) -> success: boolean
If SetReceiveMissedEventsOutsideIterationRange is set to true, this callback will also receive events that are outside of the specified iteration range.
The callback will be handed an event object (see guildhistory_data.lua) which must not be stored or modified, as it can change after the function returns.
@param callback — The function that will be called for each missed event that was found.
@return success — true if the condition was set successfully, false if the processor is already running.
See:
SetNextEventCallback
Sets a callback which will get passed all events in the specified range in the correct historic order (sorted by eventId).Lua Code:
(method) GuildHistoryEventProcessor:SetNextEventCallback(callback: fun(event: ZO_GuildHistoryEventData_Base)) -> success: boolean
The callback will be handed an event object (see guildhistory_data.lua) which must not be stored or modified, as it can change after the function returns.
@param callback — The function that will be called for each event that is processed.
@return success — true if the condition was set successfully, false if the processor is already running.
See:
SetOnStopCallback
Set a callback which is called after the listener has stopped.Lua Code:
(method) GuildHistoryEventProcessor:SetOnStopCallback(callback: fun(reason: StopReason)) -> success: boolean
Receives a reason (see lib.StopReason) why the processor has stopped.
@param callback — The function that will be called when the processor stops.
@return success — true if the condition was set successfully, false if the processor is already running.
See:
SetReceiveMissedEventsOutsideIterationRange
Controls if the processor should forward missed events outside of the specified iteration range to the missedEventCallback.Lua Code:
(method) GuildHistoryEventProcessor:SetReceiveMissedEventsOutsideIterationRange(shouldReceive: boolean) -> success: boolean
@param shouldReceive — true if missed events outside of the specified iteration range should be forwarded, false if they should be ignored.
@return success — true if the condition was set successfully, false if the processor is already running.
See:
SetRegisteredForFutureEventsCallback
Sets a callback which is called when the processor starts waiting for future events.Lua Code:
(method) GuildHistoryEventProcessor:SetRegisteredForFutureEventsCallback(callback: function) -> success: boolean
@param callback — The function that will be called when the processor starts waiting for future events.
@return success — true if the condition was set successfully, false if the processor is already running.
SetStopOnLastCachedEvent
Controls if the processor should stop instead of listening for future events when it runs out of events before encountering an end criteria.Lua Code:
(method) GuildHistoryEventProcessor:SetStopOnLastCachedEvent(shouldStop: boolean) -> success: boolean
@param shouldStop — true if the processor should stop when it runs out of events, false if it should wait for future events.
@return success — true if the condition was set successfully, false if the processor is already running.
Start
Starts the processor and passes events to the specified callbacks asyncronously. The exact behavior depends on the set conditions and callbacks.Lua Code:
(method) GuildHistoryEventProcessor:Start() -> started: boolean
@return started — true if the processor was started successfully, false if it is already running.
StartIteratingTimeRange
Convenience method to configure and start the processor to iterate over a specific time range and stop after it has passed all available events.Lua Code:
(method) GuildHistoryEventProcessor:StartIteratingTimeRange(startTime: integer53, endTime: integer53, eventCallback: fun(event: ZO_GuildHistoryEventData_Base), finishedCallback: fun(reason: StopReason)) -> started: boolean
@param startTime — The start time of the range (inclusive).
@param endTime — The end time of the range (exclusive).
@param eventCallback — The function that will be called for each event that is processed.
@param finishedCallback — The function that will be called when the processor stops. Only when StopReason.ITERATION_COMPLETED is passed, all events in the range have been processed.
@return started — true if the processor was started successfully, false if it is already running.
See:
StartStreaming
Convenience method to start the processor with a callback and optionally only receive events after the specified eventId.Lua Code:
(method) GuildHistoryEventProcessor:StartStreaming(lastProcessedId: integer53|nil, eventCallback: fun(event: ZO_GuildHistoryEventData_Base)) -> started: boolean
@param lastProcessedId — The last eventId that was processed by the addon or nil to start with the oldest managed event.
@param eventCallback — The function that will be called for each event that is processed. If not provided here, it has to be set with SetNextEventCallback beforehand, or the processor won't start.
@return started — true if the processor was started successfully, false if it is already running.
Callbacks
Stop
Stops iterating over stored events and unregisters the processor for future events.Lua Code:
(method) GuildHistoryEventProcessor:Stop() -> stopped: boolean
@return stopped — true if the processor was stopped successfully, false if it is not running.
Callbacks.CATEGORY_LINKED
Fired when a category has linked the managed range to present events. The guildId and category are passed as arguments.
Callbacks.HISTORY_RESCAN_ENDED(deprecated)
Rescan no longer exists.
Callbacks.HISTORY_RESCAN_STARTED(deprecated)
Rescan no longer exists.
Callbacks.INITIALIZED
Fired when the library has finished setting everything up.
Any calls to the api (aside of registering for the event) should happen after this has fired.
It will receive the LibHistoire object as an argument.
Keep in mind that this may fire before EVENT_ADD_ON_LOADED, so make sure to check if the library is ready before listening to the callback.
See:
Callbacks.LINKED_RANGE_FOUND(deprecated)
Use MANAGED_RANGE_FOUND instead.
See:
Callbacks.LINKED_RANGE_LOST(deprecated)
Use MANAGED_RANGE_LOST instead.
See:
Callbacks.MANAGED_RANGE_FOUND
Fired when a new managed range has been found. The guildId and category are passed as arguments.
This happens when the managed range is established initially or after the managed range was lost.
StopReason
Callbacks.MANAGED_RANGE_LOST
Fired when the managed range has been lost. The guildId and category are passed as arguments.
This could be due to the cache being deleted, the library detecting inconsistencies in its own save data or the user manually resetting the range.
StopReason.ITERATION_COMPLETED
An end condition has been set and the first event outside of the specified range was encountered
See:
StopReason.LAST_CACHED_EVENT_REACHED
The stopOnLastCachedEvent flag has been set and the last cached event was reached
See:
StopReason.MANAGED_RANGE_LOST
The managed range was lost (fires right after MANAGED_RANGE_LOST callback)
See:
StopReason.MANUAL_STOP
Stop has been called by the addon
See:
- NOTE: It will now no longer automatically request data and you will instead have to navigate to the next page without pressing shift to trigger a load via ingame codev2.4.2
- NOTE: this will only prevent the data from getting deleted, but it won't be accessible in the game unless you rejoin the guild- updated cache path in the settings menu
- NOTE: Please let me know if the path for MacOS is still correct- fixed currently selected guild not showing properly in the status window in some cases
- sliders to set how long the guild history cache should retain data- fixed managed range reset not working correctly in some cases
- a button to allow resetting all caches at once
- the path to the cache files
- now it will properly explode instead of silently getting stuck when invalid timestamps are receivedv2.2.1
- NOTE: switching guilds and categories via the status panel won't send requests automatically. You'll have to manually hit E or use the ingame ui to do so- added new entry to status window menu to show debug information
- NOTE: it's still a bit experimental, so let me know if you encounter any issues and be prepared to update your code if necessary- fixed legacy listener SetBeforeEventTime, SetTimeFrame and iterationComplete callback behaving slightly different from version 1
- check the addon description for more information and a migration guide
- there is also an api.doc.lua file which can be used with language servers to provide autocompletion without having to include the full source code
- NOTE: legacy listeners will continue to be called just that- changed exit warning dialogues to show up less frequently and be more clear about why you should care
- NOTE: everything will explode for now when it happens. Please make sure to report it, so I can get an idea when and how often it occurs and decide what to do about it- added shift modifier to pagination buttons in the vanilla history UI to allow jumping to the first or last page quickly
- as long as the guild history menu is open, LibHistoire will now prefer requests for the currently visible guild- further reduced amount of automated requests by not sending them to categories that won't produce any events (e.g. guild without bank or store)
- other than that it will prioritize requests by how many listeners are registered for a category as well as a base priority (trading > bank gold > bank items > roster > others)
- automatic removal of old history save data- smart history requests
- removed rescan and force link features
- compatibility layer for old history api
- new api callbacks
- skip requests for categories with no listening addons- new category cache menu
- fetch oldest events first after prolonged absense
- reset linked range button- improved cache status bar
- clear cache button
- request mode setting
- cache segmentation displayv1.5.1
- automated request visualization
- animated progress bar
- zoom level setting (in main menu)
- new colors
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!
- GetKey - returns an identifier which can be used to store the last seen eventId for a listenerv1.0.2
- GetGuildId - returns the guildId of a listener
- GetCategory - returns the category of a listener
- GetPendingEventMetrics - returnsthe amount of stored or unlinked events that are currently waiting to be processed by the listener- SetBeforeEventId, SetBeforeEventTime
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 possiblethese can be used to limit the iteration range and automatically stop the listener when they are passed- SetIterationCompletedCallback
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)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
File Name |
Version |
Size |
Uploader |
Date |
2.4.2 |
140kB |
sirinsidiator |
06/08/24 02:44 PM |
|
2.4.1 |
140kB |
sirinsidiator |
06/08/24 12:56 PM |
|
2.4.0 |
140kB |
sirinsidiator |
06/08/24 10:31 AM |
|
2.3.0 |
139kB |
sirinsidiator |
03/30/24 03:21 PM |
|
2.3.0 |
137kB |
sirinsidiator |
03/28/24 01:58 PM |
|
2.2.0 |
137kB |
sirinsidiator |
03/27/24 01:58 PM |
|
2.1.1 |
128kB |
sirinsidiator |
03/23/24 07:40 AM |
|
2.1.0 |
128kB |
sirinsidiator |
03/21/24 05:53 PM |
|
2.0.7 |
127kB |
sirinsidiator |
03/17/24 12:11 PM |
|
2.0.6 |
127kB |
sirinsidiator |
03/16/24 10:48 AM |
|
2.0.5 |
127kB |
sirinsidiator |
03/15/24 05:02 PM |
|
2.0.4 |
126kB |
sirinsidiator |
03/15/24 06:05 AM |
|
2.0.3 |
126kB |
sirinsidiator |
03/14/24 07:24 PM |
|
2.0.2 |
126kB |
sirinsidiator |
03/13/24 07:20 PM |
|
2.0.1 |
126kB |
sirinsidiator |
03/12/24 07:06 PM |
|
2.0.0 |
124kB |
sirinsidiator |
03/11/24 04:49 AM |
|
1.5.1 |
120kB |
sirinsidiator |
11/02/23 11:51 AM |
|
1.5.0 |
120kB |
sirinsidiator |
11/01/23 03:20 PM |
|
1.4.1 |
118kB |
sirinsidiator |
06/14/23 12:54 PM |
|
1.4.0 |
118kB |
sirinsidiator |
04/19/23 12:44 PM |
|
1.3.0 |
118kB |
sirinsidiator |
11/01/22 08:16 AM |
|
1.2.2 |
118kB |
sirinsidiator |
04/25/21 06:41 AM |
|
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 |
Comment Options |
04/30/21, 06:39 PM | ||
Re: LibHistoire Error
2. Ten Day Scan Do those two things for each guild you have sales in. Then Update Your Guild History Each Day when you log in and you will not see the notification. |
||
|
Sharlikran |
View Public Profile |
Send a private message to Sharlikran |
Find More Posts by Sharlikran |
Add Sharlikran to Your Buddy List |
Sharlikran |
View Public Profile |
Send a private message to Sharlikran |
Find More Posts by Sharlikran |
Add Sharlikran to Your Buddy List |
04/30/21, 06:31 PM | |
Forum posts: 0
File comments: 1
Uploads: 0
|
LibHistoire Error
I keep getting the following error, even if I have been logged in for more than an hour, when I try to log out.
LibHistoire has not linked your history yet! If you close the game now, you will loose any progress and have to start over the next time. (Just a note ... Should be spelled lose, not loose) When I open history and click the broken chain link, it tells me that forcing it will leave a hole in the history. What can I do to fix this? Thanks! |
|
Tallynn |
View Public Profile |
Send a private message to Tallynn |
Send email to Tallynn |
Find More Posts by Tallynn |
Add Tallynn to Your Buddy List |
04/30/21, 06:26 PM | ||
Wait for the server to feed you the data automatically which will happen at the servers discretion. One user shared with me that it takes 4 hours for them. You can click the thumbnail yourself if you want to see what they said. Otherwise, interact with the library and request the data to obtain it more quickly. If you do not ever want to manually request data and the server does not provide it fast enough, please express your concerns with ZOS and post in their forums. The author can not change the behavior.
Last edited by Sharlikran : 04/30/21 at 06:28 PM.
|
||
|
Sharlikran |
View Public Profile |
Send a private message to Sharlikran |
Send email to Sharlikran |
Find More Posts by Sharlikran |
Add Sharlikran to Your Buddy List |
04/30/21, 06:13 PM | |||
Philgo added a turbo mode to an older version and was specifically asked by ZOS to remove it. Please express your concerns with ZOS and post in there forums. The author can not change the behavior.
Last edited by Sharlikran : 04/30/21 at 06:42 PM.
|
|||
|
Sharlikran |
View Public Profile |
Send a private message to Sharlikran |
Send email to Sharlikran |
Find More Posts by Sharlikran |
Add Sharlikran to Your Buddy List |
04/30/21, 06:11 PM | ||
Last edited by Sharlikran : 04/30/21 at 06:17 PM.
|
||
|
Sharlikran |
View Public Profile |
Send a private message to Sharlikran |
Send email to Sharlikran |
Find More Posts by Sharlikran |
Add Sharlikran to Your Buddy List |
04/30/21, 04:12 AM | |
Forum posts: 0
File comments: 69
Uploads: 0
|
Been getting booted to login when pressing f too fast (possibly there's no throttle on the key-presses to prevent this?) Has happened 3 times now.
|
|
karthrag inak |
View Public Profile |
Send a private message to karthrag inak |
Send email to karthrag inak |
Find More Posts by karthrag inak |
Add karthrag inak to Your Buddy List |
04/29/21, 07:31 PM | |
Forum posts: 0
File comments: 102
Uploads: 0
|
Wow, this takes like an hour to get the data from my trade guild every day. There needs to be a throttle scan key next to the ignore, where it can use all my resources to do a QUICK scan.
|
|
Alessondria |
View Public Profile |
Send a private message to Alessondria |
Send email to Alessondria |
Find More Posts by Alessondria |
Add Alessondria to Your Buddy List |
04/29/21, 02:02 PM | |||
Forum posts: 3
File comments: 1
Uploads: 0
|
too annoyed
Last edited by hazo : 04/29/21 at 02:03 PM.
|
||
|
hazo |
View Public Profile |
Send a private message to hazo |
Send email to hazo |
Find More Posts by hazo |
Add hazo to Your Buddy List |
04/29/21, 04:44 AM | |||
|
Last edited by zelenin : 04/29/21 at 05:48 AM.
|
||
|
zelenin |
View Public Profile |
Send a private message to zelenin |
Send email to zelenin |
Find More Posts by zelenin |
Add zelenin to Your Buddy List |
04/29/21, 03:52 AM | |||
Forum posts: 0
File comments: 69
Uploads: 0
|
|
||
|
karthrag inak |
View Public Profile |
Send a private message to karthrag inak |
Send email to karthrag inak |
Find More Posts by karthrag inak |
Add karthrag inak to Your Buddy List |
04/28/21, 12:48 PM | |||
|
Last edited by lnfinity : 04/28/21 at 12:49 PM.
|
||
|
lnfinity |
View Public Profile |
Send a private message to lnfinity |
Send email to lnfinity |
Find More Posts by lnfinity |
Add lnfinity to Your Buddy List |
04/28/21, 12:38 PM | ||
|
||
|
sirinsidiator |
View Public Profile |
Send a private message to sirinsidiator |
Send email to sirinsidiator |
Find More Posts by sirinsidiator |
Add sirinsidiator to Your Buddy List |
04/28/21, 11:15 AM | ||
|
whats your solution? i do crafting writs daily on 11 chars and this is so annoying!
|
|
|
lnfinity |
View Public Profile |
Send a private message to lnfinity |
Send email to lnfinity |
Find More Posts by lnfinity |
Add lnfinity to Your Buddy List |
04/26/21, 10:01 AM | |
Forum posts: 2
File comments: 160
Uploads: 0
|
Would it be possible to add an option to disable the feature of warning on quitting the game that switches the default keybind to quit? E no longer confirms quitting the game, but now opens the libhistoire window while the button for opening Character windows now has to be pressed to quit (is normally ALT).
The reason I ask is I have that character window keybind (default ALT) disabled as I am never interested in opening the character windows like that (when I alt tab out of the game for example character windows gets opened and any dialouge windows I was in, guild stores, npc's etc, get closed in the process.). I always use the specific keybind for each specific character page when I need it. I know this may be a bit my OCD talking but would it be possible to add an option to disable this feature and just get the normal quit procedure back? EDIT: strange, now it isnt happening anymore. Im confused about this feature, I can now quit again normall before libhistoire has finished getting the sales? Any hints on exactly when/why the alternative quit method is triggered? I think the method of quitting the game should be consistent everytime, keybinds for actions shouldnt change like that. Imo. I found a solution through an addon that offers a keybind for quitting, when using that the quit feature from libhistoire wont trigger.
Last edited by jayman10000 : 04/26/21 at 01:11 PM.
|
|
jayman10000 |
View Public Profile |
Send a private message to jayman10000 |
Send email to jayman10000 |
Find More Posts by jayman10000 |
Add jayman10000 to Your Buddy List |
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.