This site makes extensive use of JavaScript.
Please enable JavaScript in your browser.
Live
PTR
10.2.5
PTR
10.2.6
IHML dead?
Post Reply
Return to board index
Post by
Wanderingfox
So I'm just coming back to the game, and one of my favorite quality of life addons was I Have Macro LOL. It is apparently dead since 4.3... Does anyone know of a working fix for it, or a replacement addon?
Post by
pelf
It doesn't look like its functionality would be that hard to code ... do you know what error it's raising?
Post by
Myrroddin
Have you checked if it is still working? Character screen, AddOns button, new window, top right, turn load out of date addons on.
You should do this every patch Blizzard releases, as they turn it off every patch.
If an addon still doesn't work, then you know it is indeed broken.
Post by
Wanderingfox
It looks like the new talent system is messing with it... I'm not familiar enough with the APIs these days to guess at the change required.
Line 840:
local activetalent = GetActiveTalentGroup(false, false)
Date: 2012-11-05 16:11:01
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\IHML\IHML.lua line 840:
attempt to call upvalue 'GetActiveTalentGroup' (a nil value)
Debug:
(tail call): ?
IHML\IHML.lua:840: SwapMacro()
IHML\IHML.lua:610:
IHML\IHML.lua:600
(tail call): ?
: ?
"]:9:
"]:5
(tail call): ?
...ce\AddOns\Baggins\libs\AceAddon-3.0\AceAddon-3.0.lua:543: EnableAddon()
...ce\AddOns\Baggins\libs\AceAddon-3.0\AceAddon-3.0.lua:636:
...ce\AddOns\Baggins\libs\AceAddon-3.0\AceAddon-3.0.lua:621
: LoadAddOn()
..\FrameXML\UIParent.lua:299: UIParentLoadAddOn()
..\FrameXML\UIParent.lua:322: CombatLog_LoadUI()
..\FrameXML\UIParent.lua:692:
..\FrameXML\UIParent.lua:657
Also, gets this on line 660:
This could just be due to it missing the default macro, only saw it once.
if (strfind(c.current, L) == nil) then
Date: 2012-11-05 16:14:39
ID: 2
Error occured in: Global
Count: 1
Message: ..\AddOns\IHML\IHML.lua line 660:
bad argument #1 to 'strfind' (string expected, got nil)
Debug:
(tail call): ?
: strfind()
IHML\IHML.lua:660: ?()
...ibDataBroker\CallbackHandler\CallbackHandler-1.0.lua:147:
...ibDataBroker\CallbackHandler\CallbackHandler-1.0.lua:147
"]:4:
"]:4
: ?
"]:13: ?()
...ibDataBroker\CallbackHandler\CallbackHandler-1.0.lua:92: Fire()
...ce\AddOns\Baggins\libs\AceEvent-3.0\AceEvent-3.0.lua:120:
...ce\AddOns\Baggins\libs\AceEvent-3.0\AceEvent-3.0.lua:119
Post by
pelf
http://www.wowpedia.org/API_GetActiveTalentGroup
=>
http://www.wowpedia.org/API_GetActiveSpecGroup
Post by
Wanderingfox
That fixed that one, now getting:
Date: 2012-11-05 22:06:50
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\IHML\IHML.lua line 1227:
attempt to call upvalue 'GetMacroIconInfo' (a nil value)
Debug:
(tail call): ?
IHML\IHML.lua:1227: member()
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:249:
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:197
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1355:
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1055
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1082:
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1055
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1588: FeedGroup()
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1513:
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1493
(tail call): ?
: ?
"]:9:
"]:5
(tail call): ?
...erface\AddOns\Baggins\libs\AceGUI-3.0\AceGUI-3.0.lua:314: Fire()
...ibs\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:518: Select()
...ibs\AceGUI-3.0\widgets\AceGUIContainer-TreeGroup.lua:526: SelectByValue()
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1684: FeedGroup()
...nfig-3.0\AceConfigDialog-3.0\AceConfigDialog-3.0.lua:1860: Open()
IHML\IHML.lua:905: ?()
...ddOns\Baggins\libs\AceConsole-3.0\AceConsole-3.0.lua:94: ?()
..\FrameXML\ChatFrame.lua:4358:
..\FrameXML\ChatFrame.lua:4304
: ChatEdit_ParseText()
..\FrameXML\ChatFrame.lua:4052: ChatEdit_SendText()
..\FrameXML\ChatFrame.lua:4091: ChatEdit_OnEnterPressed()
:1:
:1
: ?
wowpedia is suggesting that a call needs to occur to GetNumMacroIcons() prior to that call, but I'm not sure how to work it into the line.
image = function() return GetMacroIconInfo(mBody and mIcon or (c.current ~= nil and currentIcon or 1)), 56, 56 end,
Post by
pelf
image = function() GetNumMacroIcons(); return GetMacroIconInfo(mBody and mIcon or (c.current ~= nil and currentIcon or 1)), 56, 56 end,
Not sure if the semicolon is even needed there.
Post by
Wanderingfox
Ah that makes sense... I just wasn't versed in how Lua did its anonymous functions (too much coding in PLT-Racket lately).
Made that change, but it didn't resolve the issue (still get same exact error).
Post by
Neffi
I'm guessing you'll see:
local GetMacroIconInfo = GetMacroIconInfo
somewhere above that.
nil
means it no longer exists.
Post by
Wanderingfox
i'm familiar with nil and it's meaning... Just not used to Lua scripting.
That line does in fact show up at the head of the file, although I'm at a loss as to how it's being nil'd and how to resolve it.
Post by
pelf
Why would a local copy of the reference become nil if it's a valid global?
Post by
Neffi
Because it's no longer a valid global.
Post by
pelf
Oh, I was expecting Wowpedia's API pages to be consistent. Silly me.
http://www.wowpedia.org/API_GetMacroIconInfo
Look here for the replacements. They're at the top, I guess.
Can't you do this for yourself, Fox?
:)
Post by
Wanderingfox
Probably, but I'm juggling like 4 or 5 different projects atm for college and well... looking up WoW API calls while trying to also write a filesystem in C leads to *!@# like trying to use pointers in Lua :P
Post by
pelf
Sounds fun. If you actually get stuck on something that isn't just finding what API functions to call, let us know.
Post by
GTMistral
Hmm... pointers!
WowAddon *myAddon = new WowAddon();
// ...
If only addons were made in C#, that'd be neat! :) No more interprated (spelling?) language, hello compiled and efficient speed! :P
Post by
Neffi
Lua isn't interpreted though. It's compiled and run on a VM similar to C#. Lua is actually register-based and extraordinarily fast. Depending on who you ask, it's either the fastest dynamic language out there or close to it.
I'd much rather be working in Lua than C# or anything else for that matter. It's absolutely the perfect environment for what we're doing.
Post by
GTMistral
It's compiled everytime you start a session then? :s
Post by
Neffi
Compiled at runtime, yes. Probably about 20% of the loading bar when you first log in is compilation. It can be pre-compiled (into bytecode) for speed and size, but WoW doesn't support this as a matter of safety and security.
Lua's syntax is so simple that this really isn't a problem. Being register-based probably helps it. That's also part of why it's so fast: the design of the VM is much more similar to the design of a CPU than stack-based VMs, so the CPU often can make real use of optimization techniques related to caching and prediction. Stack-based VMs often manage their code too heavily, and the speed of the language comes in as an after-thought as a matter of optimization
after the fact
. Lua does not suffer this kind of design.
If you peruse the Lua source code, you might be surprised at simple and thin its abstraction is. It's really a beautiful piece of engineering. I loved Lua from the start, but its VM's impeccable source code only confirms that it's my favorite language by a longshot.
Post by
pelf
Lua is
definitely
the better choice for this application
:)
. I like some of Ruby's syntax better ... but Lua has many of the same oh-god-that-is-AWESOME moments in its syntax too.
Post Reply
You are not logged in. Please
log in
to post a reply or
register
if you don't already have an account.