Quantcast
Download
(11 Kb)
Download
Updated: 05/22/20 02:29 PM
Pictures
File Info
Compatibility:
Harrowstorm (5.3.5)
Dragonhold (5.2.5)
Scalebreaker (5.1.5)
Elsweyr (5.0.5)
Updated:05/22/20 02:29 PM
Created:06/20/18 05:41 AM
Monthly downloads:3,445
Total downloads:152,463
Favorites:171
MD5:
Categories:Casting Bars, Cooldowns, Combat Mods
Light Attack Helper  Popular! (More than 5000 hits)
Version: 3.5
by: kafeijao [More]
Light Attack Helper is a tool that helps you track your light attacks, it does this by incrementing a counter each time you actually hit a light attack.

IMPORTANT CHANGE - Version 3.5
This addon depends on the following libraries:
When you start to do light attack weaving normally you either do it too fast or too slow, the ideal is doing as fast as possible but still having the light attacks to register, this is where this addon comes in handy, to help you finding the sweet spot.

Since these days the light attacks are the most damaging ability, one of the best ways to improve dps is actually to perform better your light attack weaving. Light attack weaving is always using a light attack in between your skill abilities, this paired with animation canceling of the light attacks makes your damage spike, you can check on youtube for videos about Elder Scrolls Online animation canceling for further information.

The la/s is the light attacks per second from a fight. So if you want to push yourself try to increase this number as much as possible in your fights. I am tracking the light attacking information from the server, so the times will be influenced by your latency(ping), and the latency(ping) is not very constant so you might find a bit of floating values.

You can use /laprintfull to see the statistics from the parse, for example the max and min values to see if your parse was falwless, for example if you get a minimum lower than 800ms probably it means that you did 2 light attacks without a skill in between, and if the maximum is higher than 1800 probably means that you used two skills without a light attack in between (This of course depends on the skills used, as channeled skills will have a much longer light attack time in between).

Commands:
  • /laprint - Prints the last combat's light attack / s ratio.
  • /laprintfull - Prints the last combat's full statisctics.
  • /lapost - Posts to the chat the last combat's light attack / s ratio (send to people).
  • /lapostfull - Posts to the chat the last combat's full statisctics (send to people)
  • /lareset - Resets the light attack counter to 0.


Notes:
1. The counter for ranged attacks will increment as soon as you shoot the light attack (if it knows it will hit) instead of when it actually hits, if it was on actual hit it would count the light attack after you barswap (if you do bar swap animation cancel) which feels a bit weird if you have the option to reset on barswap.

Warning: If it doesn't work on Japanese client, send a comment. I have no access to the Japanese client as it is geolocked to Japan only, so I can't test nor get the data I need to fix it.

Thanks @wambo for implementing LibChatMessage and making the libraries external.
Version 3.5
+ Removed included libraries, now you need to install LibAddonMenu-2.0 and LibChatMessage libraries.
+ Implemented LibChatMessage (by @wambo)
+ API Bump

Version 3.4
+ Code cleanup and api Bump (I think xd).

Version 3.3
+ Code cleanup and api Bump.

Version 3.3
+ Fixed one issue where light attacks were not being detected on ranged attacks.

Version 3.2
+ Fixed one issue that happened when grouped.


Version 3.1
  • Added the display light attacks per second.
  • Changed the settings menu for better hide/show components.
  • Added the command /laprint /laprintfull /lapost /lapostfull to display statistics from the last fight.
  • Added event filters to improve performance.

Version 3.0
  • Added the display of the milliseconds between each light attack.
  • Added the option to hide and set the size for the milliseconds part on the settings.
  • Added the command /laprint to display statistics from the last fight.

Version 2.2
  • Added support for German and French clients. Maybe Japanese aswell (needs testing)

Version 2.1
  • Added font options on settings (Font, size, border, and color).
Optional Files (1)
File Name
Version
Size
Author
Date
Type
3.6
10kB
07/17/21 03:05 AM
Patch


Archived Files (8)
File Name
Version
Size
Uploader
Date
3.4
56kB
kafeijao
03/11/19 09:23 PM
3.3
56kB
kafeijao
10/10/18 05:02 PM
3.2
56kB
kafeijao
10/10/18 03:49 PM
3.1
56kB
kafeijao
10/10/18 09:20 AM
3.0
53kB
kafeijao
07/13/18 08:37 AM
2.2
51kB
kafeijao
07/05/18 07:33 PM
2.1
49kB
kafeijao
07/03/18 01:08 PM
2.0
49kB
kafeijao
06/20/18 05:41 AM


Post A Reply Comment Options
Unread 07/23/21, 08:06 PM  
BjornTheRipper

Forum posts: 1
File comments: 10
Uploads: 0
Re: It works but counter stuck on 0?

