求一个py的DXF的可用的最新自动源码

[复制链接]

微信扫一扫 分享朋友圈

MavisVonwi 发表于 2022-4-26 15:57:43 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
回复

使用道具 举报

精彩评论7

lu283718912 发表于 2022-5-3 13:20:06 | 显示全部楼层
游戏更新那么快,不得动手自己改改?
回复

使用道具 举报

928986865 发表于 2022-5-16 15:57:21 | 显示全部楼层
928986865++++QQ
回复

使用道具 举报

253303920 发表于 2022-10-15 19:33:41 | 显示全部楼层
我有易语言图色的
回复

使用道具 举报

CPC88 发表于 2023-3-29 00:16:39 | 显示全部楼层
有的  ++++++++++++++++
回复

使用道具 举报

ftxhaudi 发表于 2023-4-2 03:36:28 | 显示全部楼层
现在还有人玩这个啊
回复

使用道具 举报

hackxl 发表于 2023-5-16 15:46:51 | 显示全部楼层
貌似看到过,通过图色识别的
回复

使用道具 举报

hackxl 发表于 2023-5-16 16:00:19 | 显示全部楼层
  1. from utis import canshu as c
  2. from utis.shibie import Goods
  3. from utis2.obj_tool import KeyBord, HotKey
  4. bo = KeyBord()  # 键鼠模拟工具类
  5. no_off = HotKey()  # 热键
  6. VK_UP, VK_DOWN, VK_LEFT, VK_RIGHT = 'a_u', 'a_d', 'a_l', 'a_r'

  7. # 读取配置
  8. with open('../data/fb.shi', errors='ignore') as f:
  9.     f = safe_load(f)
  10.     names = f['names']
  11.     BUFF = f["buff"]
  12.     ski_boss = f['s_boss']
  13.     zhiye = f['zhiye']
  14.     ski1 = f['q_ski']
  15.     ski2 = f['f_x_ski']
  16.     ONE_KEY_UP = f['ONE_KEY_UP']  # 一键捡物按键
  17.     REV = f['REV']  
  18.         hit_off = f['GIT_OFF']
  19.        
  20. class Goods:
  21.         # 一个物品的信息类
  22.     def __init__(self, name, x, y, w, h,x_s):
  23.         self.name = name
  24.         self.x = x
  25.         self.y = y
  26.         self.w = w
  27.         self.h = h
  28.         self.x_s = x_s  # 相似度

  29.     def __str__(self):
  30.         return f"{self.name}xy:{self.x, self.y},wh:{self.w,self.h},s_x{self.x_s}"
  31.        
  32.     def __eq__(self, other):
  33.             # 平面坐标系中相等比较   
  34.         return self.x == other.x and self.y == other.y

  35.          
复制代码
  1. class Search:
  2.     def __init__(self):
  3.         self.DATA = None
  4.         self.start = None  # 起点
  5.                 self.t_j = c.door_func_dict[c.t_j]
  6.         self.door = c.door_func_dict[c.door]  
  7.         
  8.         @property
  9.     def end(self):
  10.         # 获得终点
  11.         for i, points in END_DICT.items():
  12.             if not points.any():
  13.                 continue
  14.             if i in (0, 1, 2):
  15.                 return self.get_near_point(points, center=True)
  16.             elif i == 3:
  17.                 # 如果是门,选择一个最佳门,并返回其位置
  18.                 door = self.door(points, self.index)
  19.                 if door is not None:
  20.                     return np.array(door)
  21.             elif i == 4:
  22.                 # 如果是怪物,选择最佳位置并返回
  23.                 if len(points) == 1:
  24.                     return self.monster_xiuzheng(points[0])
  25.                 near = self.filter_guai(points)  
  26.                 return near
  27.         return np.array([*self.t_j[self.index]])
  28.    
  29.      def __call__(self, data):
  30.        self.DATA = data
  31.        self.start = self.start_info(self.max_conf(c.zhiye))  # 1.获得起点
  32.        return self.start, self.end  # 返回起点、终点

