temp 9

D2Multi

Added patches to reduce in game and out of game cpu usage

D2BS core

Added checks that should help with getlevel/getmapdata/getshortfilename crashes.
https://www.assembla.com/code/d2bs/subversion/changesets/1785

D2Bot#

- Data Cache
        - D2Bot can store temporary data using Key:Value scheme
        - data can be accessed from any d2 window as long as they know the key

- Console View
        - Removed command line parsing
          Serves little to no purprose, you can still issue commands via IRC

- IRC Bot
        - Can start/stop/getstatus on profiles
        - IRC Event: allows d2 windows to subscribe to irc msgs

- Added columns "crashes" "game"
        - crashes: counts number of d2bs errors or window not responding
        - game: shows current game.exe being used (useful for proxy users)

- Asynchronous
        - Key Wizard: no longer blocks UI thread, you can view key info during runtime without crashing
        - Char Log: new implementation no longer reads from hdd on each refresh
                    uses FileSystemWatcher to update new logged mules
                    manually refresh full directory via Tools->Refresh Char Log
                    should be very fast for searching and loading chars after initial load

- Item Image + Description
        - Copy Description: copy text description to clipboard without color codes
        - Post to Imugr: posts png image to imgur and puts image address in clipboard
          Notified by MsgBox

- Bug Fixes
        - Added mutexes to prevent restarting normal windows

Kolbot

added single player screen exit to most starters in case of accidental click
d2botchannel - added mouse blocking and error handling for game join
d2botfollow - added a dynamic delay before joining next game to prevent FTJ
d2botlead - disabled chat messages if channel joining failed
d2botmap - fixed join request handler
d2botmule - don't drop ID scrolls with torch mules
d2botmulelog - go to next account if current one is empty
default.dbj - moved D2Bot.init call to the appropriate place - fixes mule logger item screenshot bug, death reporter is off for characters with chicken set to 0
automule - fixed a bug with mule data file, added getMuleItems function, changed drop item function to use getMuleItems function
mulelogger - added char names to print messages
ntitemparser - added [tier] keyword. not currently used but it can be used for item prioritizing or low level item replacement functions, added support for worded prefix/suffix (ie. [suffix] == of the mammoth)
oog.js - added joinChannel function that can tell whether a channel was joined successfully
torchsystem - key hunters will only drop full sets now
andariel/duriel - MFLeader support fot classic
orgtorch - replaced checkuneven function with completeSetCheck - it will help prevent mismatching organs even when maketorch is false
shopbot - added drognan and malah, try to get a missing waypoint before shopping

attack.js - added wereform attack for all classes, refresh unit when going back from town in Attack.kill(), added more checks for walking characters in Attack.clear and securePosition, attack immune monsters last with classic barbs, excluded claw viper temple lv 2 from monster sorting
attacks/barbarian - tweaked attack code, changed boss/others skill numbers back to 1/3 and changed immune/backup skills to 2/4
attacks/druid - removed wereform attack code (it's now included in a separate file)
cubing - added Roll.Eth/Roll.NonEth/Roll.All for socketing/upgrading recipes, use all free gems for magic item rerolling, don't reroll items in locked inventory space, added recipe randomization - it will no longer skip crafting recipes when there's multiple in the same group (ie. caster amulet+boots)
misc.js - avoid obstacles and prevent getting stuck when opening chests, added several me.gameReady checks to reduce warnings, added sockets to item pictures, changed fileAction to use FileTools, fixed packet gambling
pather - skip getPath call when walking a straight unobstructed line, added area check to usePortal and useWaypoint to prevent unneeded getPath calls, removed delays after successful useWaypoint/usePortal
pickit.js - don't trigger automule when there's no actual items to mule
prototypes - added Array.shuffle, getPrefix/getSuffix can now use string as arg, changed how itemskillonhit and itemchargedskill work - now all that's needed is skill id (ie. [itemchargedskill] == 96 for sacrifice charges)
storage - added lock chec function for inventory items
town.js - added clearScrolls at the end of town chores, go to act 4 for potions in normal (if possible), changed getCorpse function - it will stop the profile if it doesn't get the corpse
antihostile - fixed a bug with hostile trigger at the beginning of a game
heartbeat.js - added restart on double script load bug
toolsthread - ping quit activates only after 5 seconds have passed in game, fixed chicken monster reporting, don't use potions on a dead merc, added d2bot console print for revived viper quit

added attacks/wereform - all characters can shapeshift now
updated templates/attacks.txt with wereform info
updated shopbot.nip with more items and information

updated character config files - make sure to remake configs