Originally Posted by wgcutless
I downloaded and helper is showing up the per second meter is functioning but the larger counter is not any idea why it is stuck at 0?
Same. Just installed and stays at 0 when LA/weaving then ls/s stuck at .02
Report comment to moderator  
Reply With Quote
Unread 07/17/21, 05:15 PM  
wgcutless
 
wgcutless's Avatar

Forum posts: 0
File comments: 8
Uploads: 0
It works but counter stuck on 0?

I downloaded and helper is showing up the per second meter is functioning but the larger counter is not any idea why it is stuck at 0?
Report comment to moderator  
Reply With Quote
Unread 07/12/21, 12:19 PM  
ake

Forum posts: 0
File comments: 4
Uploads: 0
Thanks man!

Originally Posted by nogetrandom
changed it to check for abilityId matching tables i added instead of name:

https://mega.nz/file/DnghwCYK#-4kVLE...tehBcvhpuRgdmc

haven't used mega to share before, but i hope you guys can access it.

Updated heavy and medium attacks to only count as 1 each.
Report comment to moderator  
Reply With Quote
Unread 07/11/21, 07:13 AM  
staraven

Forum posts: 0
File comments: 6
Uploads: 0
Duel Wielder not working

Most recent version 3.5 does not register any duel wield hits. Replaced the 4 files with the content posted on Mega and it now works. THANKS
Last edited by staraven : 07/11/21 at 07:18 AM.
Report comment to moderator  
Reply With Quote
Unread 06/28/21, 04:10 PM  
claudioalbarran

Forum posts: 0
File comments: 1
Uploads: 0
LA Counter not working after U29

Does anyone has been able to find a workaround?
Report comment to moderator  
Reply With Quote
Unread 06/21/21, 05:26 PM  
miguelcura

Forum posts: 0
File comments: 2
Uploads: 0
Originally Posted by nogetrandom
changed it to check for abilityId matching tables i added instead of name:

https://mega.nz/file/DnghwCYK#-4kVLE...tehBcvhpuRgdmc

haven't used mega to share before, but i hope you guys can access it.

Updated heavy and medium attacks to only count as 1 each.
TY !!!
Last edited by miguelcura : 06/21/21 at 05:29 PM.
Report comment to moderator  
Reply With Quote
Unread 06/06/21, 06:44 PM  
nogetrandom

Forum posts: 1
File comments: 15
Uploads: 0
changed it to check for abilityId matching tables i added instead of name:

https://mega.nz/file/DnghwCYK#-4kVLE...tehBcvhpuRgdmc

haven't used mega to share before, but i hope you guys can access it.

Updated heavy and medium attacks to only count as 1 each.
Last edited by nogetrandom : 06/07/21 at 06:47 AM.
Report comment to moderator  
Reply With Quote
Unread 06/06/21, 10:52 AM  
1Entaro

Forum posts: 0
File comments: 3
Uploads: 0
Originally Posted by vinadre
hi
I think new effects are not implemented in the code, you can remove effect name like this :

Code:
if abilityActionSlotType == ACTION_SLOT_TYPE_LIGHT_ATTACK and LightAttackHelper.playerName == sourceName and string.gsub(abilityName,"[ ][(](%a+)[)]","") == GetString(LAH_LIGHT_ATTACK) and LightAttackHelper.isTheActualAttackCast(hitValue) then
I only try with my Fire and Lightning staff
I notice this work with staffs and bow but not melee
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 06:30 PM  
vinadre

Forum posts: 1
File comments: 1
Uploads: 0
hi
I think new effects are not implemented in the code, you can remove effect name like this :

Code:
if abilityActionSlotType == ACTION_SLOT_TYPE_LIGHT_ATTACK and LightAttackHelper.playerName == sourceName and string.gsub(abilityName,"[ ][(](%a+)[)]","") == GetString(LAH_LIGHT_ATTACK) and LightAttackHelper.isTheActualAttackCast(hitValue) then
I only try with my Fire and Lightning staff
Last edited by vinadre : 06/05/21 at 03:27 AM.
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 06:16 AM  
python1980

Forum posts: 0
File comments: 9
Uploads: 0
Yeah you got it. It works very well, thank you a lot.




Originally Posted by Beltroniko
But which weapons you were using? Dual Wield? like dual daggers?

You could try this one instead of the one I posted:

Code:
if abilityActionSlotType == ACTION_SLOT_TYPE_LIGHT_ATTACK and LightAttackHelper.playerName == sourceName and string.find(tostring(abilityName),"leichter") and string.find(tostring(abilityName),"angriff") and LightAttackHelper.isTheActualAttackCast(hitValue) then
But I can't test it, so I'm not sure if it works, if it does it will only work for german and I'm not even sure if it would work for all weapon types or types different from the one you used

I hope someone can jump in and get a much better fix for the issue
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 06:10 AM  
python1980

