[Bug Report]Renew skill cause error.
lclancey opened this issue · 8 comments
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
.
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.
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.
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.