shopbot 0.46beta module for D2Hackit by ackmed@gotwalls.com This is a beta so dont be surprised if there are bugs. Many thanks to Blackpower and berto for their code additions. Check out the changelog section to see what all has been updated. This modules will auto-shop for magic weapons including bows from an NPC of your choice. shopbot.ini describes which items the bot should be looking for. A Required global section has been added to the ini file, so using your ini from 0.20beta will not work without patching it. Read the howto section below on setting up the bot to run. Please also look over the QA section at the bottom if you have questions. Changelog --------------------- 0,45beta -> 0.46beta - Added savepath / loadpath commands (Blackpower) - Added townwp / otherwp commands (ackmed) - Added workaround for bug/feature of d2hackit that can cause a crash on leaving a game (ackmed) - Updated the MINOR_VERSION define this time (ackmed) 0.20beta -> 0.45beta - Added itemcode lookups to get items real basename (ackmed) - Added basename= support to config file (ackmed) - Added support for bows (ackmed) - Added code to make shopbot attempt to get unlost (ackmed) - Updated setnpc command (Blackpower) - Added code to autoget NPC's Id (Blackpower) - Removed 0x13 capture, no longer needed (Blackpower) - Added Client walk update (Blackpower) - Added autobuy code (berto) - Added global config section to ini file (ackmed) - Change to not allow the same step location twice in a row when recording (BlackPower) - Added all the waypoint code and unhardcoded waypoints (ackmed) - Removed clear command. Previous path will autoclear when starting a new recording (ackmed) - Removed Config limits, and cut and paste it into pickit (ackmed) - Added townwp= and otherwp= to global config (ackmed) - Added steptime=n to global config (ackmed) - Made last step in NPC->WP path be the location of the WP (ackmed) - Added text patching for code->basename and magic suffixes/prefixes (ackmed) - Added Anti-idle code (ackmed) - Added autobuystop=n to global config (ackmed) - Added support for making the client play (some) sounds (ackmed) Available commands --------------------- .shopbot debug [devel|packet] toggle debugging. devel add some extra debugging packet does packet level debugging .shopbot setnpc actN Use this command to set which npc to shop with Example '.shopbot setnpc act5 larzuk' .shopbot setnpc list actN List all possible NPC's for actN .shopbot record starts/stops recording a path .shopbot reload reloads the config file .shopbot savepath saves NPC, waypoints, and path information to shopbot\.sbp in the d2hackit dir. .shopbot loadpath loads NPC, waypoints, and path informatiion from shopboth\.sbp .shopbot townwp sets the town waypoint to .shopbot otherwp sets the other waypoint to .shopbot start starts the bot .shopbot stop stops the bot Howto - newstyle ----------------------- Howto get shopbot working on larzuk using the supplied larzuk path. 1. load shopbot 2. '.shopbot loadpath larzuk' 3. goto act5 town, if you are already there take a wp out and back in 4. '.shopbot start' Howto - oldstyle ----------------------- Howto get shopbot working on larzuk. You should be able to take simular steps to get shopbot working in other acts/npc's You need to do the following steps to get the bot in a working state. 1. load shopbot 2. goto act5 town (harrogath) if you arent already there 3. run '.shopbot setnpc act5 larzuk' 4. take the wp to frigid highlands 5. take the wp back to town (harrogath) (dont move once you are back) 6. '.shopbot record' you will see 'Path Recording Started' 7. walk to larzuk - it seems to work best if you make multiple click when walking to larzuk. The client sends more movement packets. 8. '.shopbot record' you will see 'Path Recording Stoppped' - this is the path the bot will use to get from the waypoint to lazruk and back 9. take the wp to frigid highlands and the back to town 10. '.shopbot start' QA Section: ------------------------ Q: What happens when shopbot finds an item? A: Shopbot will print the item description as defined in the ini file. Then do the follow. if( autobuy is on) { -attempt to purchase item. if(autobuystop is off) { -continue shopping for items } else { -stop and go into anti-idle mode. } } else { -stop and go into anti-idle mode } Autobuy hasnt not been throughly test and I would suggest enabling autobuystop until you fill confident it works. Q: Does Autobuy make sure I have enough gold and/or inventory space before trying to purchase the item? A: NO. It currently just blindly sends the packet to purchase the item. It also doesnt not verify if the item was purchased. Q: What is this anti-idle mode? A: The server will auto-kick you back to bnet if your char is idle for an extended period of time. anti-idle mode will attempt to get around this by making your char move from time to time as well as play a sound. It hasnt been throughly test and I am not sure how well it works. Q: How do I get my 0.20beta ini to work with this new version? A: Copy and paste the [global] section from the 0.45beta sample ini file. Q: How do I get shopbot to shop in other acts? A: Edit shopbot.ini and change townwp= to the town waypoint for that act. change otherwp= to another waypoint in that SAME act. Then follow the howto replacing all the waypoint/larzuk specific stuff with the act and npc you want to shop with. Q: Shopbot sometimes doesnt get a list of items from the NPC. A: Some of the NPC's move around a bit and its likely they are out of range from the last step in your recorded path. If you never get a list its also possible you have a bad path recorded from the waypoint to the NPC. Q: Is there anyway to speed up shopbot? A: yes, somewhat. If you adjust set steptime to 1. This will lower the amount of time that shopbot waits between taking steps. If your char can run fast I would suggest doing this. Lowering this setting can cause shopbot to get lost more often, though it should recover by itself. Q: Can shopbot use a teleporter to get in and out of town? like the red that is next to anya? A: NO, shopbot only supports waypoints at this time. Q: Does the ini file support non-english languages for item and waypoint definitions? A: NO, all strings in the ini file for diablo specific stuff should be in english. Q: What is the itemcode for item ? A: item codes are no longer required. You can now use basename= in the ini file. basename refers to the item without any magic prefix or suffix. Example basename="Thunder Maul" Q: How do I make it look for item ? A: open up shopbot.ini and add it. Q: Does shopbot support searching for Armor, Boots, Helms, etc? A: No, not at this time. Only Magic weapons and bows are supported. Q: In the changelog there is a client walk update. what is that? A: Its suppose to make your client view update when the bot is moving you. It didnt seem to work for me, but both blackpower and berto confirmed it was working for them. Q: when you record the path should I click on the npc? A: Its not required. In general if the npc moves, like larzuk does, its best to end the path in the middle of the npc's move area. For larzuk the middle of the deck he stands on is a good place. Its something you will have to play with. Q: Everytime shopbot opens the trade with the npc's items are always the same!? A: 3 possibilities 1. Your otherwp is not in the same act as the townwp 2. someone else is in the game 3. blizzard patched diablo to stop shopbot Q: Shopbot runs for hours and does seem to find anything, what gives? A: It can take many hours to fine the elite weapons with a good magic prefix and/or suffix. If you are worried about shopbot not working try making it look for a less rare item. Q: My question isnt in this QA section. WTF? A: Best bet would be to post a message on the different d2hacking forums