Post your completed (working) macros here. Only for macros using MQ2Data syntax!
Moderator: MacroQuest Developers
-
eqnolife
- decaying skeleton

- Posts: 4
- Joined: Mon Sep 25, 2006 2:48 pm
Post
by eqnolife » Tue Sep 26, 2006 1:04 pm
storekeeper wrote:clickies don't seem to be working so well. Spells mostly interrupt. Could be my imagination but its only when you have to take stuff out of a bag and equip it.
This is also happening to me. What the mac does is opens bag, takes clicky out, swaps it in and immediately swaps it out so it's on your cursor just as the clicky starts casting, then is interrupted. Is there any adjustment's that need to be made?
-
fearless
- Not a Psychic
- Posts: 2684
- Joined: Wed Mar 10, 2004 3:52 pm
Post
by fearless » Tue Sep 26, 2006 1:53 pm
yes, there needs to be a /delay 5s {Me.Casting.ID} put in there somewhere to accomodate the new change.
Reading . . . it's not just for me.
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]
-
storekeeper
- orc pawn

- Posts: 28
- Joined: Sat Jun 26, 2004 4:59 pm
Post
by storekeeper » Tue Sep 26, 2006 8:41 pm
I put delays in all over trying to get it to work, none ever seemed to matter.
-
JimJohnson
- a grimling bloodguard

- Posts: 1299
- Joined: Sat Oct 11, 2003 6:00 am
Post
by JimJohnson » Wed Sep 27, 2006 3:44 am
randomly putitng delays isnt going to help anything
This is the sub that needs fixed, I added 2 statements just like I did in the clickyitem thread and just like fearless sugested 2 posts up. You want to look in your macros, any time it calls casting an item with rightmouse up you will want to add a /delay (2-5)s ${Me.Casting.ID} AFTER the rightmouseup
Code: Select all
Sub Event_ItemCast(string Line)
/varset lastevent Event_ItemCast
|- Sanity check parameter
/if (!${Line.Arg[3].Length}) {
/if (${verbosity}>=0) /${channel} ** Improper use of /icast
/if (${verbosity}>=0) /${channel} -- /icast <itemalias>
/if (${verbosity}>=0) /${channel} -- For example:
/if (${verbosity}>=0) /${channel} -- /icast gobby
/return
}
|- Look for that item's section, return if non-existent
/if (!${Ini[RHItems.ini,${Line.Arg[3]}].Length}) {
/if (${verbosity}>=0) /${channel} ** [${Line.Arg[3]}] not in INI file!
/return
}
/declare fullname string local ${Ini[RHItems.ini,${Line.Arg[3]},FullName]}
|- Is it in a Bag?
/if (${verbosity}>=1) /${channel} ** Attempting to use: ${fullname}
/if (${FindItem[${fullname}].InvSlot.Pack}) {
:OpenPack
/if (!${Window[${FindItem[${fullname}].InvSlot.Pack.Name}].Open}) {
/itemnotify ${FindItem[${fullname}].InvSlot.Pack.Name} rightmouseup
/delay 2
/goto :OpenPack
}
/declare camefrom ${FindItem[${fullname}].InvSlot}
:GrabItem
/if (!${Cursor.ID}) {
/itemnotify ${InvSlot[${camefrom}]} leftmouseup
/delay 2
/goto :GrabItem
}
/declare clickyID int local ${Cursor.ID}
/declare wornat int local ${Cursor.WornSlot[1]}
:SwapFirst
/if (${Cursor.ID}==${clickyID}) {
/itemnotify ${InvSlot[${wornat}]} leftmouseup
/delay 2
/goto :SwapFirst
}
|- Click it
/delay 2
/if (${verbosity}>=1) /${channel} ** Clicking: ${fullname}
/declare previousID ${Cursor.ID}
/itemnotify ${InvSlot[${wornat}]} rightmouseup
| \/ -- Delay
/delay 2s ${Me.Casting.ID}
:SwapAgain
/if (${Cursor.ID}==${previousID}) {
/itemnotify ${InvSlot[${wornat}]} leftmouseup
/delay 2
/goto :SwapAgain
}
|- Put it back
:PutItBack
/if (${Cursor.ID}==${clickyID}) {
/itemnotify ${InvSlot[${camefrom}]} leftmouseup
/delay 2
/goto :PutItBack
}
:SummonedCheck
/if (${Cursor.ID}) {
|- Something was summoned
/autoinv
/delay 2
/goto :SummonedCheck
}
:ClosePack
/if (${Window[${InvSlot[${camefrom}].Pack.Name}].Open}) {
/itemnotify ${InvSlot[${camefrom}].Pack.Name} rightmouseup
/delay 2
/goto :ClosePack
}
} else {
|- Just click it
/if (${FindItem[${fullname}].InvSlot}) {
/if (${verbosity}>=1) /${channel} ** Clicking: ${fullname}
/itemnotify ${FindItem[${fullname}].InvSlot} rightmouseup
| \/ -- Delay
/delay 2s ${Me.Casting.ID}
/delay 2
} else {
/if (${verbosity}>=0) /${channel} ** "${fullname}" not found!
}
}
:CastLoop
/delay 1
/if (${Me.Casting.ID}) /goto :CastLoop
/return
Last edited by
JimJohnson on Fri Sep 29, 2006 1:29 pm, edited 2 times in total.
-
eqnolife
- decaying skeleton

