--------------------------------------------------------------------------------
                                  Contents
--------------------------------------------------------------------------------

   1. Commands
   2. INI Settings
   3. How to Use Shopbot
   4. Frequently Asked Questions
   5. Contacts




--------------------------------------------------------------------------------
                                 Commands
--------------------------------------------------------------------------------

.shopbot setnpc actN <npc's name>
	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 loadconfig <pathname>
	loads config file (defualts to shopbot)
	from shopbot\<pathname>.ini

.shopbot savepath <pathname>
	saves NPC, waypoints, and path information 
	to shopbot\paths\<pathname>.sbp in the d2hackit dir.

.shopbot loadpath <pathname>
	loads NPC, waypoints, and path informatiion
	from shopbot\paths\<pathname>.sbp

.shopbot townwp <waypoint>
	sets the town waypoint to <waypoint>

.shopbot otherwp <waypoint>
	sets the other waypoint to <waypoint>

.shopbot start
	starts the bot

.shopbot stop
	stops the bot

.shopbot Browse
	starts Browse Mode



--------------------------------------------------------------------------------
                                 INI Settings
--------------------------------------------------------------------------------

; Global Config Settings
; [global]
; autobuy=n		- 1 autobuy is on, 0 autobuy is off
; autobuystop=n		- 1 autobuystop is on, 0 autobuystop is off  Will go into anitidle after it buys something
; townwp=<string>	- [Required] The name of the town waypoint
; otherwp=<string>	- [Required] The name of the waypoint to goto get outside of town.
;			  You MUST make this in the same act as the town waypoint or items dont update in the shop
; showallitems=n        - 1 is on, 0 is off -- Will display the list of items,
;                         off means you see the item name only when there is a match
; usebind=n             - Whether to auto bind the keys or not
; bindstart="XX"        - Keycode to bind for ".shipbot start" defualts to "39" which is 9
; bindstop="XX"         - Keycode to bind for ".shipbot stop" defualts to "30" which is 0
; bindpathkey="XX"      - Keycode to bind for ".shipbot loadpath XXXXX" defualts to "38" which is 8
; bindpathnpc="XX"      - Keycode to bind for npc of ".shipbot start XXXXX" defualts to "Larzuk"
; itemsfile		- Record ALL Items in a file, or not (items-all.txt)
; itemstatfile		- Record ALL items in a file, and their stats (items-stats.txt)
; itemsparsefile	- Record ALL Items in a file with a | seperating the fields
; boughtfile		- Record items that you buy (items-bought.txt)
; color			- (0 - 9) Color of on screen text
; showwalk		- Whether to show updates of you walking to the NPC and back
; browsestart		- Whether to start in Browse Mode or not
; randomrun		- Whether to make shopbot add random numbers to the path (makes it less detectable)
; randomnpc		- Whether to make shopbot shop randomly between Anya, Larzuk, Halbu, and Jamella (must have paths!!)



; Item Syntax:
; [unique string]
; Code="abc"		   - [Optional] This is the 3 letter itemcode.  4th char is always a space and is ignored
;                                       This option is outdated and shouldn't be used anymore
; Description=<string>     - [Optional] This will print when the item is found. if not defined "No Description" will print
; MagicPrefix=<string>     - [Optional] Item must have this MagixPrefix
; MagicSuffix=<string>     - [Optional] Item must have this MagicSuffix
; Basename=<string>        - [Optional] Item's Basename aka what the item would be called without any prefix or suffix
; Category=<string>        - [Optional] Item's category (weapon, armor, gloves, boots, helmet, belt, shield)
;                                       causes shopbot to only buy from that item type
; Quality=<string>         - [Optional] Can be "Exceptional", "Elite", "Normal" or leave it blank
;                                       Will buy only items of that quality or greater
; Stop=<integer>           - [Optional] 0 or 1, if 1, will stop if buying that item fails
; MustHavePrefix=<integer> - [Optional] 0 or 1, When not specifying a magicprefix, will only buy it if it has a prefix
; MustHaveSuffix=<integer> - [Optional] 0 or 1, When not specifying a magicsuffix, will only buy it if it has a suffix
; Mod1 (1-9 ex: Mod7)      - [Optional] Mod to filter (ex: Enhanced Damage)
; Mod1Val (1-9 ex: Mod6Val)- [Optional] Value of Mod to filter (ex: 295)



