Compare commits

..
106 Commits
Author SHA1 Message Date
mgleed 7bc34a7b2f bump version (#720) 2022-04-20 20:01:03 -04:00
mgleedandaeon0 2dc1356cf7 Bugfixes: A2 TP stuck, also recapture some templates for d2r v2.4
* add _capture_template switch to template_finder.py _main function, replace eldritch templates

* update some trav templates

* update template_finder.py, update act 3 town templates

* update missing Eldritch templates

* add redudant eldritch templates and update nodes

* update shenk templates

* update trav assets, add redundant assets w nodes

* bugfix: a2 tp out of range of a2 templates

Co-authored-by: aeon0 <[email protected]>
2022-04-20 19:06:55 -04:00
mgleed ae0ab54efe Bugfix: Cain loop, etc. with return_to_play() function 2022-04-20 19:05:37 -04:00
mgleed bfb367ee62 Clear default launch_options param for planned upcoming stable release 2022-04-20 19:04:48 -04:00
mgleed 8d925509fa Bugfix: Default pickit errors with berserker axe and war pike 2022-04-20 09:26:40 -07:00
mgleed 811d656022 Increase padding from 1 to 2 spaces, pad gold (#711) 2022-04-20 12:16:24 +02:00
c7c0e9e1a3 Updated pot drinking logic (#710)
* Updated pot drinking logic

* fixed bugs

* simplify

* Fixed bad hp/mana check

* Fixed bad hp/mana check, (last was noob git by me)

Co-authored-by: Your Name <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-04-20 12:15:50 +02:00
aeon0andmgleed 9bc085af3a feat/restricted-mouse-clicks (#709)
* feat/restricted-mouse-clicks

* fix typos, use GoldBtnInventory ScreenObject, use personal.specific_inventory_roi()

* make smaller gold button, trim ROI, and use grayscale to search

* remove unused roi

* fix circular import by reverting to Config inventory area and adding open_inventory_area variable, adjust code throughout

* simplify

* revert to template finding due to circular import with ui_manager

* grayscale template match

Co-authored-by: mgleed <[email protected]>
2022-04-18 17:00:18 +02:00
roozhou a5d7fdaffa BugFix: Fix indicator_location_to_tab_count (#708)
1) 4 tabs instead of 3
2) Return value should be integer when failed
2022-04-17 12:47:34 +02:00
aeon0 16bf599d88 feat/run-qol (#707) 2022-04-17 12:40:53 +02:00
aeon0 59ba4409b5 Update i_char.py (#706) 2022-04-16 07:53:26 -07:00
mgleed f510965d05 init (#703) 2022-04-16 07:43:55 +02:00
aeon0 d43441358d Bugfix: Create mod folder if it doesnt exist (#701) 2022-04-14 21:47:39 -07:00
Aimware0 1ece05f7a7 Merge pull request #702 from roozhou/tooltip_fix
BugFix: Allow 2 lines of tooltip
2022-04-14 20:58:11 -04:00
roozhou ca93f3aa5d BugFix: Allow 2 lines of tooltip
Fix item_cropper failure in 2.4
2022-04-14 17:47:39 -07:00
tomoyo233 5c6e2211d6 Kill BlizzardError.exe (#688)
Kill the BlizzardError.exe process before restarting the game
2022-04-14 23:08:39 +02:00
mgleed f469d98f74 Bugfix: Item tooltip obscuring close button 2022-04-12 14:32:35 -07:00
Legit 699fcac7af Bugfix: missed pnova overhaul fixed (#694) 2022-04-06 22:54:29 -04:00
Legit c22275c1bb Bugfix: old ui overhaul time out modified for pnova necro (#693) 2022-04-06 18:38:17 -04:00
mgleed 470f42b1b9 Bugfix: renamed mod folder from ifilter to botty and narrowed rmtree (#690)
* fix

* didn't save
2022-04-03 21:13:03 -04:00
Legit 4b5b8385f8 Refactor: Condensed discord message will be the only option (#687)
* Condsensed discord message will be the only option

Condensed message will be default. removed the option from params.

* Update game_stats.py

* Update discord_embeds.py

* Update bot.py

* Update shenk_eld.py

* Update config.py

* removed a line

removed e.set_thumbnail(url=f"{self._psnURL}36L4a4994.png")

* Update README.md
2022-04-03 20:16:27 -04:00
jagarop 42655d5209 Enhancement: Stop gem pickups from logging to item count
Remove gems from loggin
2022-04-02 21:32:55 -04:00
mgleed 09a33ccf3d Feature/enhancement: Support for D2R launch options and cosmetic mods (#677)
Breaking change to param: `d2r_path`
2022-04-02 21:27:03 -04:00
egut125 fd93910941 Bugfix: Extra space (#682) 2022-04-01 13:46:54 -04:00
egut125 51de6f9f00 Bugfix: Placing list manipulation inside try block (#681) 2022-04-01 11:52:11 -04:00
egut125 d615f11608 Bugfix: Divide by zero fix (#680) 2022-03-31 22:39:10 -04:00
egut125andmgleed c6d2f3f068 Bugfix: Quick list manipulation to remove anything before experience in the list (#679)
* Quick list manipulation to remove anything before experience in the list

* update

* stupid ide

* cleanup

Co-authored-by: mgleed <[email protected]>
2022-03-31 22:38:13 -04:00
mgleed 0606adb5da Bugfix: Corpse pickup broken after Exp implementation (#675) 2022-03-31 17:16:39 -04:00
mgleed 82576282ab Enhancement: Update OCR model for large numbers 2022-03-31 17:16:09 -04:00
mgleed e6fe7ef609 Enhancement/bugfix: Refactor checks for item transferring (#673)
* init

* add confirmed action debug line
2022-03-30 19:49:13 -04:00
egut125 45e7a5ca9a Enhancement: Update messages to have better values (#671) 2022-03-30 13:06:50 -04:00
egut125 7d3710d1e8 Bugfix: Remove %exp calculation in player_bar()
Breaks on lvl 99 and doesn’t correctly calculate percent to next level anyways.
2022-03-29 08:40:02 -04:00
mgleed e354ed8074 Bugfix: custom config parsing (#668) 2022-03-28 18:01:12 -04:00
egut125andmgleed c4a5c6fe34 Feature: Runtime breaks (#665)
* New params for runtime and break time

* New params to manage session length and break time

* Starting message

* Message adjustments

* use _default_iff in config

Co-authored-by: mgleed <[email protected]>
2022-03-28 17:55:15 -04:00
egut125 2079b81df4 Feature: Leverage OCR to read exp and track in-game stats (#662)
* Leveraging OCR to read exp and track in game_stats

Start of each game and end of each run OCR exp
game_stats stores starting EXP and current EXP
game_stats summary calculates XP gained, XP per game, XP per hour

* Adding lvl tracking and xp to next level stats

* logic clean up
2022-03-28 09:25:30 -04:00
Aimware0andYour Name e64b312562 Bugfix: error handling for common belt error (#664)
Co-authored-by: Your Name <[email protected]>
2022-03-28 09:18:23 -04:00
Aimware0andYour Name cceb7905c7 Enhancement: Logger colors (#663)
Co-authored-by: Your Name <[email protected]>
2022-03-28 09:17:47 -04:00
4007087ceb Enhancement: variables can be initialized/used in config files
* Added a way to add config variables to ini files.

* Added examples

* Added examples

Co-authored-by: Your Name <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-03-28 09:17:09 -04:00
e64f1151f3 Enhancement: Use keyboard to select difficulty (#661)
* Enhancement: Use keyboard to select difficulty

* press instead of send

if somehow the select difficult menu is not available when the while True: loop is running, will still work.

* simplify, delete now unused assets

* cleanup more

Co-authored-by: jagarop <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-03-25 22:35:45 -04:00
mgleed 46202e5a69 Bugfix/enhancement: Fix ocr output wordlist check, replace difflib with Lev (#658)
* init

* remove unused difflib import

* use built-in function

* small changes
2022-03-23 16:11:57 -04:00
Legit 782001d338 Feature: Poison necro config (#597)
* Poison necro config

* Update bot.py

* added "walk"

to move summons after teleporting.

* Add files via upload

* Update params.ini

* Update params.ini

* Update poison_necro.py

* Update poison_necro.py
2022-03-23 14:28:07 -04:00
mgleed 4eeadb934f bump (#653) 2022-03-21 21:17:55 -04:00
mgleed 1f16c13300 Bump to 0.7.2 (#652) 2022-03-19 20:59:05 -04:00
mgleed ee479fb526 Bugfix: Stash tab counts not tracking (#646)
* init

* saved stuff

* fix startup

* fix

* gdi
2022-03-19 12:02:14 -04:00
Legit d05ff50f76 Enhancement: Improved eld attack sequence for Blizz sorc (#608)
* improved eld attack sequence

added an extra attack sequences and added wait timers.

* Update blizz_sorc.py
2022-03-18 17:14:41 -04:00
Aimware0 927ade6108 Bugfix: added error handling for custom.ini when missing section header (#647) 2022-03-18 17:02:12 -04:00
Steve6030 5eda34ded0 Enhancement: Tweaked light sorc attack sequence (#644) 2022-03-18 16:45:04 -04:00
mgleedandVladimir Makaev d9b9d66e3b Feature: Use OCR for gold pickit (#643)
* init

* consolidate

* Update src/config.py

Co-authored-by: Vladimir Makaev <[email protected]>

Co-authored-by: Vladimir Makaev <[email protected]>
2022-03-17 21:31:48 -04:00
mgleed 1adeb3a32a Bugfix: Some NPC's don't open to misc tab (#642)
* init

* cleanup

* clean

* cleanup
2022-03-16 21:52:29 -04:00
mgleed 1abf57eae1 Bugfix/refactor: Safer screen transitions for laggy setups (#641)
* init

* update

* WIP. cleanup code. refactor stashing routines, etc. hopefully now closer to lag-proof

* more simplification, ready for testing

* change default normalize_monitor and adjust code accordingly. testing

* undo save/exit keyboard

* forgot to save a couple

* fix gold checking
2022-03-16 16:06:12 -04:00
Legit 65797eba8f Note for num loot (#637)
created note for num loot to avoid confusion. Per Sosa.
2022-03-14 17:25:34 -04:00
mgleed 03a6e8b05c Bugfix/refactor: Arcane run doesn't turn off health_monitor when in town 2022-03-14 16:01:07 -04:00
mgleed 2c09459bde Bugfix/enhancement: Optimize waits; implement wait_for_expiration(ScreenObject) function (#629)
* init

* simplify

* the

* init

* update

* init

* fix belt open

* rework waiting functions in ui_manager.py
2022-03-13 20:19:41 -04:00
aeon0anduidn4233 7564fea4b0 Remove: Codecov (#632)
* Remove: Codecov

* test commit

* revert test commit

Co-authored-by: uidn4233 <[email protected]>
2022-03-12 22:21:14 -05:00
mgleed 95b27f099f Bugfix/refactor: Search for open panels instead of skill icons (#631)
* init

* add town logic

* add additional close asset for HELP menu

* fin

* a
2022-03-11 17:46:30 -05:00
mgleed e96c042853 Bugfix: Stash tab gold was being read based on prior stash tab image (#628)
* init

* simplify

* the

* init

* update
2022-03-11 13:53:46 -05:00
mgleed 57bf7a0f7d Bugfix: log_item_keep without game_stats (#627)
* init

* simplify

* the
2022-03-11 11:57:32 -05:00
mgleed da892d9043 Bugfix: Laggy inventory loading (#625)
* init

* undo item add

* add msg

* curse you Vladimir for reviewing too carefully
2022-03-10 17:28:22 -05:00
mgleed 7fad5e9aff Bugfixes: Quantity: parse fail handling, if in-game icon not found during return_to_play() 2022-03-10 17:07:35 -05:00
mgleed 840ffcdf0c Update version.py (#621) 2022-03-10 17:06:58 -05:00
Ezro 1078563f2d Bugfix: Prevent join for NoneType and start_detecting_window() in main.py (#624)
* Prevent join for NoneType and start_detecting_window() in main.py

* Start and stop in the debugger toggle
2022-03-09 23:15:36 -05:00
mgleed c1f2cad291 Bugfix: Game recovery after D2 restart (#620)
* init

* bump version
2022-03-09 19:42:20 -05:00
mgleed 285e635b0d Bugfix: Some vendor items obscured by tooltips 2022-03-09 15:40:04 -05:00
mgleed 54203ff036 Bugfix: Chicken if stats/skill icons pop up to avoid accidental allocations (#618)
* init

* simplify

* undo
2022-03-09 15:39:44 -05:00
mgleed 6b378a4606 Bugfix: Avoid entering town portals while walking in town 2022-03-09 15:39:02 -05:00
mgleed 9707fc4563 Enhancement: Cleanup botty startup. Add version to debug log. 2022-03-09 13:30:06 -05:00
mgleed 1a4e6c9533 Bugfix: Gold stashing (#615)
* init

* more places to toggle inventory gold full off
2022-03-08 21:47:13 -05:00
mgleed fb22b86d11 Bugfix: Stash is full message error (#614)
* fix item_cropper.crop_item_descr to allow some edge cases where there is lots of text in the box

* Fix send_stash message when stash is full

* remove self

* undo
2022-03-08 21:46:02 -05:00
mgleed 3c3f95142d Bugfix: crop_item_descr failing on some items 2022-03-08 21:45:37 -05:00
mgleed 029b8dcdc6 Bugfix: Lack of item tooltip causing item_cropper errors for users who turn it off (#612)
* Bugfix: Lack of item tooltip causing item_cropper errors.

* lol
2022-03-06 21:24:15 -05:00
mgleed 400d43c49c Bugfix: Tome discrepancies on some platforms (#611) 2022-03-06 20:55:50 -05:00
mgleed d2a3670a6a Bugfix: More related bugs for town and ui overhaul (#610)
* fix id logic, fix count reset, up to version 0.7.0, trim excess

* attempt to fix loop at cain, etc. when return_to_play() is called

* spell check, simplify

* center mouse after opening NPC menu

* fix messenger item count bug
2022-03-06 15:14:56 -05:00
mgleed bf421a67a9 Bugfixes: Town overhaul stuff (#609)
* fix id logic, fix count reset, up to version 0.7.0, trim excess

* attempt to fix loop at cain, etc. when return_to_play() is called

* spell check, simplify
2022-03-06 09:26:14 -05:00
mgleed f51de30fbd Major feature: Town routine overhaul, id tome, scrolls/keys, simplify gambling (#588)
* init, wip

* migration from original ocr complete, now troubleshooting phase

* first

* starts now

* catching more

* pause here, fix keep_item for ItemText class

* getting close

* adjust consumable quantity to refill per Legit

* fix import, refactor tp scroll tracking

* fixed property checking

* merge master, fix discord embed

* move tp charge setter

* properly track id scrolls after use

* fix accidental stashing

* fix sell_junk and chest_label bugs

* working on drognan instead of lysander

* a2 pathing, drognan support

* fix town-start to wp pathing, change key counting

* better drognan pathing

* comment out pather stuff

* restore old asset

* proper tp tracking

* revert key pickup to decrease need by 1

* fixing gambling, WIP

* working on gambling

* add comments to transfer_items

* add comments to transfer_items

* gambling semi-working, not stashing right

* simplify gambling process

* incorporate OCR gold reading to gamble, WIP

* gambling is painful

* simplified gambling - ~done

* finally finished gambling!

* fix diablo inventory check

* do not fail purchasing routine if item template is not seen

* fix condition

* deprioritize keys, scrolls during pickit; stop clicking Misc tab at repair

* cleanup

* init

* add support for grayscale + color_filtered

* cleanup logic

* only generate grayscale templates if use_grayscale=True

* simplify template_gray logic

* fix false detection of out of gold

* gambling with OCR was too buggy--replace with max gamble item count

* cleanup
2022-03-05 17:47:50 -05:00
Vladimir Makaev 32d7dc2e2a Documentation: Improve readme documentation in general section
Improve the README.md [general] documentation
2022-02-27 23:12:32 +00:00
Vladimir Makaev 37d41ed008 Enhancement/bugfix: Add override_capabilities param to workaround problems with autodetection (#600) 2022-02-27 16:39:08 -05:00
Kellen Stuart 5e55872668 Make improvements 2022-02-26 14:59:49 -07:00
Ezro a299051ecd Bugfix: Fix shopper scripts (#592)
* Fix anya shopper

* Fix drognan.py
2022-02-26 13:22:31 -05:00
Ezro 7056a58958 Enhancement/bugfix: Create find_and_set_window_position in screen.py to be used during testing (#591) 2022-02-26 12:23:26 -05:00
Ezro 006fb6516f Bugfix: Prevent psutil search for a negative process_id (#593) 2022-02-26 12:23:02 -05:00
mgleed 04b3367935 Bugfix: Restore for loop in gamble (#586) 2022-02-26 10:36:28 -05:00
mgleed 32f67d56df Bugfix: Missing import for i_char (#590) 2022-02-26 10:35:00 -05:00
49669e9919 Bugfix: Gambling won't start
* logic for ident, first attr. advanced pickit

* logic advanced vs normal pickit

* logic_empty_ID_Tome

* small adj. to fit PR

* converted yaml to ini. changed some val.

* changed param to auto_ident

* pickit integration

* added set in routine

* reset bot init value

* bugfix

* removed old id logic

* added_nested_filter

* changed pickit

* bugfix replace

* added some more props

* Cleanup

* cleanup

* cleanup

* started unittests

* unittest

* small pickit adjustments

* Added missing fct. after merge

* bugfix due to static method in config.py

* added comments in pickit.ini

* Update pickit.ini

* Update params.ini

* Update ui_manager.py

* Update pickit.ini

* bugfix

* remove redundant for loop, use set_gold_full

* fix merge

* simplify

Co-authored-by: aeon0 <[email protected]>
Co-authored-by: mgleed <[email protected]>
2022-02-23 20:59:12 -05:00
mgleed ad2cb6a365 Bugfix: Jamella, Halbu, Fara positions (#581)
* Temporary bugfix: Jamella and Halbu roi's poses

npc_manager.py needs roi updates for jamella and halbu as they were statically calculated based on pose positions from a4_vendor, but Skizot updated Jamella pathing and thus these no longer work.

Gonna delete the roi's and pose positions until this can be done--it'll just search by original algorithm for NPc detection in the meantime.

* noticed the same behavior with Fara :(
2022-02-23 20:25:38 -05:00
mgleed 98f69211c1 Bugfix: Properly dismiss NPC dialogue (#584)
* Bugfix: Properly dismiss NPC dialogue

Thought this was fixed in #582 but it seemed to work only in some scenarios. This change is more robust.

* Remove debug line
2022-02-23 20:22:22 -05:00
mgleed 8515b6da92 Refactor: Rearrange inventory functions, code cleanup (#577)
* init

* cleanup, fix messanger typo

* cleanup

* rename player. to personal.

* saved

* merge artifact
2022-02-23 20:20:54 -05:00
mgleed 47993f141c Bugfix/enhancement: Function to show all ScreenObjects (#582)
* init

* cleanup

* cleanup

* bugfix. ran 8 hours without error after this
2022-02-23 10:03:11 -05:00
mgleed 9726690c07 Bugfix: Save/exit error (#579)
Fix bug where save/exit routine would pass an empty template match
2022-02-22 23:01:45 -05:00
mgleed f37c916e72 Bugfix: Suppress warning if no discord webhook set (#571)
* suppress warnings for no discord webhook

* rearrange

* Update discord_embeds.py

* Update generic_api.py

* Update generic_api.py
2022-02-21 23:56:55 -05:00
mgleed 994646d811 Bugfix: Made corpse pickup more robust (#575) 2022-02-21 21:09:57 -05:00
mgleed c8eb88f672 Feature: OCR for item drops and item description boxes (#570)
* initial

* bugfixes. now stable & testing

* narrow ROI to search for 'CLICK TO' tooltip
2022-02-21 19:54:29 -05:00
Legit 8fa729ddab Bugfix: Missing template finder for blizz sorc nihlathak (#574)
added missing template finder after ui merge.
2022-02-21 18:25:32 -05:00
Ezro 59d0795153 Bugfix: Fix bug with screen offset detection in fullscreen (#573) 2022-02-21 01:18:04 -05:00
Legit 69d546f5ee Enhancement: Update default params (#554)
* Params Default Update

Updated some settings as new defaults including changing generic_api to discord.
2022-02-20 23:43:27 -05:00
mgleed 9b22917660 Refactor: UI overhaul (#558)
Summary of changes:
-Rearranged many UI-related functions across the codebase (particularly in ui_manager.py) into individual components. See src/ui_components/. Functions related to components can be called like if waypoint.use_wp("Arcane Sanctuary"): or loading.wait_for_loading_screen(2.0)
-Removed Screen and TemplateFinder dependencies across the codebase
-Screen functions separated from class
-TemplateFinder made into a singleton
-Added generic ScreenObject UI functions to simply detect UI elements on screen; e.g., detect_screen_object(ScreenObjects.TownPortal), wait_for_screen_object(ScreenObjects.Loading, 2). Also included related functions like select_screen_object_match(template_match) to automatically select the match.
-Consolidated assets. Organized templates folder into components. Adjusted some asset ROI's and alpha channels.
-Changed some template searches to grayscale for speed
-Reworked save/exit routine, should now be more consistent and faster with normal exit, chicken exit, and death exit.
-Got rid of unused and consolidated duplicate game.ini parameters
-spelling fix _last_merc_healh
-NPC manager class removed and replaced with functions
-D2 window detection now runs on its own thread for semi-live window position offsets.
-Character selection reworked. OCR your selected character for fun (not that accurate, lol)
-Simplified game start and difficulty select
-Added a get experience function, but this is not called anywhere yet
-Reworked corpse pickup. pickup_corpse is no longer a necessary argument/parameter throughout the codebase (bot.py, game_controller.py, runs, etc.)
2022-02-20 18:49:04 -05:00
mgleed cd979b3e4a Bugfix: check capabilities after corpse pickup (#567) 2022-02-19 21:54:45 -05:00
Vladimir Makaev 528400503c Enhancement: Ability to customize window properties to look for when win32 api searching for d2r window (#563) 2022-02-18 12:27:31 -05:00
mischavandenburg 59c8a898b7 corrected spelling mistakes (#566) 2022-02-18 12:03:34 -05:00
mischavandenburg 637920fc4e Feature: Added 46 uniqe / set items to pickit (#552)
by @mischavandenburg
2022-02-17 15:03:00 -05:00
Vladimir Makaev 3985817b19 Merge pull request #556 from aeon0/mgleed-patch-1
Bump to 0.6.7
2022-02-17 11:14:26 +00:00
mgleed 51c7216068 Revert "Speed up save_and_exit (#555)" (#560) 2022-02-16 22:55:30 -05:00
Ezro 196f99e5e6 Speed up save_and_exit (#555)
* Replace search and mouse click with keyboard sends

* Hardcode x,y and 'double click'

* Remove hardcode x, y since it's not guaranteed to be accurate
2022-02-16 20:28:11 -05:00
mgleed 92300818c3 Bump to 0.6.7 2022-02-16 00:20:05 -05:00
mgleed e46edbc6aa Bugfix: Shenk offset stacking (#548)
* Bugfix: Shenk offset stacking

* bump to 0.6.6

* move stuff around
2022-02-15 14:57:30 -05:00
Vladimir MakaevandVladimir Makayev e304e227c8 Bugfix: Diablo was passed as char to pickit (#551)
Co-authored-by: Vladimir Makayev <[email protected]>
2022-02-15 14:10:47 -05:00
jobithu 77149a621f CS Hammerdin: optional skills now checked for binding before cast (#550)
* optional skills now checked for binding before cast

* forgot 628
2022-02-15 07:12:17 -05:00
345 changed files with 53514 additions and 4069 deletions
-5
View File
@@ -50,8 +50,3 @@ jobs:
run: |
C:\Miniconda\condabin\conda.bat activate botty
coverage xml
- name: Upload Coverage to Codecov
uses: codecov/codecov-action@v2
with:
verbose: true
files: ./coverage.xml
+24 -25
View File
@@ -4,9 +4,9 @@ Pixelbot for Diablo 2 Resurrected. This project is for informational and educati
[**Download here**](https://github.com/aeon0/botty/releases) and got to have a [**Discord**](https://discord.gg/Jf3J8cuXWg) nowadays I guess :man_shrugging:
## Getting started & Prequists
- D2r needs to be in English Language,
- Botty currently works with 720p D2r window (will be adjusted automatically on auto settings)
## Getting started & Prerequisites
- D2R needs to be in English Language,
- Botty currently works with 720p D2R window (will be adjusted automatically on auto settings)
### 1) Graphics and Gameplay Settings
@@ -15,11 +15,11 @@ All settings will automatically be set when you execute `main.exe` and press the
### 2) Supported builds
Check the documentation for **param.ini** further down. Different Sorc builds, Hammardin, Barb, Trapsin are already implemented to different extents. It is quite straightforward to implement new classes. Give it a go if you like!
Check the documentation for **params.ini** further down. Different Sorc builds, Hammerdin, Barb, Trapsin are already implemented to different extents. It is quite straightforward to implement new classes. Give it a go if you like!
### 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 any of Act 3, 4 or 5 in the respective difficulty you set in the **param.ini** once the bot starts the 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 any of Act 3, 4 or 5 in the respective difficulty you set in the **params.ini** once the bot starts the game.
### 4) Start Botty
@@ -34,12 +34,12 @@ To check if you graphic settings are good and if the bot would pick up items the
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
## params.ini
All botty configuration files are located in the __config__ folder. To ease the switch to new botty versions, you can also overwrite any of the .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:
All botty configuration files are located in the __config__ folder. To ease the switch to new botty versions, you can also overwrite any of the .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 **params.ini** changes to the new version. Example:
```ini
; custom.ini - overwrites 3 params in the param.ini
; custom.ini - overwrites 3 params in the params.ini
[general]
name=MyCustomName
@@ -50,21 +50,20 @@ run_shenk=0
| [general] | Descriptions |
| -------------------- | --------------------------|
| name | Name used in terminal and discord messages |
| custom_message_hook | Add your own message hook here to get messages about drops and botty status updates, discord webhook is default |
| logger_lvl | Can be any of [info, debug] and determines how much output you see on the command line |
| 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 |
| max_consecutive_fails | Botty will stop making games if the number of consecutive fails reaches this max value |
| randomize_runs | 0: the order will be as seen in the params.ini. 1: the order will be random |
| difficulty | Set to `normal` `nightmare` or `hell` for game difficulty |
| message_api_type | Which api to use to send botty messages. Supports "generic_api" (basic discord), or "discord" (discord embeds with images).
| discord_status_count | Number of games between discord status messges being sent. Leave empty for no status reports.
| discord_status_condensed | Toggles condensed view of Discord status messages. 0 Full text, 1 Condensed text.
| 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... |
| saved_games_folder | Optional folder path of Diablo 2 : Ressurrected saved games that will be used to overwrite when running the "auto settings" |
| d2r_path | Optional path to find the d2r.exe, if not set will be default to "C:\Program Files (x86)\Diablo II Resurrected\D2R.exe" when attempting to restart |
| restart_d2r_when_stuck | Set to `1` and botty will attempt to restart d2r in the case that botty is unable to recover its state (e.g: game crash) |
| name | Name used in terminal and discord messages. |
| custom_message_hook | Add your own message hook here to get messages about drops and botty status updates, discord webhook is default. |
| logger_lvl | Can be any of [info, debug] and determines how much output you see on the command line. |
| max_game_length_s | Max game length in seconds. Botty will attempt to stop whatever it's doing and try to restart a new game at specified interval. If this fails, botty will attempt to shut down D2R and Bnet. |
| max_consecutive_fails | Botty will stop making games if the number of consecutive fails reaches this max value. |
| randomize_runs | Randomize the order of `[routes]` specified in `params.ini`. |
| difficulty | Set to `normal` `nightmare` or `hell` for game difficulty. |
| message_api_type | Which api to use to send botty messages. Supports "generic_api" (basic discord), or "discord" (discord embeds with images). |
| discord_status_count | Number of games between discord status messages being sent. Leave empty for no status reports.
| 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... |
| saved_games_folder | [Optional] Defaults to `~\Saved Games\Diablo II Resurrected`. Used to store configuration settings for `f9` / auto settings. |
| d2r_path | [Optional] Path to `d2r.exe`. If not set, it will default to `C:\Program Files (x86)\Diablo II Resurrected\D2R.exe` when attempting to restart. |
| restart_d2r_when_stuck | Set to `1` and botty will attempt to restart d2r in the case that botty is unable to recover its state (e.g: game crash). |
| [routes] | Descriptions |
| ------------ | ------------------------------------------------------------------------ |
@@ -94,10 +93,10 @@ run_shenk=0
| potion4 | Hotkey to take potion in slot 4 |
| cta_available | 0: no cta available, 1: cta is available and should be used during prebuff |
| 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_order | Hotkey for battle orders from cta (only needed if cta_available=1) |
| battle_command | Hotkey for battle command from cta (only needed if cta_available=1) |
| stash_gold | Bool value to stash gold each time when stashing items |
| gold_trav_only | Hacky config that will restrict gold pickup to trav only. misc_gold must be set to 1 for this to have any effect |
| min_gold_to_pick | Minimum quantity of gold to pickup (also must set misc_gold=1 in pickit config) |
| use_merc | Set to 1 for using merc. Set to 0 for not using merc (will not revive merc when dead), default = 1 |
| atk_len_arc | Attack length for hdin/sorc fighting arcane |
| atk_len_trav | Attack length for hdin fighting trav (note this atk length will be applied in 4 different spots each) |
+2 -1
View File
@@ -45,5 +45,6 @@
"Always Run": 1,
"Quick Cast Enabled": 0,
"Display Active Skill Bindings": 0,
"Lobby Wide Item Drop Enabled": 1
"Lobby Wide Item Drop Enabled": 1,
"Item Tooltip Hotkey Appender": 1
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 802 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 798 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 916 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+7
View File
@@ -0,0 +1,7 @@
{
"name": "botty",
"savepath": "../"
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 44 KiB

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