Thread Tools Display Modes
03-31-06, 12:58 AM   #1
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Cirk's Innerfire

Innerfire is a priest class addon that shows the number of charges remaining to Inner Fire on its buff icon.

Current version
Innerfire is currently version 1.10.3.

Download page
http://www.wowinterface.com/download...fo.php?id=4787

Known bugs
None known.

Miscellaneous
Should now work with CTMod's, GypsyMod's, and Satrina's custom buff frames.

Future enhancements
None planned.


-- Cirk of Doomhammer
__________________
Cirk's Addons

Last edited by Cirk : 04-09-06 at 06:52 PM. Reason: version 1.10.3
  Reply With Quote
03-31-06, 08:15 AM   #2
svartalfimposter
A Wyrmkin Dreamwalker
 
svartalfimposter's Avatar
Join Date: Jul 2005
Posts: 49
You're a legend, Cirk, many thanks
  Reply With Quote
03-31-06, 01:34 PM   #3
fivehundred
A Kobold Labourer
Join Date: May 2005
Posts: 1
Originally Posted by Cirk

Future enhancements
None planned.


-- Cirk of Doomhammer
Could you perhaps make it so when you press the forward key it will execute the macro that will turn inner fire on for you? Perhaps add an option to turn this on and off?
  Reply With Quote
03-31-06, 01:49 PM   #4
svartalfimposter
A Wyrmkin Dreamwalker
 
svartalfimposter's Avatar
Join Date: Jul 2005
Posts: 49
You can't hook anything to movement keys.

Patch 1.10 killed a bazillion addons :/
  Reply With Quote
03-31-06, 01:59 PM   #5
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by fivehundred
Could you perhaps make it so when you press the forward key it will execute the macro that will turn inner fire on for you? Perhaps add an option to turn this on and off?
fivehundred, that sort of functionality (hooking the movement keys) is no longer available in 1.10, but I'm not a fan of that sort of thing anyway (and apparently neither is Blizzard) so its not something I'd be adding even if it was possible. I guess I just don't find it that hard to check my buffs are up before I start attacking a new beastie - particularly for spells that might have a significant mana cost (PW:F, AI, etc.). Using a macro for checking Inner Fire (via HasInnerFire) and recasting it if its needed is a convenience feature so that I can be sure that my Inner Fire won't expire on me before I start a new fight, without worrying about wasting mana on unneccessary recasts.

Note too that Innerfire doesn't cast Inner Fire for you in any way shape or form - it just provides you information about Inner Fire when you do cast it (via action button, spellbook, or macro). So if you still want to use another addon that automatically casts all your spells for you, you can, and Innerfire will still show you the charges remaining.


-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-01-06, 05:33 AM   #6
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
I've just uploaded version 1.10.1 of Innerfire which should work now with custom buff frames such as those provided by CTMod and GypsyMod, and Satrina's Buff Frame.

Note that the standard GypsyMod BuffFrame doesn't show any stackable buffs or debuffs, so Innerfire won't work with that. You'll need an "improved" version, like the Reborn one if you use GypsyMod and want Innerfire to work with it. More details are on the download page.

Enjoy!
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-01-06, 06:13 AM   #7
maximoz
A Kobold Labourer
Join Date: Mar 2005
Posts: 1
Originally Posted by Cirk
I've just uploaded version 1.10.1 of Innerfire which should work now with custom buff frames such as those provided by CTMod and GypsyMod, and Satrina's Buff Frame.

Note that the standard GypsyMod BuffFrame doesn't show any stackable buffs or debuffs, so Innerfire won't work with that. You'll need an "improved" version, like the Reborn one if you use GypsyMod and want Innerfire to work with it. More details are on the download page.

Enjoy!
-- Cirk
Woot ... awesome job man !!!

Many many thanks
  Reply With Quote
04-03-06, 05:48 AM   #8
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
I've just uploaded version 1.10.2 of Innerfire:
  • Fixed a bug where Innerfire wasn't recognizing when Inner Fire had failed to be cast from a macro due to you being out-of-mana or when another action was in progress.
  • Slight optimization for processing of damage events.

