Z-Perl Unit Frames

Z-Perl Unit Frames

15M Downloads

[Bug Report]Renew skill cause error.

lclancey opened this issue · 8 comments

commented
Message: ...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:767: attempt to perform arithmetic on local 'requiresLevel' (a nil value)
Time: Thu Jun 17 21:12:46 2021
Count: 2
Stack: ...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:767: attempt to perform arithmetic on local 'requiresLevel' (a nil value)
[string "@Interface\AddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua"]:767: in function <...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:759>
[string "@Interface\AddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua"]:1220: in function <...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:1218>
[string "@Interface\AddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua"]:2105: in function `?'
[string "@Interface\AddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua"]:2708: in function <...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2706>

Locals: spellData = <table> {
 levels = <table> {
 }
 coeff = 0
 interval = 3
 ticks = 3
 averages = <table> {
 }
}
spellName = "恢复"
spellRank = 12
average = nil
requiresLevel = nil
(*temporary) = <function> defined =[C]:-1
(*temporary) = 70
(*temporary) = true
(*temporary) = "attempt to perform arithmetic on local 'requiresLevel' (a nil value)"
type = <function> defined =[C]:-1
min = <function> defined =[C]:-1
playerLevel = 70

It seems spell Renew(恢复) was treated as a direct heal spell, and calls CalculateHealing instead of CalculateHotHealing.

commented

Can you reproduce with only the Z-Perl addons enabled?

Yes. Reproduced even only Z-Perl enabled.
Both self cast or cast on other player cause this error.

commented

Can you reproduce with only the Z-Perl addons enabled?

commented

Are you sure you are on the latest version? 6.2.2

commented

Yes it's ver6.2.2,I update addons using CurseForgeApp everytime before login.
And tried ver6.2.3,still doesn't work for me.
I'm looking for other users' info from my server and CN forum,hopefully to find something useful.

commented

I know that but we are using a patched LibHealComm in 6.2.2:
image

commented

I didn't found any other players' cases, but after a few hours debugging this morning, I think it's the localization issue.
The hotData table and spellData table use spellName instead of spellID as index, for EN client it works fine, but for CN client, not.

The spell Renew(139) and spell Renewal(37563) have diffrent name in EN client, but they are the same name in CN client, check below: https://cn.tbc.wowhead.com/spell=139/恢复
https://cn.tbc.wowhead.com/spell=37563/恢复

So when Renew(恢复) was cast in my case, function getBaseHealAmount uses Renewal(恢复,spellID=37563) as param, not Renew(恢复,spellID=139).

The easiest way to fix this is define hotData[Renewal] before hotData[Renew] , works fine in my case.
图片

commented

Oh..you fixed...
I'm a bit late