- Posts: 4
- Joined: Mon Sep 25, 2006 2:48 pm
Post
by eqnolife » Wed Sep 27, 2006 9:05 pm
I located the sub that you listed there and made the changes, I even copied and pasted the whole code you listed yet still it is not waiting for the item clicky to cast and land before it swaps it back to the bag it came from thus ending up in an interruption.
I've set it to 3 seconds, 5 seconds even 10 seconds and it still instantly swaps my regular gear back into the slot before it casts.
Any ideas on why it's still doing that?
-
JimJohnson
- a grimling bloodguard

- Posts: 1299
- Joined: Sat Oct 11, 2003 6:00 am
Post
by JimJohnson » Wed Sep 27, 2006 9:06 pm
ill take a look at it later this week if I can find time
-
dewey2461
- Contributing Member

- Posts: 1759
- Joined: Sun Apr 17, 2005 1:53 am
Post
by dewey2461 » Thu Sep 28, 2006 6:45 am
I got mine working by doing the following.
Search for "Click It" approx line 1600 , and add a /delay 5 right before :SwapAgain
This forces a pause after you've sent the click request to the server to start casting. Good luck.
Code: Select all
|- Click it
/delay 2
/if (${verbosity}>=1) /${channel} ** Clicking: ${fullname}
/declare previousID ${Cursor.ID}
/itemnotify ${InvSlot[${wornat}]} rightmouseup
[color=red] /delay 5[/color]
:SwapAgain
/if (${Cursor.ID}==${previousID}) {
/itemnotify ${InvSlot[${wornat}]} leftmouseup
/delay 2
/goto :SwapAgain
}
-
fearless
- Not a Psychic
- Posts: 2684
- Joined: Wed Mar 10, 2004 3:52 pm
Post
by fearless » Thu Sep 28, 2006 8:30 am
fearless wrote:yes, there needs to be a /delay 5s {Me.Casting.ID} put in there somewhere to accomodate the new change.
You want this to be a conditional, IE /delay 5s {Me.Casting.ID}, otherwise it will pause for a full 5 seconds every time it went to click an item.
Reading . . . it's not just for me.
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
[quote="Ccomp5950"]Fearless showed me the light, you too shall learn.[/quote]
-
eqnolife
- decaying skeleton

- Posts: 4
- Joined: Mon Sep 25, 2006 2:48 pm
Post
by eqnolife » Thu Sep 28, 2006 12:11 pm
fearless wrote:fearless wrote:yes, there needs to be a /delay 5s {Me.Casting.ID} put in there somewhere to accomodate the new change.
You want this to be a conditional, IE /delay 5s {Me.Casting.ID}, otherwise it will pause for a full 5 seconds every time it went to click an item.
When i took out hte {Me.Casting.ID} the problem went away. The only thing now is it does pause a bit between the end of the cast and bagging the item, which honestly i don't mind at all... makes it more natural like if i were to do it myself.
-
JimJohnson
- a grimling bloodguard

- Posts: 1299
- Joined: Sat Oct 11, 2003 6:00 am
Post
by JimJohnson » Thu Sep 28, 2006 12:53 pm
dewey2461 wrote:I got mine working by doing the following.
Search for "Click It" approx line 1600 , and add a /delay 5 right before :SwapAgain
This forces a pause after you've sent the click request to the server to start casting. Good luck.
Code: Select all
|- Click it
/delay 2
/if (${verbosity}>=1) /${channel} ** Clicking: ${fullname}
/declare previousID ${Cursor.ID}
/itemnotify ${InvSlot[${wornat}]} rightmouseup
[color=red] /delay 5[/color]
:SwapAgain
/if (${Cursor.ID}==${previousID}) {
/itemnotify ${InvSlot[${wornat}]} leftmouseup
/delay 2
/goto :SwapAgain
}
That is the location I put in the delay in the section I posted up top. I used the conditional but with 2s instead of 5s. So if /delay 5 is working for you it leads me to belive he apply the sub or changes right.
-
dewey2461
- Contributing Member

- Posts: 1759
- Joined: Sun Apr 17, 2005 1:53 am
Post
by dewey2461 » Thu Sep 28, 2006 1:01 pm
I had a problem with /delay 2s !${Me.Casting.ID} not pausing the macro long enough for the spell to start casting. Pausing half a second seems to give enough time to acknowledge the click and begin casting.
I looked up the delay syntax and its
/delay <duration> [conditional]
which reads, pause while conditional=true and elapsed time < duration
so /delay 2s !${Me.Casting.ID} would read, pause while NOT ${Me.Casting.ID} for up to 2seconds.
I put an /echos in and get !NULL so I'm wondering if thats the problem?
-
JimJohnson
- a grimling bloodguard

- Posts: 1299
- Joined: Sat Oct 11, 2003 6:00 am
Post
by JimJohnson » Fri Sep 29, 2006 1:28 pm
Yea that was a typo, it needs to remove the ! and it works right.
-
N3mo
- a lesser mummy

- Posts: 63
- Joined: Tue Apr 13, 2004 11:51 am
Post
by N3mo » Sat Oct 14, 2006 11:31 am
nt
-
Morx
- a lesser mummy

- Posts: 41
- Joined: Mon May 05, 2008 3:12 am
Post
by Morx » Wed May 07, 2008 2:29 am
I'm curious as to when I run it, it spams my MQ window with:
No such 'character' member 'Swimming'
RH.mac @363 (Main): /if ($(Target.ID}) /face
${if[${Me.Swimming},,nolook]}
Happens after a mob is engaged. Is there something I should add into the macro to stop this?
Thank you.