Compare commits

...
163 Commits
Author SHA1 Message Date
aeon0 f279c4193c Add bug issue template 2021-11-19 18:27:01 +01:00
cpamabotte e3ab8fa849 Named bot (#64) 2021-11-19 17:45:15 +01:00
bjoerm 6cdb7b1c8a Added small explanation to JavaShopper class. (#62) 2021-11-19 17:44:59 +01:00
bjoerm 967184d48a Added missing gems. (#63) 2021-11-19 17:43:55 +01:00
aeon0 da7a72efc6 Force blackmailed items to have higher score (#65) 2021-11-19 17:40:37 +01:00
aeon0 c20d936d3c fix set amu asset issue (#60) 2021-11-19 10:40:26 +01:00
aeon0 6a6421e8d3 Retry on red portal if missed (#59) 2021-11-19 10:22:24 +01:00
aeon0 a9f9531c58 Adapt release process (#58)
* Detect no more tps and check weapon switch

* Adapt release process
2021-11-19 10:10:43 +01:00
aeon0 30d383edab Detect no more tps and check weapon switch (#57) 2021-11-19 00:53:34 +01:00
reqyl d63d72735e Add missing eldritch template (#56)
* Add missing eldritch template

For high res eldritch start template is missing.

* Add .venv to gitignore
2021-11-18 23:27:14 +01:00
aeon0 95c87404ab Update video (#55)
* update video

* update img
2021-11-18 18:46:18 +01:00
aeon0 90f939011d update templates (#54) 2021-11-18 18:17:52 +01:00
aeon0 62b4129fb1 fix color checker (#53) 2021-11-18 17:30:00 +01:00
bjoermandaeon0 bd133ce55f Updated readme.md (#52)
* Added note about supported resolution.
Added small additional explanations.

* Update README.md

Co-authored-by: aeon0 <[email protected]>
2021-11-18 17:29:40 +01:00
aeon0 8e7930667a param clean up (#51) 2021-11-18 16:48:37 +01:00
aeon0 7ff93d8809 ignore whole folder for screenshots 2021-11-18 15:42:22 +01:00
aeon0 dbf5e1dd7d make it run a bit smoother (#50) 2021-11-18 15:41:50 +01:00
mw ea8a93539e add advanced params section with pathing delay (#48)
Adds a new params section, "advanced_options"
Adds a new param to the advanced_options section, "pathing_delay_factor"

The pathing delay factor will allow users to scale the otherwise static delays in the pathing `move` operations based on their own needs.
2021-11-18 08:22:17 +01:00
aeon0 b6fb588599 fix save exit and tp bad windowed coordinates 2021-11-17 23:01:09 +01:00
aeon0 db994eeee4 Recover from being stuck (#46)
* recover from being stuck

* remove shutdown within bot.py
2021-11-17 22:49:38 +01:00
aeon0 8f772daf86 Fixes and fail saves (#44)
* remove old discord, add offset_left, fix coordinate clamping

* proper bot thread
2021-11-17 21:12:29 +01:00
jagarop 89bea55100 fix runtime error pre buff (#43) 2021-11-17 19:07:34 +01:00
jagarop 8c5a5fc656 🙇‍♂️ 🙏 📿 (#40)
* 🙇‍♂️ 🙏 📿

* on_end_game

please change the location of "self._pre_buffed = 0" inside "def on_end_game(self):" if the location is not ideal.
2021-11-17 17:39:07 +01:00
Cr4zyEightandVincent Frebel da6faba447 actually stashing gold (wasnt implemented yet) (#28)
* actually stashing gold (wasnt implemented yet)

* deleted unused import

Co-authored-by: Vincent Frebel <[email protected]>
2021-11-17 11:27:23 +01:00
jagarop 934e1df26f fix ui_manager.repair_and_fill_up_tp (#41) 2021-11-17 06:13:00 +01:00
aeon0 5750825c9e Support 1280x720 (#19) 2021-11-16 22:58:48 +01:00
aeon0 302d1c9ba0 dont take ss when search for exit (#39) 2021-11-16 22:09:39 +01:00
aeon0 568378fea8 Revert "clip monitor coordinates" (#38)
* Revert "clip monitor coordinates (#37)"

This reverts commit 40b01fd7c0.

* Update pather.py
2021-11-16 21:57:22 +01:00
reqyl 20229ef10f Javazon gg gloves shopper script (#24)
* Javazon gg gloves shopper script

* Add normalize_monitor kwarg to search()

- Make sure to normalize monitor pos in javashopper script

* Make shop reset more robust

* Move glove template images

* Add stats logging on exit

* Rename module and move into shop package

* fixup! Add normalize_monitor kwarg to search()
2021-11-16 21:41:00 +01:00
aeon0 40b01fd7c0 clip monitor coordinates (#37) 2021-11-16 21:39:45 +01:00
aeon0 375febc48d fix needing a tomb (#36) 2021-11-16 21:39:21 +01:00
aeon0 39f298e9ed Robust/item pick discord (#35)
* robust against sending itempickup twice

* remove new lines
2021-11-16 21:39:05 +01:00
aeon0 50cff5cef9 robustify death (#34) 2021-11-16 19:01:43 +01:00
aeon0 751fdea7ab add thunderstorm to sorc prebuff (#33) 2021-11-16 18:06:18 +01:00
aeon0 5adcb42c71 shut down d2r and bnet if botty gets stuck (#32) 2021-11-16 18:06:01 +01:00
aeon0 62dbde1e25 new discord filter for items (#31) 2021-11-16 18:03:17 +01:00
307e8e40a8 botty folder not so cluttered (#18)
* botty folder not so cluttered

* added timestamp to info_screenshots + gitignore + added optional to params.ini + Readme

* Fix: TabError: inconsistent use of tabs and spaces in indentation -.-

* some stupid things...

Co-authored-by: Vincent Frebel <[email protected]>
Co-authored-by: aeon0 <[email protected]>
2021-11-16 14:51:57 +01:00
Cr4zyEightandVincent Frebel f11c502f18 implemented loot_screenshots (#17)
* implemented loot_screenshots

* added timestamp + gitignore

* Readme

Co-authored-by: Vincent Frebel <[email protected]>
2021-11-16 14:49:27 +01:00
aeon0 054ad70598 randomness and delays (#29) 2021-11-16 01:19:18 +01:00
aeon0 8501fe1114 update ci.yml 2021-11-15 20:31:23 +01:00
aeon0 4ad6246c54 Pickit/items 1280x720 (#26) 2021-11-15 20:22:28 +01:00
aeon0 2c7bb42907 make action trigger on PR 2021-11-14 11:56:40 +01:00
aeon0 2b018a7f65 rename workflow 2021-11-14 11:53:00 +01:00
aeon0 810a76aba7 Setting up CI (#22) 2021-11-14 11:25:11 +01:00
aeon0 ce498893d3 add first test 2021-11-14 07:51:40 +01:00
aeon0 8d7851a188 allow pathes in temlpate tracker to not exist 2021-11-14 06:38:36 +01:00
aeon0 c339175477 misc to close down diablo and bnet 2021-11-14 06:38:19 +01:00
reqyl 21102e3de8 fix anya templates and images (#20) 2021-11-14 06:19:19 +01:00
aeon0 eb29821dcc add anya as npc 2021-11-13 16:12:06 +01:00
aeon0 752ac290c5 new res config 2021-11-13 12:38:01 +01:00
aeon0 d47542ed0f remove keys flag remove, doesnt work anyway 2021-11-13 09:03:33 +01:00
aeon0 b7d1ef676b update settings for even lower graphics and framerate cap 2021-11-13 08:59:12 +01:00
aeon0 65f74acba0 actually use the do_chicken on chicken 2021-11-13 00:51:35 +01:00
aeon0 abb4cfb97c add missing tp docu 2021-11-13 00:12:10 +01:00
aeon0 9d2ad41c52 try again on save and exit 2021-11-12 19:47:37 +01:00
aeon0 9680760ae6 random updates and optimizations 2021-11-12 19:42:09 +01:00
aeon0 333bb7feb1 update discord 2021-11-12 06:36:02 +01:00
aeon0 e7927fd86a aaand make it a bool... 2021-11-12 00:40:53 +01:00
aeon0 9e46126c9e missing es_available in config.py 2021-11-12 00:39:01 +01:00
Mitchell Gleed 77f52558ba support for different difficulties (#13) 2021-11-11 23:56:03 +01:00
jagarop 32a619a0b2 energy_shield (#12)
* add energy shield

* add energy shield
2021-11-11 23:54:42 +01:00
Mitchell Gleed af807bb8e2 Suppress low runes (#14)
* suppress low runes from discord log

* suppress low runes from discord log
2021-11-11 23:53:37 +01:00
Mitchell Gleed fa9f7b2f3e Add merc_chicken param and add highlighted variation of save&exit button (#11)
* typo fix

* add merc chicken param, add highlighted save/exit button

* update readme

* remove files from other branch

* remove debug images, adjust gitignore

* fixed requested changes, revert 1 old logger change
2021-11-11 23:51:52 +01:00
Mitchell Gleed 5fd3aabf72 typo fix (#10) 2021-11-11 17:14:46 +01:00
aeon0 125925fb3e update readme.md 2021-11-10 23:26:09 +01:00
aeon0 a1404f6f4f indent issue 2021-11-10 20:40:49 +01:00
Mitchell Gleedandaeon0 90cadb4843 Add gold to param/asset, prevent attempts to stash gold, and asset renaming (#9)
* add gold and fix asset names

* add gold and fix asset names

* add gold and fix asset names

* add gold and fix asset names

* Update src/pickit.py

Co-authored-by: aeon0 <[email protected]>
2021-11-10 20:30:56 +01:00
aeon0 730b68b2db update webhook 2021-11-10 20:11:03 +01:00
aeon0 3d36d9286b Bump version to v0.2.2 2021-11-10 20:03:54 +01:00
aeon0 ecf82eeaac dont spam the drop-log! 2021-11-10 20:03:25 +01:00
aeon0 0a4645769e actually use mingw64 on compiling 2021-11-10 19:29:00 +01:00
aeon0 a6d880b2c3 Bump version to 0.2.1 2021-11-10 18:55:27 +01:00
aeon0 f5add914ef adjust slow walk param 2021-11-10 18:55:19 +01:00
aeon0 2cd540e3ec increase item find threshold again to avoid confusion 2021-11-10 18:50:14 +01:00
aeon0 2ebbf02cfc Merge branch 'master' of https://github.com/aeon0/botty 2021-11-10 18:37:52 +01:00
aeon0 b3bed8a1fe discord integration for drops and getting stuck 2021-11-10 18:37:41 +01:00
aeon0 8ef3362cff fix some pickit issues, lower item thresholds 2021-11-10 17:43:29 +01:00
aeon0 9526d4c56e update readme.md 2021-11-10 08:27:37 +01:00
aeon0 efaf48608c Bump version to v0.2.0 2021-11-09 19:41:43 +01:00
aeon0 f42b7a83c3 fix(template): Remove useless template 2021-11-09 19:41:21 +01:00
aeon0 24cd471db7 feat(template): Increase search scale 2021-11-09 19:33:52 +01:00
aeon0 d69967af74 fix(config): Random config force to bool 2021-11-09 19:23:10 +01:00
aeon0 80beb88c4b feat(pather): Bring back static routs as option 2021-11-09 19:00:16 +01:00
aeon0 bd36bcab25 fix(char): Increase cast rate to be on the safe side 2021-11-09 18:03:49 +01:00
aeon0 8a006fc39f feat(pather): Prevent useless logging 2021-11-09 18:02:59 +01:00
aeon0 6eaabc4f4b bot(cmd): Change "Start Screen" 2021-11-09 18:02:24 +01:00
aeon0 02790f3e2a parma(colors): A bit wider ranges for colors 2021-11-09 17:55:54 +01:00
aeon0 860d6e55b0 fix(ui): Change save exit btn to be highlight independet 2021-11-09 17:54:56 +01:00
aeon0 c64daabed6 fix(death): Give death manager time to pick up on possible death after chicken 2021-11-09 12:37:48 +01:00
jagarop 53a4601de5 fix(pickit): remove duplicated assets 2021-11-09 09:21:47 +01:00
aeon0 46879379b9 doc(md): Additional info about tps 2021-11-09 08:04:03 +01:00
aeon0 c17117d56b Merge branch 'master' of https://github.com/aeon0/botty 2021-11-09 07:37:49 +01:00
aeon0 64d3941714 doc(md): Shopping feature and tp info 2021-11-09 07:37:41 +01:00
jagarop d1abb21511 refactor(pickit): Lower case item names for backwards compatibility 2021-11-09 07:34:17 +01:00
aeon0 2cdab92ba9 feat(bot): Go shopping! 2021-11-08 23:43:58 +01:00
aeon0 efabf671d0 feat(pather): Lazurak pathing 2021-11-08 22:37:44 +01:00
aeon0 3de6824156 fix(pickit): Correct bad indent 2021-11-08 22:26:55 +01:00
aeon0 cc3372d286 feat(pickit): Correct blacklist item names 2021-11-08 22:22:57 +01:00
aeon0 cbfacdac03 Merge branch 'master' of https://github.com/aeon0/botty 2021-11-08 22:22:25 +01:00
aeon0 91e5c18f11 Merge pull request #5 from Sp3cialk29/master
feat(pickit): Expanded pickit items and defined new naming convention
2021-11-08 22:21:30 +01:00
Sp3cialk29 a0e1e0cb53 Merge branch 'master' of https://github.com/Sp3cialk29/botty 2021-11-08 14:18:46 -07:00
Sp3cialk29 18f93d70f3 Cleaned up some item images and added back bl_ items 2021-11-08 14:18:32 -07:00
Sp3cialk29andaeon0 ea8a382448 Update src/item_finder.py
Co-authored-by: aeon0 <[email protected]>
2021-11-08 14:13:03 -07:00
Sp3cialk29 eaa2d67c42 Renamed all item references to lower case, added line 52 to item_finder.py to catch any uppercase characters 2021-11-08 14:08:05 -07:00
aeon0 10d912ba25 feat(npc): Add larzuk as NPC 2021-11-08 21:48:20 +01:00
aeon0 d442090ffe Merge branch 'master' of https://github.com/aeon0/botty 2021-11-08 20:53:15 +01:00
aeon0 52b1fc2f20 feat(bot): Randomize order of runs 2021-11-08 20:53:08 +01:00
Sp3cialk29 18aa8aba58 Expanded pickit items and defined new naming convention 2021-11-08 12:40:21 -07:00
aeon0 8ece6cfa59 Merge pull request #4 from mgleed/ctrl_click_hold
fix(stashing): Brief hold left click when Ctrl+click in stash
2021-11-08 19:20:49 +01:00
aeon0 3a7183a834 feat(stuff): Few optimizations 2021-11-08 16:45:29 +01:00
aeon0 af655cafaf fix(pather): Increase globe size to not click on it 2021-11-08 16:42:46 +01:00
aeon0 5a07a69839 fix(chicken): Release alt before pressing esc 2021-11-08 16:28:23 +01:00
aeon0 8a0da4993c refactor(mouse): Remove debug prints 2021-11-08 16:17:34 +01:00
aeon0 7ff5bdce7b fix(pickit): Force tp when moving to items 2021-11-08 16:16:48 +01:00
aeon0 7181494a86 feat(mouse): Nicer mouse movement 2021-11-08 16:14:30 +01:00
mgleed 79edfaf163 add brief left click hold to avoid one type of d2r ctrl+click stashing bug 2021-11-08 08:51:54 -05:00
aeon0 2fd3ce763a doc(char): Add attack sequence params to docs 2021-11-08 08:48:44 +01:00
aeon0 32c34fdfb4 Merge branch 'master' of https://github.com/aeon0/botty 2021-11-08 08:23:27 +01:00
aeon0 1168210420 fix(pindle): Add addtional template at start cause of cta delay and merc 2021-11-08 08:23:17 +01:00
aeon0 b289e4cbb5 feat(atk): Config for attack length 2021-11-08 08:17:06 +01:00
aeon0 a588a5c9e6 fix(pindle): Only move away from items if last run 2021-11-08 07:43:17 +01:00
aeon0 3f19c02f30 fix(cta): Switch order and make quicker 2021-11-08 07:40:18 +01:00
aeon0 f34d746556 Bump version to v0.1.3 2021-11-08 07:16:23 +01:00
aeon0 54af636d8f Doc formating 2021-11-07 21:50:19 +01:00
aeon0 41c05cc614 fix(path): Add another template to avoid getting stuck at shenk 2021-11-07 21:33:11 +01:00
aeon0 183bae8583 feat(release): Create empty custom.ini for each release 2021-11-07 21:25:25 +01:00
aeon0 6f190c8065 docs(md): Update docs 2021-11-07 21:22:18 +01:00
aeon0 6260a0ce30 fix(pickit): Workaround for pickup with flames, do shenk pickit twice 2021-11-07 21:07:53 +01:00
aeon0 35df3bae7b fix(move): Do not slow walk on teleport 2021-11-07 21:06:11 +01:00
aeon0 26c5ee9de5 add another template to avoid getting stuck 2021-11-07 21:04:53 +01:00
aeon0 1cfde7f560 fix(hammerdin): Recast in set intervall to come back from interrupt 2021-11-07 21:04:38 +01:00
aeon0 282f7a5606 fix(char): Remove useless import that might lead to issues in exe 2021-11-07 20:49:28 +01:00
aeon0 1a148afcfb Bump version to 0.1.3-rc0 2021-11-07 16:02:46 +01:00
aeon0 a91a91dc7c feat(path): Ref pathing shenk 2021-11-07 15:56:41 +01:00
aeon0 648d89ff28 feat(path): Refpathing to Eldritch 2021-11-07 13:52:18 +01:00
aeon0 489cc4ec36 feat(path): Refpoint pathing for pindle 2021-11-07 12:43:35 +01:00
aeon0 fddd72c3a5 Merge branch 'master' of https://github.com/aeon0/botty 2021-11-07 10:58:58 +01:00
aeon0 5abe2fb33e fix(death): Make sure keys are released when killing main bot thread 2021-11-07 10:57:20 +01:00
aeon0 df12dbd57c update docs 2021-11-07 01:39:37 +01:00
aeon0 9a3b054248 Merge pull request #3 from jagarop/master
add zstandard
2021-11-07 01:38:07 +01:00
aeon0 26246f141b Merge branch 'master' into master 2021-11-07 01:37:53 +01:00
aeon0 8d1f84062d doc(dev): Add note about user being a variable 2021-11-07 00:49:48 +01:00
aeon0 a7d31775f1 fix(start): Robustify game start with new disabled play button 2021-11-07 00:40:33 +01:00
jagarop 7c52b05d10 Update development.md 2021-11-06 20:09:59 -03:00
jagarop a7d7a96268 add zstandard 2021-11-06 20:06:29 -03:00
aeon0 8e48dfe3d0 Bump version to v0.1.3 2021-11-06 16:47:22 +01:00
aeon0 c89b35ff33 fix(ui): Game creation 2021-11-06 16:46:54 +01:00
aeon0 0d6ab59277 fix(bot): Reset of runs with specific shenk eldritch setup 2021-11-06 16:25:54 +01:00
aeon0 01bdc022ec fix(runtime): High cpu usage in idle cause of while loop 2021-11-06 15:11:23 +01:00
aeon0 06b0d4fb27 refactor(pixel): Remove last of hardcoded pixel values 2021-11-06 14:56:47 +01:00
aeon0 c751259319 feat(bot): More fail saves 2021-11-06 14:53:45 +01:00
aeon0 b1113b8f5a feat(shenk): Config for Eldritch only 2021-11-06 14:25:42 +01:00
aeon0 efced03d83 fix(ui): Handle grayed out play button 2021-11-06 14:05:32 +01:00
aeon0 e69a197135 Merge branch 'master' of https://github.com/aeon0/botty 2021-11-06 13:23:11 +01:00
aeon0 90869ebfbb refactor(botty): Add docs, clean up, put all hardcoded px values to .ini 2021-11-06 12:48:19 +01:00
aeon0 b9ccc733df doc(md): Add missing doc of slow_walk, custom.ini and note for conda path 2021-11-06 08:09:16 +01:00
aeon0 0635497a47 fix(stashing): Increase delays to avoid drag instead of stash 2021-11-06 07:56:58 +01:00
aeon0 8279332579 Merge pull request #2 from jagarop/master
Update development.md
2021-11-06 00:57:44 +01:00
aeon0 21dc086ebd feat(path): Add slow walk mode as backup 2021-11-06 00:55:29 +01:00
jagarop b80888aca6 Update development.md
missing command
2021-11-05 20:34:22 -03:00
aeon0 d59fbc0cd3 config(color): Increase range a bit and add note to readme about graphic card settings 2021-11-05 22:03:43 +01:00
aeon0 652823189c feat(config): Add custom config file 2021-11-05 21:59:17 +01:00
aeon0 1f1437ce1d doc(md): Add Download link a bit more obivous 2021-11-05 14:43:37 +01:00
708 changed files with 2691 additions and 1048 deletions
+32
View File
@@ -0,0 +1,32 @@
---
name: Bug report
about: Create a report to help improve botty
title: ''
labels: ''
assignees: ''
---
**Botty Version**
What version of botty are you running? Are you using a pre-compiled release? Which one. Are you using the latest master branch? On which commit?
**Describe the bug**
A clear and concise description of what the bug is.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. etc.
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots / Video**
If applicable, add screenshots or even better a short video of the error happening to help explain your problem. Botty often automatically makes screenshots when something goes wrong. Add these also.
**Logs**
Add the relevant part of the info.log in this section. Either upload it as a fail or copy-paste the relevant part in here.
**Additional info**
Add any other information about the problem here.
+47
View File
@@ -0,0 +1,47 @@
name: Botty - CI
on: [pull_request]
jobs:
tests:
runs-on: windows-latest
steps:
- uses: actions/checkout@v2
- name: Setup Miniconda Python 3.8
uses: actions/setup-python@v2
with:
python-version: 3.8
# TODO: The below setp only chaches conda packages, need to cache pip seperatly
- name: Cache conda
uses: actions/cache@v2
env:
# Increase this value to reset cache if environment.yml has not changed
CACHE_NUMBER: 0
with:
path: ~/conda_pkgs_dir
key: conda-${{ env.CACHE_NUMBER }}-${{hashFiles('environment.yml') }}
- name: Cache pip
uses: actions/cache@v2
env:
# Increase this value to reset cache if environment.yml has not changed
CACHE_NUMBER: 0
with:
path: ~/pip
key: pip-${{ env.CACHE_NUMBER }}-${{ hashFiles('environment.yml') }}
- name: Install Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
python-version: 3.8
activate-environment: botty
channel-priority: strict
environment-file: environment.yml
use-only-tar-bz2: true # Needed for caching
- name: Activate conda
shell: powershell
run: |
C:\Miniconda\condabin\conda.bat init powershell
set PYTHONPATH=./src
- name: Pytest
shell: powershell
run: |
C:\Miniconda\condabin\conda.bat activate botty
python -c "import sys; print(sys.version)"
pytest -v -s
+7
View File
@@ -1,4 +1,5 @@
__pycache__/
.pytest_cache/
*_generated.py
playground.py
*.pyc
@@ -12,3 +13,9 @@ run.dist/
run.onefile-build/
generated/
botty_v*/
custom.ini
*info_*.png
.vscode
info_screenshots/
loot_screenshots/
.venv
-2
View File
@@ -1,2 +0,0 @@
DO WHATEVER YOU WANT PUBLIC LICENSE
(Minus the Blizzard assets, they are copyrighted by them I guess)
+68 -46
View File
@@ -1,75 +1,96 @@
# <img src="assets/docs/header_green.png" width="370">
Simple Pixelbot for Diablo 2 Resurrected written in python and opencv. Obviously only use it in offline mode as it is against the TOS of Blizzard to use it in online mode!
Simple Pixelbot for Diablo 2 Resurrected written in python and opencv. Obviously only use it in offline mode as it is against the TOS of Blizzard to use it online!
[**Download here**](https://github.com/aeon0/botty/releases). Got to have a [**Discord**](https://discord.gg/Jf3J8cuXWg) nowadays I guess :man_shrugging:
Join the [**Discord Channel**](https://discord.gg/CnkfsjqN) for help and discussions.
[![Watch the video](assets/docs/video_thumbnail.png)](https://vimeo.com/641410429)
And please. I urge you to actually read that README! It will make your life a lot easier.
## Supported features
- Run Pindle, Eldtritch, Shenk
- Pickit with per item config.
- Stash picked up items (using all 4 stashes)
- Prebuff
- Revive Merc if dead
- Heal at Malah if needed
- Take potions and chicken if in trouble during fights
- Check for death. In this case start another game and pick up corpse.
- Supported builds: Sorceress (Blizz, Light, Meteor), Hammerdin
- Debug color checker to easily verify your settings
- Runs in Hyper-V
[![Watch the video](assets/docs/video_thumbnail.png)](https://streamable.com/67h9ay)
## Getting started
### 1) Graphics and Gameplay Settings
All settings will automatically be set when you execute `run.exe` and press the hotkey for "Adjust D2R settings" (default f9). Note that D2R should not run during this process, or if it does you will have to restart afterwards. The important ones are listed here:
The bot currently only supports the screen resolutions 1920x1080 and 1280x720. If your monitor has a higher resolution, you need to reduce it to the mentioned once for running the bot.
- Resolution: 1920x1080 (Fullscreen)
- Gamma: 155
- Item Label Display: Hold
- Large Font Mode: on
### 1) Graphics and Gameplay Settings
All settings will automatically be set when you execute `run.exe` and press the hotkey for "Adjust D2R settings" (default f9). Note that D2R should not run during this process, or if it does you will have to restart afterwards. It is not a 100% thing, in rare cases you might still have to fiddle around with your brightness. I suggest using the "Color Test Mode" to verify your settings.</br>
**Note**: There have been issues reported with image sharpening being truned on via the graphic card settings itself outside of D2R. Try turning it off when running botty.
### 2) Supported builds
#### Soceress
You can put any skills on left and right attack and see if it works out. E.g. Glacial Spike on left attack and Blizzard or right attack.
Adjust the hotkeys in the __param.ini__ for the `[char]` and `[sorceress]` section accordingly. Check out the param.ini section in the Readme for more details on each param.
Adjust the hotkeys in the __custom.ini__ or __param.ini__ for the `[char]` and `[sorceress]` section accordingly. Check out the param.ini section in the Readme for more details on each param.
#### Hammerdin
Your standard Hammerdin with Enigma. Dont think I have to explain much here.
Your standard Hammerdin with Enigma. Dont think I have to explain much here. Same story as with sorc, set up your skills in the .ini file to what you have in D2R or the other way around. When running more than just pindle or shenk you need to start with a full tomb of tps in your inventory.
### 3) Start Location
Open up D2R and wait till you are at the hero selection screen. Make sure the char you running with is selected and will be in A5 hell when starting a hell game.
Open up D2R and wait till you are at the hero selection screen. Make sure the char you running with is selected and will be in A5 in the respective difficulty you set in the __param.ini__ once the bot starts the game.
### 5) Start Botty
Download the a prebuilt release [here](https://github.com/aeon0/botty/releases). Start `run.exe` in the botty folder, go to D2R window and press the "resume" key. Move to your D2R window and press "f11". You can always force stop botty with f12.
### 4) Start Botty
Download the a prebuilt release [here](https://github.com/aeon0/botty/releases). Start `run.exe` in the botty folder. Switch (ALT+TAB) to your D2R window and press the start key (default f11). You can always force stop botty with f12.
## Color Test Mode
To check if you graphic settings are good and if the bot would pick up items there is a **Color Test Mode** built in. Start botty and press F10 (Default key). This will open up a (mostly black) window. Start a game in D2R and throw some items of different type on the ground. If you now bring forward the debug window all items should show up with their names while the background is black. If you throw an item on the ground that should be picked up, it will have a red circle.</br>
<img src="assets/docs/color_checker.png" width="400">
## Development
Check out the [development.md](development.md) docu for infos on how to build from source and details of the project structure and code.
## param.ini
[general] | Descriptions
To ease the switch to new botty versions, you can also overwrite any of the param.ini fields in a __custom.ini__ file. When a new version of botty is released you just copy the file to the new version without having to port all your __param.ini__ changes to the new version. Example:
```ini
; custom.ini - overwrites 3 params in the param.ini
[general]
monitor=1
[routes]
run_pindle=1
run_shenk=0
```
[general] | Descriptions
--------------------------------|---------------------------------------------
name | Name used in terminal and discord messages
monitor | Select on which monitor D2R is running in case multiple are available
res | Resolution settings can be any of [1920_1080, 1280_720]
offset_top | Your D2R windows offset from top of the screen (including the window bar). For fullscreen leave at 0.
offset_left | Your D2R window offset from left of screen. For fullscreen leave at 0.
min_game_length_s | Games must have at least this length, will wait in hero selection for if game is too quick (to avoid server connection issues)
max_game_length_s | Botty will attempt to stop whatever its doing and try to restart a new game. Note if this fails, botty will attempt to shut down D2R and Bnet
exit_key | Pressing this key (anywhere), will force botty to shut down
resume_key | After starting the exe botty will wait for this keypress to atually start botting away
color_checker_key | Pressing this key will start a debug mode to check if the color filtering works with your settings. It also includes the item search and marks items it would pick up with red circles
logger_lvl | Can be any of [info, debug] and determines how much output you see on the command line
randomize_runs | If 0, the order will always be pindle -> eldritch/shenk. If 1 the order will be random.
difficulty | Set to `normal` `nightmare` or `hell` for game difficulty
custom_discord_hook | Add your own discord hook here to get messages about drops and in case botty got stuck and can not resume
info_screenshots | If 1, the bot takes a screenshot with timestamp on every stuck / chicken / timeout / inventory full event. This is 1 by Default, so remember to clean up the folder every once in a while
loot_screenshots | If 1, the bot takes a screenshot with timestamp everytime he presses show_items button and saves it to loot_screenshots folder. Remember to clear them once in a while...
[routes] | Descriptions
[routes] | Descriptions
--------------------------------|---------------------------------------------
run_pindle | Run Pindle in each new game. Select "1" to run it "0" to leave it out.
run_shenk | Run shenk in each new game. Select "1" to run it "0" to leave it out.
[char] | Descriptions
[char] | Descriptions
--------------------------------|---------------------------------------------
type | Build type. Currently only "sorceress" or "hammerdin" is supported
casting_frames | Depending on your char and fcr you will have a specific casting frame count. Check it here: https://diablo2.diablowiki.net/Breakpoints and fill in the right number. Determines how much delay there is after each teleport for example.
slow_walk | With this set to 1 the char will have a large delay for each running action in town. Set this to 1 if you keep getting stuck during traversing town.
atk_len_pindle | Attack length for hdin or number of attack sequences for sorc when fighting pindle
atk_len_eldritch | Attack length for hdin or number of attack sequences for sorc when fighting eldritch
atk_len_shenk | Attack length for hdin or number of attack sequences for sorc when fighting shenk
num_loot_columns | Number of columns in inventory used for loot (from left!). Remaining space can be used for charms
take_health_potion | Health percentage when healing potion will be used
take_mana_potion | Mana percentage when mana potion will be used. Currently belt managment is not very clever and it is safest to only pick up health pots and make sure mana reg is enough for pindle to not need mana pots.
heal_merc | Merc health percentage when giving healing potion to merc
chicken | Health percentage when chicken (leaving game)
chicken | Will chicken (leave game) when player health percentage drops below set value, range 0 to 1. Set to 0 to not chicken.
merc_chicken | Will chicken (leave game) when merc health percentage drops below set value, range 0 to 1. Set to 0 to not chicken.
show_items | Hotkey for "show items"
inventory_screen | Hotkey to open up inventory
stand_still | Hotkey for "stand still". Note this can not be the default shift key as it would interfere with the merc healing routine.
tp | Hotkey for using a town portal
show_belt | Hotkey for "show belt"
potion1 | Hotkey to take poition in slot 1
potion2 | Hotkey to take poition in slot 2
@@ -80,29 +101,30 @@ weapon_switch | Hotkey for "weapon switch" (only needed if cta_available=1)
battle_order | Hotkey for battle order from cta (only needed if cta_available=1)
battle_command | Hotkey for battle command from cta (only needed if cta_available=1)
[sorceress] | Descriptions
[sorceress] | Descriptions
--------------------------------|---------------------------------------------
teleport | Hotkey for teleport
skill_left | Hotkey for skill that is used on left mouse btn (e.g. Glacial Spike)
skill_right | Hotkey for skill that is used on right mouse btn (e.g. Blizzard)
forzen_armor | Hotkey for frozen armor (or any of the other armors)
telekinesis | Hotkey for telekinesis
teleport | Required Hotkey for teleport
skill_left | Required Hotkey for skill that is used on left mouse btn (e.g. Glacial Spike)
skill_right | Required Hotkey for skill that is used on right mouse btn (e.g. Blizzard)
frozen_armor | Optional Hotkey for frozen armor (or any of the other armors)
energy_shield | Optional Hotkey for energy shield
thunder_storm | Optional Hotkey for thunder storm
[hammerdin] | Descriptions
[hammerdin] | Descriptions
--------------------------------|---------------------------------------------
teleport | Hotkey for teleport
concentration | Hotkey for Concentration
redemption | Hotkey for redemption
teleport | Required Hotkey for teleport
concentration | Required Hotkey for Concentration
redemption | Optional Hotkey for redemption
holy_shield | Hotkey for Holy Shield
blessed_hammer | Hotkey for Blessed Hammer
[items] | Descriptions
[advanced_options] | Descriptions
--------------------------------|---------------------------------------------
item_type | Select "1" if item should be picked up, "0" if not.
pathing_delay_factor | A linear scaling factor, between 1 and 10, applied to pathing delays.
## Some distant future plans
- Running chaos with AI algo
- Emulating Keyboard and Mouse with Arduino
[items] | Descriptions
--------------------------------|---------------------------------------------
item_type | 0: Item will not be picked up. 1: Item will be picked up. 2: Item will be picked up and a discord message will be sent.
## Support this project
This project is free. Support it by contributing in any technical way, giving feedback, PRs or by submitting issues. That being said, I am not above accepting some pixel currency :) So if you want to send some fg my way to keep my dopamine high, here is my jsp: [jojo22](https://forums.d2jsp.org/user.php?i=768967).
This project is free. Support it by contributing in any technical way, giving feedback, bug reports or submitting PRs.
+7 -5
View File
@@ -13,19 +13,19 @@
"Blended Shadows": 0,
"Perspective": 0,
"VSync": 1,
"Framerate Cap": 0,
"Framerate Cap": 60,
"Framerate Target": 0,
"Window Mode": 1,
"Graphic Presets": 0,
"Graphic Presets": 4,
"Texture Quality": 4,
"Texture Anisotropy": 0,
"Ambient Occlusion Quality": 1,
"Ambient Occlusion Quality": 0,
"Character Detail": 2,
"Environment Detail": 2,
"Atmospherics Quality": 2,
"Transparency Quality": 3,
"Shadow Quality": 1,
"Anti Aliasing": 1,
"Anti Aliasing": 0,
"Dynamic Resolution Scaling": 0,
"Vfx Lighting Quality": 0,
"Safe Screen Percent": 100,
@@ -37,8 +37,10 @@
"Low Vision Mode": 1,
"Color Blind Mode": 0,
"Color Blind Strength": 100,
"Show Clock": 1,
"Auto Gold Enabled": 1,
"Chat Gem Mode": 1,
"Item Name Display": 0,
"Allow Chat": 0,
"Chat Background": 0,
"Always Run": 1
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 930 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 239 KiB

After

Width:  |  Height:  |  Size: 1.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Before

Width:  |  Height:  |  Size: 7.2 KiB

After

Width:  |  Height:  |  Size: 7.2 KiB

Before

Width:  |  Height:  |  Size: 9.6 KiB

After

Width:  |  Height:  |  Size: 9.6 KiB

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Before

Width:  |  Height:  |  Size: 4.3 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before

Width:  |  Height:  |  Size: 6.7 KiB

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.3 KiB

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 5.3 KiB

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Before

Width:  |  Height:  |  Size: 7.7 KiB

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 5.0 KiB

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

Some files were not shown because too many files have changed in this diff Show More