v0.8.0
NIP (BNIP) Integration!
I know you're probably thinking--wait, didn't you just release 0.7.4? The 0.7.4 release was just published in an effort to make a semi-stable version prior to this... massive update! There was a ton of refactoring as you can see below. While we've worked hard to squash bugs before release with multiple testers, you may run into bugs. Please report bugs on discord or in github issues. If you need help, try the support channel on discord. Most of the work for this PR was done by @Ezro and @Riddle1001, well done! Special thanks to @D2RLegit Sosa and others as well!
Botty has used OCR to some extent for months, but we are finally ready to use it for item detection and item property filtering. To this end, we've integrating NIP (Njaguar's Item Parser) syntax to handle logic for item pickup and item stashing once identified. NIP was used in other bots such as Kolbot. Botty NIP (BNIP) is an extended version of NIP and is (mostly) backwards compatible. See the README documentation for more details.
Because Botty now uses exclusively OCR for item finding, template file assets are no longer required. This has reduced Botty's filesize and file count significantly.
The default pickit file is fairly comprehensive and intended for mid-ladder use--feel free to adjust as you desire or put your own .nip files in config/nip/
directory. You no longer need to maintain pickit info in your custom.ini files.
Mods
Starting with 0.8.x, Botty will now leverage mods. You won't see the effects of the mods much in 0.8.0 but you may see more show up over time. Mods were implemented in this release mostly to make OCR more reliable (notice the font change and item word spacing). Mods are installed by pressing F9. If mods fail to install or if they fail to show up in-game, you might have to manually move files to botty directory and add the d2 launch options on your own. The default launch options are found under [advanced_options]
in the params.ini file.
Fortunately there's no indication that using mods offline is a problem, but if you are uncomfortable with mods, then that's understandable. I will plan to implement small bugfixes and maintain 0.7.x briefly while actively developing 0.8.x.
Other changes
- There have been some significant improvements to overall performance particularly with pickit routines. You won't want to miss the performance boost!
- All logs, screenshots, stats, etc are now saved under
log/
directory - Path finding from Eldritch to Shenk is still a work in progress, but it should get lost less frequently now right after finishing Eldritch.
- Revert: paladin timeout on trav by @mgleed in #874
- New param called
safer_routines
which will be leveraged in runs / character routines for optional movements for character safety. Intended to help hardcore players. Framework is there but currently only implemented on pindle.
On the horizon for 0.8.x
- Shopper bots need overhaul now that OCR is used for item properties. (volunteers?)
- i_char.py and character routine refactoring to allow for easier, cleaner coding (me)
- Navigation by automap (@roozhou and @jagarop )
- Less getting "lost" after picking (@jagarop )
- Config (custom.ini, params.ini, etc) overhaul
- Optimizations/performance
- More to come!
If you want to view the full changelog, it'll probably freeze your browser, but you can try by clicking the link below:
Full Changelog: v0.7.4...v0.8.0