Hopefully thats all the changes it will be needing for now!

Cheers,
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-03-06, 09:15 AM   #9
Honen
A Deviate Faerie Dragon
Join Date: Mar 2006
Posts: 13
I have downloaded and installed... I am seeing the total number of charges left (which is great in and of itself) however using the script example you have provided I can't seem to get it to "autocast" when I hit 5 charges or 30 secs left.

Could you provide some insight or does it even do that? I could be missing the boat which happens quite frequently lately. :-)
  Reply With Quote
04-03-06, 09:23 AM   #10
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by Honen
I have downloaded and installed... I am seeing the total number of charges left (which is great in and of itself) however using the script example you have provided I can't seem to get it to "autocast" when I hit 5 charges or 30 secs left.

Could you provide some insight or does it even do that? I could be missing the boat which happens quite frequently lately. :-)
Hi Honen. Its not an "autocast" feature as such - you need to put that script (or one like it) into a macro and get into the habit of pressing that macro key before you start a fight (or even midway through) - it won't do that automatically for you

The use of the HasInnerFire function means that if you do have enough charges or enough time left on your Inner Fire buff, it won't do anything (won't cost you any mana, won't trigger the global cooldown, etc.) making it "safe" to press anytime you want to be sure you have your Inner Fire spell up and ready.


Cheers,
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-03-06, 10:43 AM   #11
Honen
A Deviate Faerie Dragon
Join Date: Mar 2006
Posts: 13
Ah... I understand now...

Thanks for your quick response and for all your great work.

Cheers
  Reply With Quote
04-04-06, 09:16 AM   #12
myui
A Kobold Labourer
Join Date: Oct 2005
Posts: 1
I haevn't tried it out yet, but figured I would ask if anyone else had before I do it... Has anyone used this with BibMod? It has a buff frame like some of the other mods that have been mentioned. I will probably try it out anyway, but figured if someone had already tried it I would know what to expect. Thanks in advance for your help.
  Reply With Quote
04-06-06, 06:02 AM   #13
Heino_H
A Murloc Raider
Join Date: Apr 2006
Posts: 8
Localization problems

Hi Cirk,

