Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// Universal recall-shopper ///
- /// - By kakel_anders (Player - UOG:Demise) - ///
- /////////////////////////////////////////////////
- /////////////////////////////////////////////////
- // The macro will scan for any NPC's within 5 tiles and apply
- // the desired purchaseagent.
- // Just mark runes in the shops you want, set up the agent, configure the Script
- // And you are ready to go!
- //////////INSTRUCTIONS///////////////////////////
- //1. Beetle, preferably bonded (Just in case)
- //2. Runebook for shops
- //3. Runebook for home (1 tile from dropoffchest)
- /////////////////////////////////////////////////
- //1. Start UNMOUNTED at your dropoff location
- //2. Adjust to the proper purchaseagent below! (Line 37-)
- //3. Check that the item you are buying are in the "Wares"-list (Line 48-)
- //4. Can be run on repeat, adjust pause on last line if you want to (Default 60sec)
- //5. set up ID's of beetle, dropoffchest, home runebook, shoprunebook below.
- //6. PROFIT!
- /////////////////////////////////////////////////
- //// Clean up old aliases and lists
- clearjournal
- clearignorelist
- removelist 'wares'
- removelist 'restarttimer'
- removelist 'shop'
- removelist 'speech'
- unsetalias 'beetle'
- unsetalias 'dropoff'
- unsetalias 'home'
- unsetalias 'runebook'
- //// Make new ones
- // ID OF BEETLE
- setalias 'beetle' 0xedf1c
- // ID OF DROPOFF CHEST
- setalias 'dropoff' 0x43c67f4c
- //ID OF HOME RUNEBOOK
- setalias 'home' 0x4359eb7f
- //ID OF SHOP RUNEBOOK
- setalias 'runebook' 0x412b3ca0
- createlist 'restarttimer'
- ///////////////////////////////
- ///What are we buying today?///
- ///////////////////////////////
- //buy 'cloth'
- //buy 'ingots'
- //buy 'dildos'
- //buy 'breastimplants'
- buy Regs
- ///
- ///
- // List of grapgiccodes for items you are going to buy. This list dictates
- // what items are moved from ground and backpack to beetle. And also the
- // offloading of the beetle
- createlist 'wares'
- pushlist 'wares' 0x1bfb // Bolts
- pushlist 'wares' 0xf3f // Arrows
- pushlist 'wares' 0xef3 // Blank Scroll
- pushlist 'wares' 0xf0e // Empty Bottle
- pushlist 'wares' 0xf8c // Sulfurous Ash
- pushlist 'wares' 0xf86 // Mandrake Root
- pushlist 'wares' 0xf84 // Garlic
- pushlist 'wares' 0xf8d // Spidersilk
- pushlist 'wares' 0xf88 // Nightshade
- pushlist 'wares' 0xf7b // Bloodmoss
- pushlist 'wares' 0xf85 // Ginseng
- pushlist 'wares' 0xf7a // Blackpearl
- pushlist 'wares' 0xf8a // Pigiron
- pushlist 'wares' 0xf78 // Batwing
- pushlist 'wares' 0xf8e // Nox Crystals
- pushlist 'wares' 0xf8f // Gravedust
- pushlist 'wares' 0xf7d // Daemon Blood
- pushlist 'wares' 0xf95 // Bolt of Cloth
- pushlist 'wares' 0x1767 // Folded Cloth
- pushlist 'wares' 0x1766 // Cut cloth
- pushlist 'wares' 0x1079 // Hides
- pushlist 'wares' 0x1081 // Cut leather
- pushlist 'wares' 0x1bf2 // Ingots
- //
- //// Runebook Buttonnumbers
- createlist 'shop'
- pushlist 'shop' 5
- pushlist 'shop' 11
- pushlist 'shop' 17
- pushlist 'shop' 23
- pushlist 'shop' 29
- pushlist 'shop' 35
- pushlist 'shop' 41
- pushlist 'shop' 47
- pushlist 'shop' 53
- pushlist 'shop' 59
- pushlist 'shop' 65
- pushlist 'shop' 71
- pushlist 'shop' 77
- pushlist 'shop' 83
- pushlist 'shop' 89
- pushlist 'shop' 95
- //
- //// Not important, just for funny :)
- //
- createlist 'speech'
- pushlist 'speech' 'A good deadline reaches places motivation never could.'
- pushlist 'speech' 'Once I started to read between the lines, I realized that all books were really the same.'
- pushlist 'speech' 'Sometimes I drink water - just to surprise my liver.'
- pushlist 'speech' "I think your parents shouldn't have built the swing that close to the wall."
- pushlist 'speech' 'I hope your pillow is warm on both sides in the summer!'
- pushlist 'speech' "It's amazing how nice people are to you when they know you're going away."
- pushlist 'speech' 'If you can’t reach it from your couch, you don’t need it.'
- pushlist 'speech' 'According to my mirror I am pregnant. The father is Nutella.'
- pushlist 'speech' 'Organized people are simply too lazy to search for stuff.'
- pushlist 'speech' "You may have one but that doesn't mean you have to act like one."
- pushlist 'speech' 'Anything done before the first coffee of the day could be classified as self-defense.'
- pushlist 'speech' "Oh phew. That was narrow. It nearly interested me."
- pushlist 'speech' "Just checked my bank account. Anybody in need of a kidney?"
- pushlist 'speech' "Somebody said today that I'm lazy. I nearly answered him."
- pushlist 'speech' "I’m on a strict seafood diet.... I see food, I eat it."
- pushlist 'speech' "Always end up phone calls like this: I have to run, the swing is free now."
- pushlist 'speech' "I’m sorry, I have neither the patience, nor the coloring crayons to explain this to you."
- pushlist 'speech' "Not giving a shit can surprisingly be the right choice when your toilet breaks down."
- pushlist 'speech' "Finally, the spring is here! I'm so thrilled I wet my plants."
- pushlist 'speech' "If you’re having a bad day, remember some adults wear braces."
- pushlist 'speech' "I wouldn’t exactly say I’m lazy but it’s a good thing that breathing is a reflex."
- pushlist 'speech' "How many times must I flush before you finally go away?!"
- pushlist 'speech' "My love life is like the beginning of a fairytale: A long time ago, in a land far away..."
- pushlist 'speech' "If I’ve told you once, I’ve told you a million times: Don’t exaggerate!"
- pushlist 'speech' "I’m standing outside. In other words, I’m outstanding."
- pushlist 'speech' "My mood is currently swinging between an axe and gasoline."
- pushlist 'speech' "Stressed is just desserts spelled backwards."
- pushlist 'speech' "You can only be young once. But you can enjoy being infantile forever."
- pushlist 'speech' "I’m pretty sure some people’s head is just a backup copy of their butt."
- pushlist 'speech' "Excuse me while I go on a ride on the porcelain steamer."
- pushlist 'speech' "Money alone won’t make you happy. You’ve got to own it."
- pushlist 'speech' "I think you deserve a standing ovation … of my longest finger!"
- pushlist 'speech' "Of course you're not fat. Just grab a couple of chairs and come sit with us."
- pushlist 'speech' "No thanks, I didn't fight my way to the top of the food pyramid to become a vegetarian."
- pushlist 'speech' "You were the only child in your family to be given up for adoption."
- pushlist 'speech' "After millions of years of evolution, you’re kind of a disappointment."
- pushlist 'speech' "Here, have a tissue. There’s still a bit of bullshit left on your mouth."
- pushlist 'speech' "Every rule has an exception. This rule is no exception."
- pushlist 'speech' "My boyfriend is so ugly, I sometimes have to put roofies in my own drink."
- pushlist 'speech' "Where exactly was I in the night from Friday to Monday???"
- pushlist 'speech' "Everyone has the right to be stupid, but some abuse that privilege."
- pushlist 'speech' "War never decides who is right. War only decides who is left."
- pushlist 'speech' "The snorers are always the ones to fall asleep first."
- pushlist 'speech' "Pity there’s no gym for your face."
- //// Repeat, how many times?
- for 1
- //
- ////
- for 0 to shop
- //
- //// Mount up and recall to shop
- useobject 'beetle'
- pause 2000
- useobject 'runebook'
- waitforgump 0x554b87f3 15000
- replygump 0x554b87f3 shop[]
- pause 2000
- //
- //// retry once
- if @injournal 'That location is blocked' 'system'
- sysmsg 'Rune blocked, waiting 5 seconds before retry'
- pause 5000
- @clearjournal
- useobject 'runebook'
- waitforgump 0x554b87f3 15000
- replygump 0x554b87f3 shop[]
- pause 2000
- endif
- //
- //// else skip
- if @injournal 'That location is blocked' 'system'
- @clearjournal
- @poplist 'shop' 'front'
- sysmsg 'Skipping rune'
- useobject 'runebook'
- waitforgump 0x554b87f3 15000
- replygump 0x554b87f3 shop[]
- pause 2000
- endif
- //
- //// Find vendors and purchase wares
- while @findtype 0x190 'any' 'ground' 'any' 5 or findtype 0x191 'any' 'ground' 'any' 5
- sysmsg "- SCANNING FOR NPC'S -"
- if @findtype 0x190 'any' 'ground' 'any' 5 or findtype 0x191 'any' 'ground' 5
- setalias 'vendor' 'found'
- headmsg speech[0] 36 'vendor'
- pushlist 'speech' 'speech[0]'
- @poplist 'speech' 'front'
- waitforcontext 'vendor' 1 1500
- pause 500
- ignoreobject 'vendor'
- endif
- endwhile
- sysmsg "- ALL NPC'S CHECKED -"
- pause 1000
- //
- //// Pick up any dropped items and put on Beetle if possible ////
- useobject self
- pause 700
- for 0 to wares
- while @findtype 'wares[]' 'any' 'ground' 'any' '2'
- moveitem found 'beetle'
- ignoreobject found
- pause 1000
- endwhile
- endfor
- //
- //// If hides in backpack, cut them up.
- if @findtype 0x1079 'any' 'backpack'
- usetype 0xf9f 'any' 'backpack'
- pause 700
- target! found
- pause 700
- endif
- //
- //// Overload to beetle incase overloaded
- while weight > 400
- clearignorelist
- for 0 to wares
- if @findtype 'wares[]' 'any' 'backpack'
- moveitem found 'beetle'
- ignoreobject found
- pause 1000
- endif
- endfor
- endwhile
- // Make sure you are mounted before recalling (Incase unbonded)
- useobject 'beetle'
- pause 2000
- //
- //// Offloading at house
- clearignorelist
- cast 'recall'
- pause 2500
- target! 'home'
- pause 2500
- useobject self
- pause 1000
- waitforcontext 'beetle' 9 1500
- for 0 to wares
- while @findtype 'wares[]' 'any' 'beetle'
- moveitem found 'dropoff'
- pause 1000
- endwhile
- while @findtype 'wares[]' 'any' 'backpack'
- moveitem found 'dropoff'
- pause 1000
- endwhile
- endfor
- clearjournal
- endfor
- endfor
- clearbuy
- pause 60000
Add Comment
Please, Sign In to add comment