--------------------------------------------------------------------------------
                             How to Use Shopbot
--------------------------------------------------------------------------------


Using a Pre-Configured Path
-----------------------
	Howto get shopbot working on larzuk using the supplied larzuk path.
	 1. load shopbot (type ".load shopbot" - shopbot has to be in the d2hackit directory)
	 2. type ".shopbot loadpath larzuk"
	 3. goto act5 town, if you are already there take a wp out and back into town
	 4. type ".shopbot start"
         5. To stop shopbot type ".shopbot stop"

Using a Pre-Configured Path and Bind
-----------------------
	Howto get shopbot working on larzuk using the supplied larzuk path.
        Using shortcut keys courtesty of the bind module (these keys are autoloaded by shopbot)
	 1. load shopbot (type ".load shopbot" - shopbot has to be in the d2hackit directory)
	 2. Press 8 (to load Larzuk path)
	 3. goto act5 town, if you are already there take a wp out and back into town
	 4. Press 9 (".shopbot start")
         5. To stop shopbot Press 0 (".shopbot stop")

Creating your own path files
-----------------------
	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 (type ".load shopbot" - shopbot has to be in the d2hackit directory)
	 2. goto act5 town (harrogath) if you aren't 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'




--------------------------------------------------------------------------------
                          Frequently Asked Questions
--------------------------------------------------------------------------------

Q: Can you support multiple NPCs at one time, and check them all before going back through the WP?
A: This has been gone over many, many times, while it would be possible with alittle of coding, there are
   no plans on doing it anytime soon.  I don't see it as necessary, considering the amount of time it would
   actually waste.

-----------------------

Q: How do I use multiple configs?
A: If you want to load a different config, just type ".shopbot loadconfig configname" leave off the ini on the configname.
   If the config name isn't valid (it has to be in the /shopbot directory, it will revert back to the default ini.
   If you ".shopbot reload" it will reload the last config used.  The lastconfig used is not saved, so shopbot will always
   use the default ini at load time.

-----------------------

Q: What is Quality used for?
A: Quality="elite" will only buy elite items.  If you put "exceptional" it will buy exceptionals and elites.
   This is good for items that you don't specify a basename for.  Put it with the item in the ini.

-----------------------

Q: What is Browse mode?
A: Browse Mode is where shopbot will just scan items for you and alert you (and auto buy) when it finds one that matches.
   This is good for when you are cow running, or a pindle running and go for repairs, shopbot will search
   while you repair, so you don't have to worry about checking the items over yourself.  When started, Browse
   Mode will continue to run until you either start or stop shopbot, so you don't have to start browse every game.

-----------------------

Q: Do I have to go through the WP before I start shopbot?
A: It depends... shopbot has to get the ID for the WP inorder to go through it.  If shopbot
   is loaded before you enter the game, or if you walk far way from the wp and come back, or if
   go through a wp, then it will get the WP ID.

-----------------------

Q: Do I have to include the "of" in the Suffix?  
A: Yes

-----------------------
 
Q: When inputting items into the ini, is it case sensitive? 
A: No, both "Cruel" and "cruel" will work. 

-----------------------
 
Q: Why do I only see armors lists, and no weapons?  
A: The screen buffer can only hold so many messages at a time, weapons are looked at first, so they are pushed into the message buffer by the armors. Try pressing M and scrolling through your message buffer to see them. If they aren't there, then it means that they have been pushed out of the message buffer by other items. Trust me, they have been scanned.  

-----------------------
 
Q: What happens when shopbot finds an item? 
A: Shopbot will print the item description as defined in the ini file. Then it will try to purchase the item, if it fails, it will try 3 more times to buy it. If it still fails, it will tell you that you either didn't have enough space or gold. If Stop is set for the item, it will stop and go into Anti-Idle mode. 

-----------------------
 
Q: Does Autobuy make sure I have enough gold and/or inventory space before trying to purchase the item? 
A: No, but it will tell you if you didn't have enough gold or space after it tries to purchase the item

-----------------------
 
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.48beta sample ini file. 

-----------------------
 
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: Yes, you can use the red portal next to anya. Just do
.shopbot loadpath anyaportal
and proceed as normal

-----------------------
 
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: 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.  Once we get to the end of the path, we automatically then take a step towards the NPC.

-----------------------
 
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 

-----------------------