Forum posts: 0
File comments: 9
Uploads: 0
yes dual weapon



Originally Posted by Beltroniko
But which weapons you were using? Dual Wield? like dual daggers?

You could try this one instead of the one I posted:

Code:
if abilityActionSlotType == ACTION_SLOT_TYPE_LIGHT_ATTACK and LightAttackHelper.playerName == sourceName and string.find(tostring(abilityName),"leichter") and string.find(tostring(abilityName),"angriff") and LightAttackHelper.isTheActualAttackCast(hitValue) then
But I can't test it, so I'm not sure if it works, if it does it will only work for german and I'm not even sure if it would work for all weapon types or types different from the one you used

I hope someone can jump in and get a much better fix for the issue
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 06:04 AM  
Beltroniko

Forum posts: 0
File comments: 5
Uploads: 0
But which weapons you were using? Dual Wield? like dual daggers?

You could try this one instead of the one I posted:

Code:
if abilityActionSlotType == ACTION_SLOT_TYPE_LIGHT_ATTACK and LightAttackHelper.playerName == sourceName and string.find(tostring(abilityName),"leichter") and string.find(tostring(abilityName),"angriff") and LightAttackHelper.isTheActualAttackCast(hitValue) then
But I can't test it, so I'm not sure if it works, if it does it will only work for german and I'm not even sure if it would work for all weapon types or types different from the one you used

I hope someone can jump in and get a much better fix for the issue
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 05:59 AM  
python1980

Forum posts: 0
File comments: 9
Uploads: 0
Re: Re: Re: Re: Re: AddOn Fix

I used leichter Angriff / light attack and rapid strikes

here you can search in english an get the german word for the skills https://www.elderscrollsbote.de/skills/?n=flurry&l=-1&t%5B%5D=1&t%5B%5D=2&t%5B%5D=4




Originally Posted by Beltroniko
Originally Posted by python1980
you got a pn, thanks very much.
I saw your prints but it's harder to fix in german, we'd probably need someone more knowledgeable with LUA language to help.

What I see is that in your case, the game is comparing:
A - leichter Angriff -> (I suppose this is Light Attack?)
B - leichter Doppleangriff -> (I suppose this is a Dual wield light attack? is this what you were using?)

So when the game compares both, it fails, cause they are not the same, and using my method (that sees if string B starts with string A) or mjbc's method (that sees is string B contains string A) it will still fail, cause if you look at those same strings in english:

A - Light Attack
B - Light Attack (Dual Wield)

Both "StartsWith" and "Compare" methods will work.

I hope someone more knowledgeable in Addon coding can come here and help fixing it for german as well. In the mean-time if you could send all the "light attack type" names with every weapon in german I think it would help whoever is able to do it greatly.
If they all use the same pattern as leichter Doppleangriff I might actually be able to make a very ugly coded german-only temporary fix for it, but I'd need to see all "light attack types" in text first.
Last edited by python1980 : 06/04/21 at 06:09 AM.
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 05:45 AM  
Beltroniko

Forum posts: 0
File comments: 5
Uploads: 0
Re: Re: Re: Re: AddOn Fix

Originally Posted by python1980
you got a pn, thanks very much.
I saw your prints but it's harder to fix in german, we'd probably need someone more knowledgeable with LUA language to help.

What I see is that in your case, the game is comparing:
A - leichter Angriff -> (I suppose this is Light Attack?)
B - leichter Doppleangriff -> (I suppose this is a Dual wield light attack? is this what you were using?)

So when the game compares both, it fails, cause they are not the same, and using my method (that sees if string B starts with string A) or mjbc's method (that sees is string B contains string A) it will still fail, cause if you look at those same strings in english:

A - Light Attack
B - Light Attack (Dual Wield)

Both "StartsWith" and "Compare" methods will work.

I hope someone more knowledgeable in Addon coding can come here and help fixing it for german as well. In the mean-time if you could send all the "light attack type" names with every weapon in german I think it would help whoever is able to do it greatly.
If they all use the same pattern as leichter Doppleangriff I might actually be able to make a very ugly coded german-only temporary fix for it, but I'd need to see all "light attack types" in text first.
Last edited by Beltroniko : 06/04/21 at 05:48 AM.
Report comment to moderator  
Reply With Quote
Unread 06/04/21, 05:32 AM  
python1980

Forum posts: 0
File comments: 9
Uploads: 0
Re: Re: AddOn Fix

Doesn´t work in german too. :-( there is still no count of light attacks





I solved it with

Code:
if abilityActionSlotType == ACTION_SLOT_TYPE_LIGHT_ATTACK and LightAttackHelper.playerName == sourceName and zo_plainstrfind(abilityName, GetString(LAH_LIGHT_ATTACK)) and LightAttackHelper.isTheActualAttackCast(hitValue) then
But I don't know which one is faster, didn't do any perf tests.[/quote]
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: