Python program for MapleStory that help palyer find ideal combination of Nodestones.
- Uses PyAutoGUI to automatic identify Nodestone Skills.
- Formulates the combination problem as an Zero-one integer linear programming(0-1 ILP) problem.
- Uses PuLP to solve the 0-1 ILP problem.
- Uses PyQt5 to build user interface.
- Uses PyInstaller to create .exe file.
- Nodestone Skills identification is based on Template Matching,
which theoretically supports all languages (as long as all Maplestory server share same skill icon). - Batch scan all the 11 Nodestones on V-martix UI at once without any manual input.
- Intuitive and convenience UI. (See Usage)
🙌Note :
For user's convenience, a executable (AutoNodestone_PyQt_start.exe) is provided.
You can execute the program without setting-up Python envierment.
- Download and install Python3.
- Download and unzip whole AutoNodestone folder.
- Inside your AutoNodestone directory, open a command prompt and run :
pip install -r requirements.txt
Inside your AutoNodestone directory, open a command prompt and run :
python AutoNodestone_PyQt_start.py
OR
Just doble click AutoNodestone_PyQt_start.exe
And then follow the instruction below :
- Select the job of your charater.
step.red.and.yellow.mp4
- (Optional) If yod find that the skill icons doesn't match the skill icons in-game :
- Open the skill icon directory by clicking
Open directory
and delete those unneeded icons. - Generate skill icons from game by clicking
Generate skill icon
, the program will detect skill icons your screen and save to skill icon directory.
step.green.mp4
- Scan Nodestones by clicking
Scan Nodestones
button.
step.blue.mp4
- Select your required skills in
Skill selection
area, and get combination by clickingGet combination
.
step.purple.and.black.mp4
- Equip the Nodestones in the combination.
final.step.mp4
A valid combination must not violate the rules :
- Nodes with the same main skills(skill that appear on first row) can not appear more than once.
- Each required skills(selected by user) must appear at least twice.
Program will find 3 different valid combinations with minimal number of Nodes.
Because Nodes with the same main skill can be stacked and enhanced, if there are several valid combinations with same number of Nodes,
the combination with higher stack count will has higer priority.
Please refer to https://forum.gamer.com.tw/Co.php?bsn=07650&sn=6415998. (Written in Traditional Chinese)
- Source of skill icon image : NodestoneBuilder repository
- Thank my classmates in NTUST for disscusing how to formulate the problem with me.
- Thank Prof. S.-Y. Fang. I learned ILP and some useful programing skills in the EDA course.
- Thank 星星(peggy7992) gave me helpful advise, which help me come up with batch identify method.
- Thank 煎熬(dcda5460170) gave me helpful advise, which give me the idea of
Generate skill
function and UI.