ESOUI

ESOUI (https://www.esoui.com/forums/index.php)
-   AddOn Help/Support (https://www.esoui.com/forums/forumdisplay.php?f=164)
-   -   How to skip Legerdemain processing? (https://www.esoui.com/forums/showthread.php?t=4853)

QuadroTony 07/02/15 04:28 AM

How to skip Legerdemain processing?
 



when you launder or fence alot of items very fast, animation and process of the Legerdemain skill like still exist for a long time
it going very slow like 1 operation per second
and if you open crafting station for example you will see it untill all operations will be done by animation

any ways to skip this animation and just show quick skill-line boost animation? not 90s for 90 operations but just 1-2 seconds for all?

sirinsidiator 07/02/15 07:49 AM

Haven't looked into the details, but those xp bars are usually handled via the center screen announcement system. They get queued, sorted by priority and handled one after another. I think it should be quite easy to intercept those ledgerdemain messages and not show them, or maybe write something to just gather them into one animation if there are more than one of the same type.

Sasky 07/02/15 05:46 PM

Actually, the XP bars are under a control called PLAYER_PROGRESS_BAR. It has different types for XP, CP, skill, and VP (still holdover for some reason):
http://esodata.uesp.net/current/src/...ssbar.lua.html

There are a few places you might be able to hook. I looked at them a bit for ChampionBar, but wasn't able to use any hooks due to code initialization ordering.

sirinsidiator 07/03/15 03:09 AM

yes, you can either intercept it on the progressbar itself, or before it gets handled in the center screen system

Here is some untested code:
Lua Code:
  1. local SKILL_INDEX_LEGERDEMAIN = 1 -- no idea if this might change in the future or if there are other constants already
  2. local handlers = ZO_CenterScreenAnnounce_GetHandlers()
  3. local xpUpdateHandler = handlers[EVENT_SKILL_XP_UPDATE]
  4. handlers[EVENT_SKILL_XP_UPDATE] = function(skillType, skillIndex, reason, rank, previousXP, currentXP)
  5.   if(skillType == SKILL_TYPE_WORLD and skillIndex == SKILL_INDEX_LEDGERDEMAIN) then
  6.     return nil
  7.   else
  8.     return xpUpdateHandler(skillType, skillIndex, reason, rank, previousXP, currentXP)
  9.   end
  10. end


All times are GMT -6. The time now is 07:41 AM.

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