复制代码
  1. from utis import set_canshu as c
  2. from time import sleep, time, strftime, gmtime
  3. from os import getcwd
  4. from utis.shibie import model_run, HotKey,Ski
  5. from utis.boss_ski import Boss
  6. from utis.search import Search
  7. from utis.move import Move
  8. from utis.login import DengLu, Twon

  9. # 自动刷图
  10. class Auto:

  11.     def __init__(self):
  12.         set_window() # 窗口设置
  13.         self.hot = c.hot
  14.         self.hot.start()  # 开关
  15.         self.se = Search()  # 寻找
  16.         self.boss = Boss()  # boss
  17.         self.ski = Ski() #技能
  18.         self.move = Move()  # 移动
  19.         self.map = Map() #地图
  20.         self.login = DengLu() #登录
  21.         self.town = Twon() # 城镇
  22.         self.index = None
  23.         self.DATA = {}  # 识别数据
  24.         self.img0 = None
  25.         self.model = model_run()
  26.         self.st, self.end = None, None # 起点 终点
  27.         self.t1, self.t2, self.t3 = 0, 0, 0

  28.    
  29.        def fuben_move_and_get_end(self):
  30.                 # 副本中检测
  31.         time_out = self.map(self.get_max_conf_point(), self.end)
  32.         self.min_room_result()
  33.         self.st, self.end = self.se(self.DATA, self.index)  # 获得起点终点
  34.         if self.end == c.jzb:
  35.             self.move.up_key()
  36.             self.ski.picking_up()
  37.             return
  38.         if self.update_start(time_out):  # 超时卡点操作
  39.             return
  40.         move_res = self.move(self.st, self.end, self.map.DIR[self.index].w, self.map.p_fx)  # 图内寻路处理部分
  41.         self.move_result(move_res)

  42.         # 移动结果处理
  43.     def move_result(self, result):
  44.         if not result:
  45.             return
  46.         if result == c.zb:  # 捡装备
  47.             self.ski.picking_up()
  48.         elif result in c.guai:
  49.             self.ski(self.img0, self.index)  # 释放技能
  50.        
  51.          def boss_room(self):
  52.         # 通关检测
  53.         if self.map.is_boss:  # 继续挑战:
  54.             self.move.up_key()
  55.         if not self.boss(self.img0, self.map.pl):
  56.             return

  57.         if self.boss.t_g:  # True为检测到通关:
  58.             self.boss.t_g = None
  59.             t = time() - self.t2
  60.             self.t3 += t
  61.             print(f"本次用时---{strftime('%H:%M:%S', gmtime(t))},消耗PL:{self.map.pl},"
  62.                   f"总计用时---{strftime('%H:%M:%S', gmtime(self.t3))}")

  63.         if self.boss.pl_none:  # PL值为o
  64.             if self.town.role_index:
  65.                 self.town.role_index -= 1  # 角色数量减一
  66.             self.boss.pl_none = None
  67.             print(f"当前角色总计用时---{strftime('%H:%M:%S', gmtime(self.t3))}")
  68.         return True
  69.                
  70.             def town_res(self):
  71.         # 城镇检测
  72.            pl = IMG.get_pl(self.img0)
  73.            if pl:  # 检测pl值
  74.                self.map.pl = c.pl - pl
  75.            else:
  76.                if self.town.role_index and self.town.is_select_role:
  77.                    print(f'# 当前为第{self.town.role_index}个角色,该角色没有pl值,更换其他角色')
  78.                    self.town.role_index -= 1  # 角色数量减一
  79.                    self.town.init()
  80.           self.town(self.DATA)  # 城镇模块


  81.       def __call__(self):
  82.         if not IMG.get_handel(c.play_name):
  83.             if not self.login.DXF_denglu():
  84.                 print("启动游戏失败")
  85.                 return
  86.         while True:
  87.             if not self.off_no():  # 控制开关
  88.                 continue
  89.             self.DATA, self.img0 = self.model.get_data()  # 获得识别数据

  90.             if self.hot.jietu:
  91.                 self.save_img0()  # 保存截图

  92.             if self.get_max_conf_point("min_boss") is not None:  # 1.副本中检测
  93.                 self.fuben_move_and_get_end()
  94.                 continue
  95.             if self.boss_room():  # 2.通关检测
  96.                 continue
  97.             self.town_res()  # 3.城镇检测
  98.          
  99. if __name__ == '__main__':
  100.     Auto()() #启动

  101.         
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注我们:觅风论坛与你快乐分享

官方QQ

服务客服QQ:

466-352-670

客服QQ:466352670

Email:466352670@qq.com

Powered by WWW.EYYBA.COM X3.4© 2001-2023 Inc.   版权所有   

觅风论坛  沪ICP备15020893号-1