help with buy macro

Need some help with that macro you're working on or aren't quite sure how to get your macro to do something? Ask here!

Moderator: MacroQuest Developers

jago
orc pawn
orc pawn
Posts: 13
Joined: Tue Oct 01, 2002 2:15 am

help with buy macro

Post by jago » Tue Dec 02, 2003 2:35 pm

Hello, right now im using this macro to buy 60 non-stackable items.

is there anyway to condense it or make it faster?

i used /click left because the /buyitem command didn't work well.

thanks

Code: Select all

#turbo
Sub Main 

/target [merchant]
/press u
/delay 10
/selectitem "XXXXXXXXXXX" merchant 
/delay 5
/mouseto merchant buy
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4
/click left
/delay 4



/return

EqMule
Developer
Developer
Posts: 2697
Joined: Fri Jan 03, 2003 9:57 pm
Contact:

Post by EqMule » Tue Dec 02, 2003 9:22 pm

this should work, what exactly is your problem with buyitem?

Code: Select all

#turbo 
Sub Main
/declare myloop global
/declare mycash global
/declare mytimer timer
/target "XXXmerchant"
:waitfortarget
/if "$target(name,clean)"!="XXXmerchant" {
    /delay 0
    /goto :waitfortarget
}
:openmerchant
/press u
/delay 5
/varset mytimer 3s
:waitforopening
/if "$merchant(name)"!="XXXmerchant" {
    /delay 1
    /if n @mytimer<=0 /goto :openmerchant
    /goto :waitforopening
}
/delay 1s
:doselection
/selectitem "XXXXXXXXXXX" merchant
/varset mytimer 3s
:waitforselection
/if "$selecteditem(name)"!="XXXXXXXXXXX" {
    /delay 0
    /if n @mytimer<=0 /goto :doselection
    /goto :waitforselection
}
/for myloop 0 to 2
/varset mycash $char(cash)
/buyitem 20
/delay 3
:waitforbuyitem
/if @mycash==$char(cash) {
    /delay 3
    /goto :waitforbuyitem
}
/next myloop
/return
My status o/
If you like MQ2 and would like to contribute, please do. My goal is 25 donations per month.
So far I've received Image donations for this month's patches.

Bitcoin: 1Aq8ackjQ4f7AUvbUL7BE6oPfT8PmNP4Zq
Krono: PM me.
I can always use characters for testing, PM me if you can donate one.

Goofmester1
a hill giant
a hill giant
Posts: 241
Joined: Thu Nov 06, 2003 4:26 am

Post by Goofmester1 » Wed Dec 03, 2003 1:56 am

Just loop the buy commands.. could try this.

Code: Select all

#turbo 
Sub Main 

/target [merchant] 
/press u 
/delay 10 
/selectitem "XXXXXXXXXXX" merchant 
/delay 5 
/mouseto merchant buy 
/for bloop 0 to 59
/click left 
/delay 4 
 
/next bloop
/return

Shali
a ghoul
a ghoul
Posts: 87
Joined: Sun Dec 07, 2003 12:39 pm

alternate macro

Post by Shali » Mon Dec 08, 2003 2:28 am

here is a nice working macro ive tested that will buy an item until your inventory is full, just changed the capitalized words to the correct value/name, make sure you subtract 1 from the slot number as they start with 0.

Code: Select all

[color=yellow]|=-buy.mac-=|

#include routines.mac


Sub Main
   :Targetmerchant
   /target MERCHANTNAME
   /face
   /press u
   /delay 10
   /click left merchant #SLOTOFMERCHANTSITEM
   /goto :Checkinvspace

   :Checkinvspace
   /if $freeinv(space)==>0 /goto :Buyitem
   /if $freeinv(space)==0 /goto :Done
   

   :Buyitem
      /click left merchant buy
      /goto :Checkinvspace

   :Done
   /click left merchant done
/endmacro   [/color]
hope it helps

Drunkensloth
a lesser mummy
a lesser mummy
Posts: 67
Joined: Sat Oct 18, 2003 2:54 am

Post by Drunkensloth » Mon Dec 08, 2003 3:30 am

interesting... why dont you use a for loop


i thought there was something not alllowed about plat macros.. we all know what this is for
And here I was clicking like a sucker!