ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   Wish List (https://www.esoui.com/forums/forumdisplay.php?f=177)
-   -   [rejected] Add ability to query in-game event information (https://www.esoui.com/forums/showthread.php?t=9710)

IsJustaGhost 05/01/21 10:34 AM

[rejected] Add ability to query in-game event information
 
I'm working on an addon that helps the user save event tickets. But it really needs access to the functions in MarketAnnouncement_Manager:PopulateEventAnnouncements().

Lua Code:
  1. GetNumEventAnnouncements()
  2. GetEventAnnouncementNameByIndex(i)
  3. GetEventAnnouncementDescriptionByIndex(i)
  4. GetEventAnnouncementIngameTileImageByIndex(i)
  5. GetEventAnnouncementStartTimeByIndex(i)
  6. GetEventAnnouncementRemainingTimeByIndex(i)
  7. GetEventAnnouncementIngameTileMarketProductIdByIndex(i)

Currently I am using a list I created. I will need to update the list for when each event runs in order for the dates to be correct. Cannot really predict when the years events are going to run. And then update it for any changes, like this years Anniversary Jubilee's over-run.

IsJustaGhost 07/23/21 11:11 AM

The intent here is to be able to enable/disable addon functions that are only needed while an event is running.
An event ID would be nice. Something that would allow the use of a comparator to determine what type of awards are available. Personally, I need it for enabling specific functions depending on whether the event tickets are awarded by quest, loot, or item.

Just an example.
Lua Code:
  1. local LOOT_TYPE_CAKE = 3
  2. local function getEventLoopType(eventType)
  3.      local gameEventId = ZO_GetCurrentEvent():GetId() -- just a suggested function as an idea
  4.      return someTableOfData[gameEventId ] == eventType
  5. end
  6.  
  7. ZO_PreHook(RETICLE, "TryHandlingInteraction", function(self, interactionPossible, currentFrameTimeSeconds)
  8.      if getEventLoopType(LOOT_TYPE_CAKE ) then
  9.           -- do all the stuff
  10.           return true
  11.      else
  12.           return false
  13.      end
  14. end)
Currently my addon is stuck with using a prediction table. Not accurate at all. I try to have it over-run based on the dates I have found for past events. But. it does not need Event Ticket reminders when there is not even an Impresario out in the world.

If there is another way of doing this, that is ZOS code, please suggest that.

IsJustaGhost 08/24/21 04:35 PM

Another event to add to my prediction tables. Is the Year One event going to be recurring, or will I need to remove it for next year?

Since there has not even been any comments/questions regarding my request, I'll link the addon in which these functions would be greatly useful for in case that would be helpful.
https://www.esoui.com/downloads/info...cketSaver.html

tim99 12/25/21 02:57 AM

Support this. It's an essential feature that is needed for any addon that deals with in-game events.

You don't have to give the date/time if for some unknown reason you don't want to (before it's actually started i mean). Just an "isEventOngoing" yes / no and maybe the type of event which is nil / null if none is active.


It's kinda strange it never came up before?

Kelinmiriel 03/15/22 03:19 AM

I'd like to add my request to this. Please.

Also, why did it not come up before? I would've been the first to ask for it, since mine was the first addon to try to help people not miss out on Event Tickets, but I didn't think it would be likely for ZOS to add information for just ME - since there were no other addons doing what mine did at the time. (I checked - and that's the reason I started learning Lua to write Event Tracker. Because there wasn't anything else out there to do what it did.)

Now that there are a number of addons that would benefit from such information, it's definitely worth asking about. Thank you.

(Event Tracker - since Nov. 2019)

Masteroshi430 02/04/23 10:51 AM

I'm asking for it too, I would definitely use the info in my Vestige's Epic Quest add-on.

IsJustaGhost 04/07/23 11:29 AM

We need this now more than ever.
 
Please give us a way to identify current market events.
We need to be able to differentiate between multiple events.
For example: how the Jester Festival turned into the Anniversary Jubilee.

Being able to identify what event is running will allow us to:
not have to post an update to our addons every event change,
can run event dependent functions dynamically,
reduce the amount of stress and frustration we suffer from trying to keep up with constant changes that cannot be dynamically handled that should be.

otac0n 04/07/23 03:15 PM

I would also love this feature, in order to detect potential times of high-price-fluctuation.

Baertram 04/08/23 05:02 AM

Did you guys think about 1 library where you define the events, where your addons just read it from?
All of you could collaborate and create one, and define one function like LibIngameEvents.IsEventActive() etc.

Would ease the updates as only the lib needs to be updated and all relating adfons would work the moment it was updated.

As you can see ZOs did not provide any api since years, so I would not expect this to happen soon.
Maybe there exist technical restrictions which prevent these kind of API functions too.

So think about this and work together maybe?

otac0n 04/09/23 02:30 AM

Nobody wants to be on-call for updating event dates. :(
Would be great if minion supported community authored files. That way it wasn't on one mod author to keep a certain document up to date.

Baertram 04/09/23 05:12 AM

But you see it needs to be done, for years, in several addons, cuz there actually is no Api available.
So creating one lib for that to update,which can be done by a team (I'm not sure what Minion got to do with it though? You meant esoui? Esoui provides teams at addons already so you guys could collaborate at 1 lib or several addons already?) and the effort is less for all in the end: 1 Lib update all addons based on the lib update automatically as the lib provides what you need: Is an event active, if so which, and how long?

I know this is not what you are asking for but for the moment it's, imho, the method with the less effort for all of you? Unless I'm not seeing something that you guys know about those events and the coding you need to check.

Edit:
Understood now what you meant with the community files at minion. I'd say Github is a good alternative and ppl can post their updates at the addon comments if they want to help. Works well.
Implementing such into Minion would be a tough work and I doubt someone wants to open that door.

IsJustaGhost 04/12/23 04:10 PM

Quote:

Originally Posted by Baertram (Post 47526)
Did you guys think about 1 library where you define the events, where your addons just read it from?
All of you could collaborate and create one, and define one function like LibIngameEvents.IsEventActive() etc.

This would be a major headache to attempt to keep updated. Events change, not only yearly, on the fly sometimes. Example: an issue arises during an event so zos extends it for 3 days.
There are only 4 events that are detectible in game. Witch's, Jester's, Anniversary, Mayhem, are the only events with map pins that are only visible when active.

Ticket awarding events can be detected by checking the visibility of the Impresario on a specific map zone.
But, what about addons that want to know if an event is running that does not award tickets?

My addon used a "prediction table". A table I had to update for dates whenever they changed. Recently I went for a dynamic method. However, the changing of events back to back sort of broke that idea. It used the Impresario visibility changing from visible to hidden to know an event ended. So, when the Jester Festival turned into the Anniversary it didn't update what functions are needed to run for the cake.

IsJustaGhost 04/12/23 04:13 PM

Could you imagine being able to keep track of your collectible fragments for the year's events in a simple window? An addon could do stuff like that dynamically with information in the locked API.

IsJustaGhost 04/12/23 04:19 PM

I guess I could just have all my functions running all the times. And, only have the fragment and, the timer on the Jubilee cake, show when the Impresario is visible. But, that would mean a lot of unnecessary intercepting loops in loot, quests interactions, and reticle targets would be happening.

Also, I don't use the specific year's cake to check to see if I'm looking at the cake. I use the name of an old one. Cut the year off and replace it with the current year. :gsub('[%d]+', '<<1>>'), year), so I do not have to wait until I can manually get the cake's Id before updating the addon for the current event after it had started.

Why does the cake matter? It's the reason I made this addon in the first place. I disable being to interact with the cake if the amount of tickets exceed 12 if one has not already received tickets for this reset period. Otherwise, it would prevent receiving the buff later on until the user spent some tickets.

IsJustaGhost 04/12/23 04:35 PM

Quote:

Originally Posted by otac0n (Post 47529)
Nobody wants to be on-call for updating event dates. :(
Would be great if minion supported community authored files. That way it wasn't on one mod author to keep a certain document up to date.

This is one thing I was thinking about a while back. A community library project. A single lib containing commonly used modifications.
It was this idea i had when I was working on a method to un/register hooks.

Also, Github.

Baertram 04/12/23 06:04 PM

Quote:

Originally Posted by IsJustaGhost (Post 47538)
This would be a major headache to attempt to keep updated. Events change, not only yearly, on the fly sometimes. Example: an issue arises during an event so zos extends it for 3 days.

Yeah but what is the difference to what you actually do NOW then? You do the very same in x addons, manually!
And as there does not seem to be any API available in near time which will help you, you can help at least each other:
With 1 lib it's only 1 update, no x addon updates each event.

You all work as a team on the same information, and anyone who finds the time updates the library once and all of your addons will work again afterwards, and do not need any update for the addon itsself if the lib is preparing and keeping all needed time, dates and data + it'sown APi functions for the addons to use.

Gamer1986PAN 05/08/23 02:48 PM

An idea could be to check the Crown-Store for specific Event-Quest-Starters, since they stay in the shop for as long as the event is running. Also if there are tickets for crowns available there is an event ongoing as far as i know.

Baertram 05/08/23 03:26 PM

afaik Crown store data cannot be read via addons, and I'm pretty sure access to crown store data is permitted.
Same like chat is disabled as you curently are in the crown store.

ZOS_DanBatson 05/09/23 03:49 PM

I asked for permission to make this information available via an API and I was denied. I'm sorry, but I can't help you with this, unfortunately.

Baertram 05/10/23 01:02 AM

Thanks for trying Dan, sad to read there won't be anything.


All times are GMT -6. The time now is 12:06 AM.

vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI