Thread Tools Display Modes
07/02/15, 04:28 AM   #1
QuadroTony
Banned
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 828
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?
  Reply With Quote
07/02/15, 07:49 AM   #2
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,578
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.
  Reply With Quote
07/02/15, 05:46 PM   #3
Sasky
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 231
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.
  Reply With Quote
07/03/15, 03:09 AM   #4
sirinsidiator
 
sirinsidiator's Avatar
AddOn Author - Click to view addons
Join Date: Apr 2014
Posts: 1,578
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
  Reply With Quote

ESOUI » AddOns » AddOn Help/Support » How to skip Legerdemain processing?


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off