- Install miniconda (https://docs.conda.io/en/latest/miniconda.html). Note: You will have to check "Add conda to my PATH environment variable" in order to access the conda command in the cmd.
- Install git (https://gitforwindows.org/)
git clone https://github.com/aeon0/botty.git
cd botty
conda env create environment.yml
conda activate botty
python src/run.py
If you want to build a .exe from source you will have to first add the cv2 path to your PYTHONPATH in System variables or User variables for current user:
Edit the system environment variables -> Environment Variables... -> New...
Variable name: PYTHONPATH
Variable value: %USERPROFILE%\miniconda3\envs\botty\Lib\site-packages\cv2
If you installed your miniconda in another location you will of course have ot change it for that one.
# building .exe and bundeling all needed resource into one folder
python release.py
For changelog run: git log <PREVIOUS_TAG>..HEAD --oneline --decorate
/
In the root is docu, param files and development specific stuff such as .gitignore
assets
Contains all data for the project that is not source code
assets/docs
Images you can see in the .md files and logos
assets/items
Screenshot of item names that should be picked up. The filename must then be added to the param.ini
assets/npc
Templates of npcs in different poses
assets/templates
Templates for different UIs and key points. Also contains folders of "pathes" that were generated with the utils/node_creator.py
src
All python source files go here
src/char
Want to implement a new char or build. Check this folder out. You will have to inherit from IChar and go from there
src/char
Utilities functions and scripts e.g. for easily creating templates to traverse nodes and automatically generate code for it
The core logic of the bot is determined by a state machine with these states and transations. The bot.py which contains all of the transitions should have little implementation code which should be hidden as much as possible in the "manager" classes.
There are different coordinate systems used and I tried my best to add these to the variable names.
Monitor: It will have the origin at the top left of the first monitor
Screen: Same as monitor for single monitor setups, otherwise origin at top left of the screen
Absolute: Has its origin at the center of the screen, thus at the footpoint of your char
Relative: Relative coordinates as the name suggest are relative to something. It is mostly used to express relative coordinates in relation to a tempalte that is found