• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Is There a Way to Automatically Detect When You're Out of Mod Rods?

Joined
Jun 6, 2017
RedCents
455¢
I know the alt code to ask my Mage for more mod rods. He doesn't cast any on his own because he's rarely out of mana. What I'd like to be able to do is ask my Mage to summon mod rods (maybe in the buffs section) when I'm out.

What I'm trying to do so far is this, but it doesn't work.

Buffs19=Command:/dex MageName /alt act 596|Cond23
Cond23=!${FindItem[Summoned: Radiant Modulation Shard].InvSlot}

It will run the command over and over again even if there IS a mod rod in my pack already.

I probably don't have the FindItem line correct. I just copied it from some other post that showed it formatted that way.

Could this work?

Any help would be greatly appreciated. Thanx!
 
I don't run a mage, but this is how I have my enchanter's mind crystals setup:

INI:
Buffs3=Sanguine Mind Crystal
BuffsCond3=!${FindItemCount[Sanguine Mind Crystal]}

Buffs4=Azure Mind Crystal
BuffsCond4=!${FindItemCount[Azure Mind Crystal]}

(I use Mule Assist, and this is from the enchanters INI file, but it works so maybe you can borrow the condition syntax, see if that works better?)

EDIT: Updated with CTWN's suggestion here.
 
Last edited:
I think Samagram's is more efficient than Kambics.

Why do I feel that way?
In Samagram's case the code will search through their inventory until they find the first item matching the given name, then simply return the inventory slot that it's currently in.
Kambic's wants a count. So it will check every single inventory slot in an effort to ensure that it counts every single one and then return that number as the count.
Samagram's will stop the moment it finds one, Kambic's will keep going continuing to search for an item.
In the case that the item is lore. You cannot have more than one so in Kambic's case it would be like finding the only wallet you own and continuing to search for it despite having what you need already.
If this were in fact an item required as a reagent, or a consumable you could have multiple of that you wanted to ensure you kept a minimum amount of I would say a count would be reasonable. Such as a throwing knife, food or drink, and you never wanted less than 5 before summoning more, then getting a count would make perfect sense.

Without looking at the code, I cannot confirm that there is any additional steps to determine the .InvSlot or the .ID of the item found. But I do know that MacroQuest doesn't know the ID of items by name unless you have the item on you. So simply searching for the ${FindItem[Item Name].ID} could also be an option. Though I would think if you're not specifically using the InvSlot for anything that just getting the ID may be less to process, but maybe not.

With that said it's unlikely either method mentioned prior would have any noticeable impact on performance for the specific entry. But if you consider the totality of the macro and the need for it to process other information, if wrote in ways that waste cycles for no reason other than lack of consideration for the added thinking it has to do then a program can consume a lot more processing over a period of time. Thus I provided the additional information and comparison for your consideration to allow you to make a call on if you would like to use your current method or one of the available alternatives.

CWTN
 
Thanks for both of your input. I think the thing I'm running up against with my method is that it doesn't really work. It looks good on paper but my Enchanter will ask for Mod Rods, over and over, even if it already asked and got one. It gets one and then continues to ask, which looks really odd. It causes the Mage to cast mod rods over and over again, for apparently no reason, to anyone else who might be looking.

I'm not sure why it does that so I thought it must be the syntax. I've also seen it represented this way, with an equals sign before the item name:

Cond23=!${FindItem[=Summoned: Radiant Modulation Shard].InvSlot}

This also doesn't work and will sometimes crash the macro.

I'm going to try a couple of the things you guys suggested and see if any work, and if one way works better than another.

Thanks for the input. :)

I think Samagram's is more efficient than Kambics.

Why do I feel that way?
In Samagram's case the code will search through their inventory until they find the first item matching the given name, then simply return the inventory slot that it's currently in.
Kambic's wants a count. So it will check every single inventory slot in an effort to ensure that it counts every single one and then return that number as the count.
Samagram's will stop the moment it finds one, Kambic's will keep going continuing to search for an item.
In the case that the item is lore. You cannot have more than one so in Kambic's case it would be like finding the only wallet you own and continuing to search for it despite having what you need already.
If this were in fact an item required as a reagent, or a consumable you could have multiple of that you wanted to ensure you kept a minimum amount of I would say a count would be reasonable. Such as a throwing knife, food or drink, and you never wanted less than 5 before summoning more, then getting a count would make perfect sense.

Without looking at the code, I cannot confirm that there is any additional steps to determine the .InvSlot or the .ID of the item found. But I do know that MacroQuest doesn't know the ID of items by name unless you have the item on you. So simply searching for the ${FindItem[Item Name].ID} could also be an option. Though I would think if you're not specifically using the InvSlot for anything that just getting the ID may be less to process, but maybe not.