I tried this nice mod with the german and french client and had some problems with it. The mobs I was fighting were the Shardtooth Maulers in Winterspring. They do normal hits, crit hits and have special attacks (spells?) (special attack in combat log (english): Shardtooth Mauler's Maul hits you for xxx.)

After applying the needed informations to localization.lua

-- French localization

-- Name of spell in spellbook
SPELLNAME_INNER_FIRE = "Feu int\195\169rieur",

-- German localization

-- Name of spell in spellbook
SPELLNAME_INNER_FIRE = "Inneres Feuer",

it detects the 20 charges corrctly, both in the german and french client, but:

Errors in german client:

At the first hit I from a mob I get an error message:

Interface\AddOns\Innerfire\innerfire.lua: 495: invalid capture index

(in german combat log: Splitterzahnraufer trifft Euch für xxx Schaden.)

A hit from a special attack:

Interface\AddOns\Innerfire\innerfire.lua: 511: invalid capture index

(Splitterzahnraufer trifft Euch (mit Schlägel). Schaden: xxx.)

In the french client it seems normal attacks are being handled correctly but the special attack brings:

Interface\AddOns\Innerfire\innerfire.lua: 511: invalid capture index (same as in german client)

Did I miss something important in localization.lua? Or does the mod have problems to extract parameters or whatever from the combat logs when used with clients other than the english?

Informations from GlobalStrings.lua (german):

COMBATHITOTHERSELF = "%1$s trifft Euch für %2$d Schaden.";
COMBATHITCRITOTHERSELF = "%1$s trifft Euch kritisch. Schaden: %2$d.";
SPELLLOGOTHERSELF = "%1$s trifft Euch (mit %2$s). Schaden: %3$d.";
SPELLLOGCRITOTHERSELF = "%1$s trifft Euch kritisch (mit %2$s). Schaden: %3$d.";

GlobalStrings.lua (french):

COMBATHITOTHERSELF = "%s vous inflige %d points de dégâts.";
COMBATHITCRITOTHERSELF = "%s vous inflige un coup critique pour %d points de dégâts.";
SPELLLOGOTHERSELF = "%2$s de %1$s vous inflige %3$d points de dégâts.";
SPELLLOGCRITOTHERSELF = "%s lance %s et vous inflige un coup critique (%d points de dégâts).";

Unfortunally I don't know anything about lua or modding so any help would be highly appreciated. I use the german client and would be more than happy if the mod worked with it

But anyway, thank you for your work and this great mod!

Cheers

PS: Sorry for my bad english
  Reply With Quote
04-06-06, 06:49 AM   #14
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Hi Heino_H! Well all I can say is this has got to be the best and most detailed bug report I've ever seen (and I mean that both in WoW and professionally ). And your english is pretty much perfect so I'd not worry about that!

Basically from what you described from GlobalStrings.lua, it looks to me like the European versions of WoW have some sort of translater that it uses to change English language parameter passing order into something that will make sense in the particular client language, and that information (the 1$, 2$, etc. in the strings you presented) is probably what is upsetting the string parsing capture.

Can you try modifying the Innerfire_ConvertStringToFind function (starts at line 384) to see if we can fix the problem there? Basically we just need to add a line to parse-out the parameter ordering information (since we don't care about the order in Innerfire, just that the parameters are identifiable). So, the function needs to look something like:
Code:
local function Innerfire_ConvertStringToFind(text)
    -- Given a text string containing %s and %d parameters, this function
    -- converts these to a string that can be passed to string.find to extract
    -- the parameters from text formatted using this string.
    local newText = string.gsub(text, "%.", "%%.")
    newText = string.gsub(newText, "%%%d%$", "%%"); -- New line to add
    newText = string.gsub(newText, "%%s", "(.+)");
    newText = string.gsub(newText, "%%d", "(%%d+)");
    return newText;
end
Where the new line to be added should be obvious

Let me know how that goes, and many many thanks for your detective work!

Cheers
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-09-06, 04:23 PM   #15
Hubbard
A Kobold Labourer
Join Date: Apr 2006
Posts: 1
zomg a bug (i think)

With the innerfire mod installed this script casts the highest rank of holy nova you have:

/script CastSpellByName("Holy Nova(Rank 1)")

Obviously that's not a very exciting script, but the same happens for other scripts as well, including my rogue detecting, spam rank 1 holy nova macro.
  Reply With Quote
04-09-06, 05:29 PM   #16
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Originally Posted by Hubbard
zomg a bug (i think)

With the innerfire mod installed this script casts the highest rank of holy nova you have:

/script CastSpellByName("Holy Nova(Rank 1)")

Obviously that's not a very exciting script, but the same happens for other scripts as well, including my rogue detecting, spam rank 1 holy nova macro.
Hey Hubbard! Oops, you are spot on and this is indeed a bug caused by Innerfire (my bad). I'm hoping to have a fix up for this very shortly!

-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-09-06, 06:51 PM   #17
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Innerfire 1.10.3 has just been uploaded:
  • Fixed a bug where Innerfire was preventing any rank other than your highest rank to be cast from a macro (thanks Hubbard).
  • Fixed the code that builds the patterns for parsing the combat log from the global strings so that it should work correctly on the European versions of WoW (thanks Heino_H).
  • Turning off Innerfire will properly remove the count display on the buff.
  • Some internal code changes and cosmetics.

Cheers
-- Cirk
__________________
Cirk's Addons
  Reply With Quote
04-10-06, 05:01 AM   #18
Heino_H
A Murloc Raider
Join Date: Apr 2006
Posts: 8
Still problems with localization

Hello Cirk,

thank you very much for your prompt help and sorry for my delayed reply but I spent some nice days in Prague without internet and wow

Well, here is my update for you (tested only with the german client so far):

With the changes you posted I don't get error messages any more and a normal hit from a mob corretly removes a charge from inner fire.

But a special attack (Shardtooth Mauler's Maul hits you for xxx.) seems to be ignored. I don't get an error message and a look into the combat log raises this suspicion because in the case I get 20 hits (4 of them special attacks) the inner fire symbol disappears after these 20 hits with 4 charges from your counter left.

I looked around and found some hints for an eventual solution in other mods.

SW_Stats

http://ui.worldofwar.net/ui.php?id=1766

In init.lua and localization.DE.lua the author does some funny things with strings. And from what I can read off his comments he had similar problems with languages other than english.

In an article about string manipulation with lua (don't know any more where I found it) the mod MarsNeedyGreedy

http://www.curse-gaming.com/mod.php?addid=2275

was mentioned, in particular the included MarsMessageParser.lua

Sure, this is a shot into the dark since my lua knowledge is still limited to "Hello World"

I will do some further investigations with the german and french client and let you know if I find something useful.

Thank you again for your help and patience

Cheers

Serentim aka Heino_H

EDIT:

After some testing with the german and french client I can say for sure that special attacks (non-crit) do not remove charges (but no error message as mentioned before). I did not get a SPELLLOGCRITOTHERSELF so far but I keep on fighting so I can see what happens then

Last edited by Heino_H : 04-10-06 at 08:26 AM.
  Reply With Quote
04-10-06, 08:21 AM   #19
Cirk
A Cobalt Mageweaver
 
Cirk's Avatar
AddOn Author - Click to view addons
Join Date: Jan 2006
Posts: 226
Hey Heino_H, looking at your results again, I think the problem is that I wasn't handling the "(" and ")" characters when converting the format strings to pattern texts. So, I have a new version of Innerfire_ConvertStringToFind I'm hopinhg you can test for me. I've tested that it works on the default english client, and also wrote a quick test function to simulate it working with the german client strings that you presented in your posts, so I'm fairly confident it will work perfectly .

You'll find the Innerfire_ConvertStringToFind function at line 274 of Innerfire.lua (v1.10.3), and it needs to be replaced with this new version:
Code:
local function Innerfire_ConvertStringToFind(text)
    -- Given a text string containing %s and %d parameters, this function
    -- converts these to a string that can be passed to string.find to extract
    -- the parameters from text formatted using this string.  The approach
    -- used is to first remove any EU client parameter translation order (of
    -- the form %1$s, %2$d, etc.), then to convert all special characters
    -- except % itself, and then finally convert the %s and %d values.
    local newText = string.gsub(text, "%%%d%$", "%%");
    newText = string.gsub(newText, "([%^%$%(%)%.%[%]%*%+%-%?])", "%%%1");
    newText = string.gsub(newText, "%%s", "(.+)");
    newText = string.gsub(newText, "%%d", "(%%d+)");
    return newText;
end
Those sequences of %'s are a bit strange looking I know, but very important, and I'd definitely recommend copying and pasting this if you can rather than re-typing it, since it'd be easy to get it wrong otherwise.

Thanks again for doing this testing!

-- Cirk
PS: If you feel inspired to convert the other text strings in localization.lua and post them here, I'll try and include them in 1.10.4 to have a fully localized version for you!
__________________
Cirk's Addons
  Reply With Quote
04-10-06, 09:24 AM   #20
Heino_H
A Murloc Raider
Join Date: Apr 2006
Posts: 8
Smile

Hello Cirk.

The last changes made my day and the mod now works perfectly with the german client. Thank you very very much

With the french client the mod still behaves a bit *****y. No charges removed when hit with SPELLLOGOTHERSELF. But I'm sure you will find a solution for this

A german translation for localization.lua will come in as soon as possible. That's the least I can do to say thanks.

Cheers
  Reply With Quote

WoWInterface » AddOns, Compilations, Macros » Released AddOns » Cirk's Innerfire


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off