Downshit and Holyshit question
Posted: Mon Dec 16, 2013 8:47 am
How do you make it so when using downshits and holyshits to auto rebuff, it will check the recast time so it doesn't spam cast it till able to cast?
A Custom-Legit EverQuest emulated server
http://www.thehiddenforest.org/forum/
http://www.thehiddenforest.org/forum/viewtopic.php?f=204&t=10577
Code: Select all
holyshit1=/if (!${Me.Song[Cry Havoc].ID} && !${Me.Song[Strike of Savagery].ID}) /casting 83622
MACRO
Select this text.Show scroll bars.Show less of this text.Show more of this text.
holyflag0=1
holyshit0=/docommand ${If[${Math.Calc[${Macroquest.Running}\1000%X]}==0, <stuff to do if true>, <stuff to do if false>]}
The ${If[]} will be true exactly 1 second every X seconds. Between modulo and integer division statements, you can narrow down a time range which won't trigger needlessly and will be broad enough to trigger at all. Turn Macroquest.Running milliseconds into seconds using integer division (\1000). Then use modulo x (%x) to look at every Xth second.
MACRO
Select this text.Show scroll bars.Show less of this text.Show more of this text.
holyflag0=1
holyshit0=/if (<whatever conditions you need to check>) /multiline ; /melee holyflag0=0; /timed X /melee holyflag0=1; <whatever it is you want to do>
This will check conditions. If conditions are met, it will do whatever. It will turn holyflag0 OFF for X deciseconds, to account for the delay. After X deciseconds, holyflag0 will turn back ON, so the conditions are checked again.
Puffda wrote:How do you make it so when using downshits and holyshits to auto rebuff, it will check the recast time so it doesn't spam cast it till able to cast?
Code: Select all
Spell Buff:
/if (!${Me.Buff[SpellNameHere].ID} && ${Cast.Ready[SpellNameHere]}) /cast "SpellNameHere"
Clicky Buff:
/if (!${FindItem[ClickyNameHere].Timer} && !${Me.Buff[${FindItem[ClickyNameHere].Spell}].ID}) /casting "${FindItem[ClickyNameHere]}"|item
Grey wrote:Puffda wrote:How do you make it so when using downshits and holyshits to auto rebuff, it will check the recast time so it doesn't spam cast it till able to cast?
Format to fit your needs.Code: Select all
Spell Buff:
/if (!${Me.Buff[SpellNameHere].ID} && ${Cast.Ready[SpellNameHere]}) /cast "SpellNameHere"
Clicky Buff:
/if (!${FindItem[ClickyNameHere].Timer} && !${Me.Buff[${FindItem[ClickyNameHere].Spell}].ID}) /casting "${FindItem[ClickyNameHere]}"|item
Code: Select all
downshit0=/if (!${FindItem[Ares, Shield of Immortality].Timer} && !${Me.Buff[${FindItem[Ares, Shield of Immortality].Spell}].ID}) /casting "${FindItem[Ares, Shield of Immortality]}"|ranged
Code: Select all
downshit0=/if (!${Me.Buff[Immortality].ID} && !${Immortality].ID} && !${Me.Moving} && !${Me.Invis} && !${Me.Feigning}) /multiline ; /melee downflag0=0; /timed 200 /melee downflag0=1; /casting "Ares, Shield of Immortality"|ranged
downshit0=/if (!${FindItem[Ares, Shield of Immortality].Timer} && !${Me.Buff[${FindItem[Ares, Shield of Immortality].Spell}].ID}) /casting "${FindItem[Ares, Shield of Immortality]}"|ranged
Dreos wrote:downshit0=/if (!${FindItem[Ares, Shield of Immortality].Timer} && !${Me.Buff[${FindItem[Ares, Shield of Immortality].Spell}].ID}) /casting "${FindItem[Ares, Shield of Immortality]}"|ranged
I think Me.Buff should be Immortality, because that's the name of the buff Ares gives. And I'm not 100% but I believe that it should be /casting "${FindItem[Ares, Shield of Immortality]}"|item, like Grey had it, not ranged. Could be wrong though!
Tristhan wrote:Dreos wrote:downshit0=/if (!${FindItem[Ares, Shield of Immortality].Timer} && !${Me.Buff[${FindItem[Ares, Shield of Immortality].Spell}].ID}) /casting "${FindItem[Ares, Shield of Immortality]}"|ranged
I think Me.Buff should be Immortality, because that's the name of the buff Ares gives. And I'm not 100% but I believe that it should be /casting "${FindItem[Ares, Shield of Immortality]}"|item, like Grey had it, not ranged. Could be wrong though!
- Yeah you need to look for the buff ${Me.Buff[Immortality].ID}
- /casting "Ares, Shield of Immortality" item should be enough (keep it simple & clean)
(Spy on): Btw if you use MQ2CAST or spellroutine the command /casting will exchange items so it would be good to NOT all inventoryslots filled with bags
Code: Select all
downshit0=/if (!${Me.Buff[Immortality].ID} && !${Immortality].ID} && !${Me.Moving} && !${Me.Invis} && !${Me.Feigning}) /multiline ; /melee downflag0=0; /timed 200 /melee downflag0=1; /casting "Ares, Shield of Immortality"|ranged