With that said it's unlikely either method mentioned prior would have any noticeable impact on performance for the specific entry. But if you consider the totality of the macro and the need for it to process other information, if wrote in ways that waste cycles for no reason other than lack of consideration for the added thinking it has to do then a program can consume a lot more processing over a period of time. Thus I provided the additional information and comparison for your consideration to allow you to make a call on if you would like to use your current method or one of the available alternatives.

CWTN
${FindItem[Item Name].ID} did the trick. It asks for a Mod Rod when I don't have one and doesn't ask when I do. This is what's working for me.

Buffs19=Command:/dex MageName /alt act 596|Cond23
Cond23=!${FindItem[Summoned: Radiant Modulation Shard].ID}

Thanks so much for the help with this. I really appreciate it. Hopefully, others will get some use out of this as well. :)

${FindItem[Item Name].ID} did the trick. It asks for a Mod Rod when I don't have one and doesn't ask when I do. This is what's working for me.

Buffs19=Command:/dex MageName /alt act 596|Cond23
Cond23=!${FindItem[Summoned: Radiant Modulation Shard].ID}

Thanks so much for the help with this. I really appreciate it. Hopefully, others will get some use out of this as well. :)

P.S. For those that don't know, the /dex is a DanNet execute command for the target character.
 
I am not nearly smart enough to answer this question from an RG technical standpoint. however... theres an easy enough fix until u get that sorted out. make a hotbar box of your important clicks.. add each mod rod u use to a box, u will always know what clicks u have avilable and when the programs you are using access them.

ZD
 
I am not nearly smart enough to answer this question from an RG technical standpoint. however... theres an easy enough fix until u get that sorted out. make a hotbar box of your important clicks.. add each mod rod u use to a box, u will always know what clicks u have avilable and when the programs you are using access them.

ZD
Thanks. That's a good idea.

What I wanted was something automated so if I was on a different screen the character needing a Mod Rod would automatically ask for one. I just didn't want them asking if they didn't actually need one.

We found a fix that does that. I had the syntax off a bit but it's working correctly now.

This is what we came up with:

Buffs19=Command:/dex MageName /alt act 596|Cond23​
Cond23=!${FindItem[Summoned: Radiant Modulation Shard].ID}​
 
I think Samagram's is more efficient than Kambics.

[snip]

Thanks! Half the reason I share stuff, to learn more lol

INI:
Buffs3=Sanguine Mind Crystal
BuffsCond3=!${FindItem[Sanguine Mind Crystal].ID}

Buffs4=Azure Mind Crystal
BuffsCond4=!${FindItem[Azure Mind Crystal].ID}

Updated to this and tested successfully.
 
I like both ideas, but I would be probably want to make sure that the mage is only casting while out of combat. It seems to me like a lot of wasted DPS if the mage is casting rods at different intervals for different toons.
 
For KA

Code:
Buffs15=/dgza /mag modrod|Cond20
Cond20=${FindItemCount[Summoned: Dazzling Modulation Shard]} < 1

Can also direct tell the mage if you know the name.
 
Kissassist has native functionality to count summoned items.

Here's my commands and conditions for a lowish level mage (supplying modrods), and a non mage caster (begger of modrods):
[CODE lang="ini" title="Magician summon, provide and consume modrods"][Buffs]
## -- Get Mana -- ##
Buffs3=Summoned: Modulating Rod|Mana|85|Cond25

## -- Modrods -- ##
# Summon Modrods
Buffs14=Modulating Rod|Summon|Summoned: Modulating Rod|1
# Provide Modrods
Buffs15=Modulating Rod|Summon|Summoned: Modulating Rod|1|alias|modrod

[KConditions]
## -- ModRods -- ##
Cond25=${Me.ItemReady[Summoned: Modulating Rod]}
[/CODE]

[CODE lang="ini" title="Non-mage beg for and consume modrods"][Buffs]
## -- Get Mana -- ##
Buffs3=Summoned: Modulating Rod|Mana|85|Cond29

## -- Beg ModRods -- ##
Buffs20=Summoned: Modulating Rod|begfor|1|alias|modrod|Cond30

[KConditions]
## -- ModRods -- ##
Cond29=${Me.ItemReady[Summoned: Modulating Rod]}
Cond30=${SpawnCount[group class magician]}
[/CODE]
 
Last edited:
Is There a Way to Automatically Detect When You're Out of Mod Rods?

Users who are viewing this thread

Back
Top
Cart