WeakAuras

WeakAuras

200M Downloads

Error in SetVertexColor

fspano118 opened this issue ยท 2 comments

commented

Is there an existing issue for this?

  • I have searched the existing open and closed issues.

Description

While running a WA to show tick damage + color for skull of impending doom damage, I ran into the following error. WA is provided below in reproduction steps
The function used in the WA to set color

function(progress, r1, g1, b1, a1, r2, g2, b2, a2)
    
    if(aura_env.dmg < 100) then
        return WeakAuras.GetHSVTransition(progress, r1, g1, b1, a1, r2, g2, b2, a2)
    end
    
    progress =  (aura_env.dmg - 100) / 400
    return WeakAuras.GetHSVTransition(progress, 0, 255, 0, 255, 255, 0, 0, 255)
end

The error I was getting was below, as well as the color not actually showing on the icon

Message: Lua error in aura 'Flee 2': Custom Color
WeakAuras Version: 5.11.3
Aura Version: 1.0.3
bad argument #5 to '?' (Usage: self:SetVertexColor(color [, a]))
Time: Sat Mar  9 16:12:09 2024
Count: 905
Stack: Lua error in aura 'Flee 2': Custom Color
WeakAuras Version: 5.11.3
Aura Version: 1.0.3
bad argument #5 to '?' (Usage: self:SetVertexColor(color [, a]))
[string "=[C]"]: in function `SetVertexColor'
[string "@Interface/AddOns/WeakAuras/RegionTypes/Icon.lua"]:439: in function <Interface/AddOns/WeakAuras/RegionTypes/Icon.lua:431>
[string "=[C]"]: in function `xpcall'
[string "@Interface/AddOns/WeakAuras/Animations.lua"]:126: in function <Interface/AddOns/WeakAuras/Animations.lua:17>

Locals: (*temporary) = "bad argument #5 to '?' (Usage: self:SetVertexColor(color [, a]))"

I was able to fix the error and correctly display the colors by replacing the function ColorAnim in \Interface\AddOns\WeakAuras\RegionTypes\Icon.lua with

  function region:ColorAnim(r, g, b, anim_a)
    region.color_anim_r = r;
    region.color_anim_g = g;
    region.color_anim_b = b;
    region.color_anim_a = anim_a;
    if (r or g or b) then
      local a = anim_a or 1;
    end
    icon:SetVertexColor(r or region.color_r, g or region.color_g, b or region.color_b, a);
    if MSQ then
      region.button:SetAlpha(a);
    end`
  end

It fixed all errors, but and hasn't broken any of my other auras, but I haven't done any testing outside of that

WeakAuras Version

5.11.3

World of Warcraft Flavor

Classic

World of Warcraft Region

US/NA

Tested with only WeakAuras

  • Yes

Lua Error

Message: Lua error in aura 'Flee 2': Custom Color
WeakAuras Version: 5.11.3
Aura Version: 1.0.3
bad argument #5 to '?' (Usage: self:SetVertexColor(color [, a]))
Time: Sat Mar  9 16:12:09 2024
Count: 905
Stack: Lua error in aura 'Flee 2': Custom Color
WeakAuras Version: 5.11.3
Aura Version: 1.0.3
bad argument #5 to '?' (Usage: self:SetVertexColor(color [, a]))
[string "=[C]"]: in function `SetVertexColor'
[string "@Interface/AddOns/WeakAuras/RegionTypes/Icon.lua"]:439: in function <Interface/AddOns/WeakAuras/RegionTypes/Icon.lua:431>
[string "=[C]"]: in function `xpcall'
[string "@Interface/AddOns/WeakAuras/Animations.lua"]:126: in function <Interface/AddOns/WeakAuras/Animations.lua:17>

Locals: (*temporary) = "bad argument #5 to '?' (Usage: self:SetVertexColor(color [, a]))"

Reproduction Steps

import aura below + use skull of impending doom

Last Good Version

Som

Screenshots

No response

Export String

!WA:2!nF1tVnUXv8vRoST6qSxLuJe3CGqg11kq1w276uG2S1ROSKTcKLCPKS39K0qYHKtxksIzgAlVbzbwFAV0EWNlqb05EYh7T6pbeg9lqnqV1Mc4pb5nZijl5nzRttkqhiko)5nZ7nV3V3VzyQQz7N1oR9BkmKyfg0kmMAHtrh00XHH57U1)4VFprzOvmJh2VnEapc7ehyXjHbRKpJguioRGIPOU4GJw1UVR2NPTEXI514E4a54IcfZJPbA5Yj7bhylFNzQHMEjYacqpzKj80dw6Kcl8xhCokWYlKUFijGBwUsJ2vmU0km03o84GwhtIW9IM)gRStKnIJnJLV2iM6h9t948i2VAT1og5gUkjCTnl7e9SOg1Ix7XuKCdX(udghr5lBQwOCzYCMDyxvdpthsaH5LrhEXxozUO5NzB)eTIjZ37uoL46IPS3Bz6OQV5JggZWDr9dJd4ENAdtsOSSRBeG6Jzzo1gZ4DG10mYhDcMEQq6yODVZyryF)gGulQx1hJVqmIqArxExXInXhHd47tXoKbx1A)k1R3D)kg1AUDTYNRS6UEeBCYC6I1lzrD(jrqRjZSvSdmtA3TlTxPDQmEkcHmKJNm3G03Bs4w2vbTUf0K12qwf(XOws7DCB4h4fDX8B3R0Fj20Yw2O(ixv1(egdBN)gqbGPK6q7vprlx5M7PxQD36n3PBLdGaF3onQwRoe)RSDUVzCMdYNH1EBSMFOfYxt5MLgce1yyFSfFL1licbch7k5ucKl)e894DOWCME2H0P3P3A03HP92wMqjJmKIf0kboQoCI)Qvjb2Ig6NiTSPCG3yKc1UzXnE83v9PcIApb8WkOtPogL6wA)9Rx7B1XYPX)hwSCZcdhbTU9YDRmhfu4x)9W2NOV9Q1Q1BB(3sFk82DrFqLtLzH1Szzs(5dlh23eX1Qh6sJdKwHbN0hBFLk3z7rj3rV(wKKkK34CFidAqervVnzAy4Mf0oSu3DWscbDi9CcASGkiNFAsZVT1ty2xkilMqG0tLWZI(43r2K2vY5ipdqO)ErpCmJJbIyx1h5Y8MqcjLy4nsNS4qBGX1XPnWFq3Ts99R2P(zaNNIgCbGm5(5)FlzYpWmiVlO3RMnTXOYEnp476Q9)10rt8VI1zIvPbqZwY8HaNWvuiY7WkpzHZ8nKnwmZTzyGze9qXzYhHBRqp7fAJ)Z37A4SFmna5FaCclGI(9x)cmoQeGYTaekGR8odfq6lZd(0K3R6LJtqKNPrzy4ko2SKL0dcdWxGrmClofh4Y9EWPIwcKBYt17JibV5HMwH(HuJ0MmikHhKw1wF3T(N)rr5lvT3z3T(3BjklMSuYCj6jpvj)jPnq(rEOukXkLo7jPotwvQK5YoivsPhO6PkKumi1VCsUrefOxWmwbnk4XDHht4bbpuipXfEmHh0g5F7a2D4syhIrVqCMcBviwUBRdAtrbmY)fkEgeZ4PcXtTznLFHYuwt7XfNjsFNSd4WWn2CZBEpUHQDEbsXKgYHl5Lk53KS1zcYjPpTxYdRk6bIkpfC0IadqpXqCbIa7rpsHG(XdH7czGDf3(7twizPlHMMiRx4sHBRz)MFsuwoCBYUmpeCpZNPUsAQZK9j(l3pZkA(PKOSq1FEQuPsFLQxSVJ8gR6L60Uz07l7efdNuaWsRdj2Cp9sqZRLda3fdBl781xQUT7ZhPXlKJ)7GZyioNK8GHQTS4IU6nA2OsYsuWUfYmukO0d85PbO5Fsu(l7U1x9kr5pKwz6oHb8O5RsjVu73gJSbpcsRD7r71z18LY(ooKAFiffD6HJQOmOJimIPV4M3tnt5(9IMDa61U6nB3U5ExorPYJgGHQxRrLzCTZQoHOTiVeNFKBySJp6JM45bzOGtSR1OkqENhM46Xz6(HiBh6lHuC4q77BYHSXa(cg9J95KmsecYhyw6zy5JySfs4z0fmiQkGwfvmvNRzs6hfs56IVnQ3qQeNiZF)IZjbkfd9S85qvlCf5jS9I(qIBqif3ms(nfYERqPHuwpZUCe4VYApuqejX6SmgJIwqj6dg)fnIq72eMqABVnIj2N)ON3yadvsp)ov1fiipJJfifM(ldd7NYKH7dqAJ1xT4QpAip0Ae((hv4FLJyBk(6bTnIYcB(YJ0aWOcuM4Ej1sFTYlxLcS9IDNzRYgvQ04ChrhadjapeSFboe3musGyPXExcgbmPr7YmNnbQN8GZTjmXjp1G58H3)9)SthVR6DX4AvSDXEzzMBU66RV6JYE0F7zF9
commented

Your code is wrong, the "progress" value passed to GetHSVTransition needs to be between 0 and 1, your code doesn't ensure that.

You also should have debugged this first by figuring out what your custom code returns, instead of wrongly editing WA sources.

commented

@InfusOnWoW Your response could be a bit more cordial - I didn't open a PR to edit the WA source. It was just something I quickly took a look at and wanted to bring to the contributors attention. The Weakaura in question has been widely used for years through multiple client versions and never broken, so it's not unreasonable to think something had changed further down the stack.