Skip to content
This repository has been archived by the owner on Jul 1, 2022. It is now read-only.

Commit

Permalink
Major feature: NTIP pickit syntax integration, OCR pickit, OCR item p…
Browse files Browse the repository at this point in the history
…roperty filtering (#724)

By @Riddle1001 @Ezro @mgleed @D2RLegit Sosa
  • Loading branch information
aliig authored Jun 16, 2022
1 parent c274ba6 commit 930934e
Show file tree
Hide file tree
Showing 1,242 changed files with 64,627 additions and 5,010 deletions.
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ A clear and concise description of what you expected to happen.
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.
Add the relevant part of the log/log_(time).txt 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.
19 changes: 13 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ __pycache__/
playground.py
*.pyc
*.pyo
*.log
*.spec
dist/
build/
Expand All @@ -16,16 +15,24 @@ botty_v*/
custom.ini
config/custom.ini
config/custom.*.ini
*info_log_parsed.txt
*info_*.png
.vscode
.vs/
info_screenshots/
loot_screenshots/
stats/
test/assets/
.venv
*.bak
.coverage
htmlcov/
coverage.xml
utils/live-view/
config/nip/*
!config/nip/.gitkeep

stats/
info_screenshots/
item_error_screenshots/
loot_screenshots/
pickit_screenshots/
*info_log_parsed.txt
*info_*.png
*.log
log/
19 changes: 18 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,23 @@ Check out the [development.md](development.md) docu for infos on how to build fr
You can support this project by giving feedback, reporting bugs, or creating pull requests.
Contributions are welcome, and we encourage you to contribute to this project if you would like to help out. Botty is a open source project and almost excessively maintained by contributors (there has been 50+ contributors! <3). In our [**discord**](https://discord.gg/Jf3J8cuXWg) there is a contributor role, and you can ping one of the admins and ask for the role to talk to other contributors! Though you don't need to be in the [**discord**](https://discord.gg/Jf3J8cuXWg) to contribute, we do encourage you to do so.

## BNIP Pickit

Botty NIP (BNIP) is an extended version of Njaguar's Item Parser (NIP).
BNIP is compatible with NIP (with some minor exceptions as discussed below).

There is a default nip file that comes with botty called "default.nip" inside config folder, you can add your own nip files by putting them inside config/nip with a file extension of .nip. Creating your own nip file also turns off the default.nip.

We suggest you read the NIP guide if you are unfamiliar with NIP https://github.com/blizzhackers/pickits/blob/master/NipGuide.md

### New features in BNIP

Poison damage is no longer calculated, but is now read as it's raw value. Example: Adds 5-10 poison damage over 1 seconds can be picked with `[poisonmindam] == 5 && [poisonmaxdam] == 10`. "313 Poison Damage over 5 seconds" can be picked with `[poisonmindam] == 313` or `[poisonmaxdam] == 313`.

`[allres]` is a thing now. example: `[type] == amulet && [quality] == unique # [allres] == 30` will pick up Mara's

`[idname]` can now be used for unique / set items. For example, `[idname] == thestoneofjordan` will pick up SoJ. Keep in mind, however, this forces the item to be ID'd so be careful if you want to keep unid items.

## Graphic Debugger

To check if you graphic settings are good and if the bot would pick up items there is a **Graphic Debugger Mode**. Start botty and press F10 (Default key). This will open up a (mostly black) window. Start a game in D2R and go to A5. You should see some templates with blue circles detected and scores printed out to the console. To check item finding, throw some items of different types on the ground. The debug window should show the item names with black background. If you throw an item on the ground that should be picked up, it will have a red circle. The console will print out the scores for each item that would be picked up. Scores should be well above 0.9 for these items.</br>
Expand Down Expand Up @@ -70,6 +87,7 @@ order=run_pindle, run_eldritch
| 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. |
| 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). |
| 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. |
| pickit_screenshots | If `1`, the bot takes a screenshot with timestamp on every ground loot snapshot taken during pickit routine, can be useful for debugging. |
| 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 |
Expand Down Expand Up @@ -97,7 +115,6 @@ order=run_pindle, run_eldritch
| weapon_switch | Hotkey for "weapon switch" (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) |
| min_gold_to_pick | Minimum quantity of gold to pickup (also must set misc_gold=1 in pickit config) |
| stash_gold | Bool value to stash gold each time when stashing items |
| 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 |
Expand Down
Loading

0 comments on commit 930934e

Please sign in to comment.