Wild Growth causing errors #85


Open
  • nayooz created this issue Sep 2, 2022

    Seeing a lot of this error:

     

    52x ...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0-105.lua:2398: attempt to perform arithmetic on local 'tickInterval' (a nil value)
    [string "@ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0-105.lua"]:2398: in function <...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2384>
    [string "@ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0-105.lua"]:2571: in function `?'
    [string "@ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0-105.lua"]:3349: in function <...ddOns\ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:3345>

    Locals:
    casterGUID = "Player-4667-00A277E1"
    wasUpdated = false
    spellID = 48438
    tickAmount = "230@214@198@182@166@149@133"
    totalTicks = 7
    tickInterval = nil
    spellName = "Wild Growth"
    inc = 1
    stack = 1
    duration = 7
    endTime = 518777.568000
    (*temporary) = "4669-00C94FA7"
    (*temporary) = "Player-4667-00A277E1"
    (*temporary) = 48438
    (*temporary) = 1
    (*temporary) = 1
    (*temporary) = 1
    (*temporary) = 1
    (*temporary) = "Player-4669-00C94FA7"
    (*temporary) = "raid10"
    (*temporary) = 13
    (*temporary) = "Wild Growth"
    (*temporary) = "attempt to perform arithmetic on local 'tickInterval' (a nil value)"
    GetSpellInfo = <function> defined =[C]:-1
    select = <function> defined =[C]:-1
    type = <function> defined =[C]:-1
    findAura = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2364
    GetTime = <function> defined =[C]:-1
    pendingHots = <table> {
    Player-4667-00A277E1 = <table> {
    }
    }
    HOT_HEALS = 4
    ceil = <function> defined =[C]:-1
    loadHealList = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2262
    HealComm = <table> {
    TargetLastTarget = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:3027
    GetHealModifier = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:388
    OVERTIME_HEALS = 6
    TargetLastFriend = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:3023
    compressGUID = <table> {
    }
    UNIT_SPELLCAST_CHANNEL_START = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2838
    GetNextHealAmount = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:411
    ALL_HEALS = 23
    GLYPH_ADDED = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2193
    UseAction = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:3032
    itemSetsData = <table> {
    }
    currentModifiers = <table> {
    }
    aurasUpdated = true
    GLYPH_REMOVED = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2193
    GetCasterHealAmount = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:552
    CASTED_HEALS = 3
    UNIT_SPELLCAST_CHANNEL_UPDATE = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2935
    BOMB_HEALS = 16
    GetNumHeals = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:684
    callbacks = <table> {
    }
    GLYPH_UPDATED = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2193
    removeRecordList = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:282
    getRecord = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:245
    GlyphsUpdated = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2193
    Target = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2986
    GetOthersHealAmount = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:539
    UNIT_AURA = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2097
    tempPlayerList = <table> {
    }
    GetPlayerHealingMod = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:383
    UPDATE_MOUSEOVER_UNIT = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2964
    ZONE_CHANGED_NEW_AREA = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2076
    healingModifiers = <table> {
    }
    hotMonitor = <unnamed> {
    }
    spellData = <table> {
    }
    guidToUnit = <table> {
    }
    CHARACTER_POINTS_CHANGED = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:2219
    CastSpell = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:3032
    DeleteTable = <function> defined @ZPerl\Libs\LibHealComm-4.0\LibHealComm-4.0.lua:203
    TargetUnit = <function> defined @ZPerl\Libs\LibHealComm-4.0

  • jws1624 posted a comment Sep 2, 2022

    same issue occured when recieved other players wild growth. tickinterval always returns nill in that case

  • nayooz posted a comment Sep 5, 2022

    I found a fix. Vuhdo have updated their version of the lib to fix tickinterval.

     

    Replace the broken version with LibHealComm from Vuhdo v3.138-wotlkc-beta-4-wrath. This worked for me with Zperl.

  • craigcurse posted a comment Sep 10, 2022

    [see below]

    This is my recommended fix, which properly passes the tickInterval in messages, and if receiving from a version that does not send the tickInterval (ie nil) then it should still work, using 1 as the tickInterval instead of ignoring Wild Growth completely...

    <del>diff --git i/LibHealComm-4.0.lua w/LibHealComm-4.0.lua
    index a56e8ab..d7c2326 100644
    --- i/LibHealComm-4.0.lua
    +++ w/LibHealComm-4.0.lua
    @@ -2389,6 +2389,8 @@ local function parseHotHeal(casterGUID, wasUpdated, spellID, tickAmount, totalTi
     	if type(tickAmount) == "table" then
     		tickAmount = table.concat(tickAmount, "@")
     	end
    +
    +	if( not tickInterval ) then tickInterval = 1 end
     	-- Retrieve the hot information
     	local inc = 2
     	local stack, duration, endTime = findAura(casterGUID, spellID, ...)
    @@ -2566,9 +2568,10 @@ function HealComm:CHAT_MSG_ADDON(prefix, message, channel, sender)
     		-- New updated heal somehow before ending - U:&lt;totalTicks&gt;:&lt;spellID&gt;:&lt;amount&gt;:&lt;tickInterval&gt;:target1,target2...
     	elseif( commType == "U" and arg1 and arg3 ) then
     		parseHotHeal(casterGUID, true, spellID, tonumber(arg1), tonumber(extraArg), tonumber(arg2), strsplit(",", arg3))
    -		-- New variable tick hot - VH::&lt;spellID&gt;:&lt;amount&gt;:&lt;isMulti&gt;:&lt;tickInterval&gt;:target1,target2...
    +		-- New variable tick hot - VH::&lt;spellID&gt;:&lt;amount&gt;:&lt;tickInterval&gt;:&lt;totalTicks&gt;:target1,target2...
     	elseif( commType == "VH" and arg1 and arg4 ) then
    -		parseHotHeal(casterGUID, false, spellID, arg1, tonumber(arg3), nil, string.split(",", arg4))
    +		print(message)
    +		parseHotHeal(casterGUID, false, spellID, arg1, tonumber(arg3), tonumbers(arg2), string.split(",", arg4))
     		-- New updated variable tick hot - U::&lt;spellID&gt;:amount1@amount2@amount3:&lt;tickTotal&gt;:target1,target2...
     	elseif( commtype == "VU" and arg1 and arg3 ) then
     		parseHotHeal(casterGUID, true, spellID, arg1, tonumber(arg2), nil, string.split(",", arg3))
    @@ -2630,7 +2633,7 @@ HealComm.bucketFrame:SetScript("OnUpdate", function(self, elapsed)
     							if( not hasVariableTicks ) then
     								sendMessage(format("H:%d:%d:%d::%d:%s", totalTicks, data.spellID, amount, tickInterval, targets))
     							else
    -								sendMessage(format("VH::%d:%s::%d:%s", data.spellID, table.concat(amount, "@"), totalTicks, targets))
    +								sendMessage(format("VH::%d:%s:%d:%d:%s", data.spellID, table.concat(amount, "@"), tickInterval, totalTicks, targets))
     							end
     						end
     
    @@ -2714,7 +2717,7 @@ function HealComm:COMBAT_LOG_EVENT_UNFILTERED(...)
     						parseHotBomb(sourceGUID, false, spellID, bombAmount, strsplit(",", bombTargets))
     						sendMessage(format("B:%d:%d:%d:%s:%d::%d:%s", totalTicks, spellID, bombAmount, bombTargets, amount, tickInterval, targets))
     					elseif( hasVariableTicks ) then
    -						sendMessage(format("VH::%d:%s::%d:%s", spellID, table.concat(amount, "@"), totalTicks, targets))
    +						sendMessage(format("VH::%d:%s:%d:%d:%s", spellID, table.concat(amount, "@"), tickInterval, totalTicks, targets))
     					else
     						sendMessage(format("H:%d:%d:%d::%d:%s", totalTicks, spellID, amount, tickInterval, targets))
     					end
    </del>

     


    Edited Sep 10, 2022
  • craigcurse posted a comment Sep 10, 2022

    Because Curse is terrible at actually doing code in these comments, I've pushed the fix to a repo clone here:

     

    https://github.com/Lurg/LibHealComm-4.0/commit/d90168139dc6a407438ee5c2fe421e1db33c0aee [see below]


    Edited Sep 10, 2022
  • craigcurse posted a comment Sep 10, 2022

    Actually, looks like Azilroka decided to fix basically the same way, but putting the tickInterval in the extraArgs argument instead; do not use my patch - use theirs which probably will propagate out here to curse soon anyway...

     

    https://github.com/Azilroka/LibHealComm-4.0/releases/tag/v1.8.7


    Edited Sep 10, 2022

To post a comment, please login or register a new account.