# HarmonyMU-script **Repository Path**: mamh-game/HarmonyMU-script ## Basic Information - **Project Name**: HarmonyMU-script - **Description**: 奇迹mu自动加点的python脚本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-01-10 - **Last Updated**: 2026-06-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: 奇迹, 加点, 奇迹mu ## README # HarmonyMU-script #### 游戏介绍 http://mux.ewnqj.com/ ![游戏介绍](./image/readme__gongjianshou.gif) #### 脚本介绍 奇迹mu三转自动加点的python脚本 #### image 目录 大师技能3转 图片截图 32x46 大小 #### python 目录 存放python代码 master_skill_build.py 是3转大师加点的通用脚本,每个角色都可以使用。 例如 07_she_shou.py 这个是存放了弓箭手的加点技能树,每个角色职业是不一样的。 当然加点方式如果不一样也是需要改这里的。 例如哪些需要加20,哪些需要加10,哪些技能不需要加 等等 都在这个独立的文件里面配置。 目前有16种职业 ``` 01_zhan_shi.py 战士 02_ge_dou.py 格斗 03_chui_zi.py 锤子 04_ci_ke.py 刺客 05_fa_mo.py 法魔 06_huan_ying.py 幻影(赤色战士) 07_she_shou.py 弓箭手 08_lian_jin.py 炼金 09_fu_wen.py 符文法师 10_sheng_dao.py 圣导 11_huang_mei.py 皇妹 12_zhao_huan.py 召唤 13_mu_shi.py 牧师 14_fa_shi.py 法师 15_qiang_shou.py 枪手 16_wu_shi.py 巫师 ``` #### test 目录 单元测试代码 #### 如何执行 1. 代码仓库克隆到D盘下面的一个路径 ``` git clone https://gitee.com/mamh-game/HarmonyMU-script.git -b master HarmonyMU-script ``` 不会使用git 可以直接下载压缩包zip文件 ``` https://gitee.com/mamh-game/HarmonyMU-MiniConda/repository/archive/master.zip ``` 2. python工具克隆到D盘下面,必须是D盘 ``` git clone https://gitee.com/mamh-game/HarmonyMU-script.git D:\miniconda3 ``` 不会使用git 可以直接下载压缩包zip文件 ``` https://gitee.com/mamh-game/HarmonyMU-script/repository/archive/master.zip ``` 3. 打开游戏打开A面板的大师加点 游戏窗口放到左侧,命令行放到右侧。 特别注意:确定那个按钮不要被鼠标遮挡了。也就是确定按钮下面不用有需要加点的技能。 ![项目截图](./image/readme__other2.png) ![项目截图](./image/readme1.png) 4. 然后执行如下命令 ``` D:\miniconda3\envs\anjian\python.exe D:/HarmonyMU-script/python/master_skill_build.py 请输入需要加点的职业编号: # 到这里去选择职业 01_zhan_shi 02_ge_dou 03_chui_zi 04_ci_ke 05_fa_mo 06_huan_ying 07_she_shou 08_lian_jin 09_fu_wen 10_sheng_dao 11_huang_mei 12_zhao_huan 13_mu_shi 14_fa_shi 15_qiang_shou 16_wu_shi 请输入需要加点的职业编号:09 # 到这里去选择职业 将会给此职业 09_fu_wen 自动加点,执行过程想退出 把鼠标 快速移动 到 屏幕左上角!!! 下面就会自动给这个职业加点了。 。。。。省略执行过程。。。。 。。。。省略执行过程。。。。 。。。。省略执行过程。。。。 。。。。省略执行过程。。。。 ``` ``` 例如我代码下载到 D:\anjian 路径下面的 然后cmd命令行打开,进入到 D:\anjian\python 后 这样执行 D:\miniconda3\envs\anjian\python.exe master_skill_build.py ``` 5. 切换其他角色职业加点 ``` 修改脚本这里 把 gong_jian.SKILL_TREE 改成 gedou.SKILL_TREE self.__click_each_point(gong_jian.SKILL_TREE) # 开始遍历技能树数组,循环加点了 import gedou # 当然开头那个import需要加上 self.__click_each_point(gedou.SKILL_TREE) # 开始遍历技能树数组,循环加点了 ``` #### 脚本原理 1.首先是定位到技能的第一个行的3个技能位置的坐标。 ![项目截图](./image/master_level3_skill_1.bmp) ![项目截图](./image/master_level3_skill_2.bmp) ![项目截图](./image/master_level3_skill_3.bmp) 脚本里面是使用了 ```pyautogui.locateCenterOnScreen()``` 方法去搜的,如果搜到的不准确可以改脚本把那里写死, 在``` __init_start_point ```方法里面: ``` self.point_L.append((skill_1_x, skill_1_y)) self.point_L.append((skill_2_x, skill_2_y)) self.point_L.append((skill_3_x, skill_3_y)) ``` 2. 确定上下左右技能图片的偏移距离,脚本里面是调用 ``` __init_offset ```自动计算出来的,如果计算的不准确可以写死。 如果偏移量不准确可以修改 ```__init__``` 方法里面的,然后去掉了 ``` __init_offset ``` 方法的调用。 ``` def __init__(self): # 如果偏移量不准确可以修改 ```__init__``` 方法里面的可以写死 self.offset_x = 88 # 水平偏移单位距离 self.offset_y = 80 # 垂直偏移单位距离 def Execute(self): # 然后去掉了 ``` __init_offset ``` 方法的调用 self.__init_offset() #计算各个技能格子上下左右的偏移距离的 ``` 3. 需要加点技能坐标都是配置在 ```SKILL_TREE``` 中,这是一个二维列表,第一维度是按照3个技能树划分的。 第二维度的列表其中每个元素是3项的一个元组。 # 第1个表示上下偏移的单位长度,上下一般都会是正数,正数表示向下偏移 # 第2个表示左右偏移的单位长度,负数表示向左,正数表示向右 # 第3个表示这个技能需要的加点个数,如果是None表示不需要加点 以第一个技能树举例: ``` (0, 0, 20), # 例如这个表示 第一个技能树下的,第0行,第0列的那个技能 (3, -1, 10), # 例如这个表示 第一个技能树下的,第3行,第1列的那个技能,(所以这里是 负一 是从右往左数的 ) 序号是从 0 开始的。0表示第一行,1表示第二行技能了,列也是一样的。只有第一个技能树是从右往左数的。后面2个技能树都是从左往右。 ``` 再举个例子,弓箭手中:如果想把其中一个技能改成另外一个技能的 ![项目截图](./image/readme__how_to_change_skill_to_other1.png) ``` 找到第二个技能树,然后是第8行的2组。 (8, 0, 10), (8, 1, 10), 改为 (8, 1, 10), (8, 3, 10), # 注意这里交换了一下位置。 ``` #### 使用说明 1. 不同的分辨率可能需要调整一下 self.offset_x = 88 和 self.offset_y = 80 的值。 2. 我本地电脑的屏幕分辨率: 2240x1400。游戏的分辨率是1280x960的,目前测试了几个比较大分辨率窗口模式的基本上都没问题,坐标定位比较准确。 3. 调整加点详细修改 SKILL_TREE 这个表格。 测试过的分辨率: - 游戏分辨率:1152 x 864 #### 报错说明 1. 如果报下面错误可以适当调整 confidence 的值。 ``` File "D:\miniconda3\envs\anjian\Lib\site-packages\pyscreeze\__init__.py", line 257, in _locateAll_opencv raise ImageNotFoundException('Could not locate the image (highest confidence = %.3f)' % result.max()) pyscreeze.ImageNotFoundException: Could not locate the image (highest confidence = 0.614) ``` 2. 如果报下面这个错误,说明是图片没找到,要么是遮挡了。如果没遮挡,调整了 confidence 还不行,那可以手动写死那几个坐标位置。 ``` File "D:\miniconda3\envs\anjian\Lib\site-packages\pyautogui\__init__.py", line 174, in wrapper raise ImageNotFoundException # Raise PyAutoGUI's ImageNotFoundException. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pyautogui.ImageNotFoundException ```