Esempio n. 1
0
def main():
    InitLog()

    gli = (31, 21, 37, 37)
    glp = (31 + 37 // 2, 21 + 37 // 2)

    print("固定左侧 x: %d y: %d w: %d h: %d 中心点: (%d, %d)" %
          (gli[0], gli[1], gli[2], gli[3], glp[0], glp[1]))

    imgfile = WindowCaptureToFile("TWINCONTROL", "WeGame", GetvercodeDir(),
                                  284, 171, 280, 161)

    if imgfile == "":
        logger.warning("截取验证拖动图片失败")
        return

    img = cv2.imread(imgfile, cv2.IMREAD_GRAYSCALE)

    x, y, w, h = GetRightPos(img)
    grp = (x + w // 2, y + h // 2)
    print("x: %d y: %d w: %d h: %d 中心点: (%d, %d)" %
          (x, y, w, h, grp[0], grp[1]))

    dis = grp[0] - glp[0]
    print("横轴距离: %d" % (dis))

    beginx, beginy = 333, 354
    aj().MouseMoveToTgp(333, 354), KongjianSleep()
    aj().MouseLeftDown(), KongjianSleep()
    aj().MouseMoveR(10, 0), KongjianSleep()

    movetox, movetoy = beginx + dis, beginy
    print("移动到 %d %d" % (movetox, movetoy))
    aj().MouseMoveToTgp(movetox, movetoy)
    aj().MouseLeftUp(), KongjianSleep()
Esempio n. 2
0
def main():
    InitLog()
    if not GameApiInit():
        sys.exit()
    FlushPid()

    meninfo = GetMenInfo()

    value = DescryptF(meninfo.object + 0x1728)  # 倍功
    print(value)
    value = DescryptF(meninfo.object + 0x1578)  # 移动速度
    print(value)
    value = DescryptF(meninfo.object + 0x15a8)  # 攻击速度
    print(value)

    EncryptF(meninfo.object + 0x1728, 1.0)
    # EncryptF(meninfo.object + 0x1578, 2.0)
    # EncryptF(meninfo.object + 0x15a8, 0.0)

    value = DescryptF(meninfo.object + 0x1728)  # 倍功
    print(value)
    value = DescryptF(meninfo.object + 0x1578)  # 移动速度
    print(value)
    value = DescryptF(meninfo.object + 0x15a8)  # 攻击速度
    print(value)
Esempio n. 3
0
def main():
    InitLog()
    if not GameApiInit():
        sys.exit()
    FlushPid()

    # DrawNextDoorPath()
    DrawAnyPath(257, 149, 789, 297)
Esempio n. 4
0
def main():
    InitLog()
    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    server = pywsgi.WSGIServer(('0.0.0.0', 22222),
                               app,
                               handler_class=WebSocketHandler)
    server.serve_forever()
Esempio n. 5
0
def main():
    InitLog()
    if not GameApiInit():
        sys.exit()
    FlushPid()
    if not aj().Init():
        sys.exit()
    GameWindowToTop()

    print(skillstore.Match())
Esempio n. 6
0
def main():
    InitLog()

    from gevent import pywsgi
    from geventwebsocket.handler import WebSocketHandler
    server = pywsgi.WSGIServer(('0.0.0.0', 33333),
                               app,
                               handler_class=WebSocketHandler)
    socketio.start_background_task(target=background_thread)
    server.serve_forever()
Esempio n. 7
0
def main():
    InitLog()
    if not GameApiInit():
        sys.exit()
    FlushPid()
    if not aj().Init():
        sys.exit()
    GameWindowToTop()

    eq = Equips()
    # eq.ZupinWuqi()
    eq.ChangeEquip()
Esempio n. 8
0
def main():
    InitLog()
    InitDb()

    # DbEventAppend("13023252617", "上海一区", "小春春", "登陆上线")
    # DbEventAppend("13023252617", "上海一区", "小春春", "下线")
    # DbStateUpdate("13023252617", "上海一区", "小春春", curlevel=10, )
    # DbItemAppend("13023252617", "上海一区", "小春春", moneyadd=100, wuseadd=10, timeadd=100)

    # rows = DbStateSelect()
    # jsonstr = json.dumps(rows, ensure_ascii=False)
    # print(jsonstr)

    # print(IsTodayHavePilao(account='3115907573', region='北京3区'))

    print(TodaySixTimestamp())
Esempio n. 9
0
def main():
    InitLog()

    # 0,1,2,3,4 ... 一共12个顶点. width=6,height=4
    graph = Graph(24, 6)

    graph.AddEdge(hwToidx(2, 0, 6), hwToidx(2, 1, 6))

    graph.AddEdge(hwToidx(1, 1, 6), hwToidx(1, 2, 6))

    graph.AddEdge(hwToidx(2, 1, 6), hwToidx(2, 0, 6))
    graph.AddEdge(hwToidx(2, 1, 6), hwToidx(3, 1, 6))

    graph.AddEdge(hwToidx(3, 1, 6), hwToidx(2, 1, 6))
    graph.AddEdge(hwToidx(3, 1, 6), hwToidx(4, 1, 6))

    graph.AddEdge(hwToidx(4, 1, 6), hwToidx(4, 2, 6))
    graph.AddEdge(hwToidx(4, 1, 6), hwToidx(3, 1, 6))

    graph.AddEdge(hwToidx(0, 2, 6), hwToidx(1, 2, 6))

    graph.AddEdge(hwToidx(1, 2, 6), hwToidx(1, 3, 6))
    graph.AddEdge(hwToidx(1, 2, 6), hwToidx(0, 2, 6))
    graph.AddEdge(hwToidx(1, 2, 6), hwToidx(1, 1, 6))
    graph.AddEdge(hwToidx(1, 2, 6), hwToidx(2, 2, 6))

    graph.AddEdge(hwToidx(2, 2, 6), hwToidx(2, 3, 6))
    graph.AddEdge(hwToidx(2, 2, 6), hwToidx(1, 2, 6))
    graph.AddEdge(hwToidx(2, 2, 6), hwToidx(3, 2, 6))
    graph.AddEdge(hwToidx(3, 2, 6), hwToidx(3, 3, 6))
    graph.AddEdge(hwToidx(3, 2, 6), hwToidx(2, 2, 6))
    graph.AddEdge(hwToidx(3, 2, 6), hwToidx(4, 2, 6))
    graph.AddEdge(hwToidx(4, 2, 6), hwToidx(4, 3, 6))
    graph.AddEdge(hwToidx(4, 2, 6), hwToidx(3, 2, 6))
    graph.AddEdge(hwToidx(4, 2, 6), hwToidx(4, 1, 6))
    graph.AddEdge(hwToidx(4, 2, 6), hwToidx(5, 2, 6))
    graph.AddEdge(hwToidx(5, 2, 6), hwToidx(5, 3, 6))
    graph.AddEdge(hwToidx(5, 2, 6), hwToidx(4, 2, 6))
    graph.AddEdge(hwToidx(1, 3, 6), hwToidx(1, 2, 6))
    graph.AddEdge(hwToidx(2, 3, 6), hwToidx(2, 2, 6))
    graph.AddEdge(hwToidx(2, 3, 6), hwToidx(3, 3, 6))
    graph.AddEdge(hwToidx(3, 3, 6), hwToidx(2, 3, 6))
    graph.AddEdge(hwToidx(3, 3, 6), hwToidx(3, 2, 6))
    graph.AddEdge(hwToidx(4, 3, 6), hwToidx(5, 3, 6))
    graph.AddEdge(hwToidx(4, 3, 6), hwToidx(4, 2, 6))
    graph.AddEdge(hwToidx(5, 3, 6), hwToidx(4, 3, 6))
    graph.AddEdge(hwToidx(5, 3, 6), hwToidx(5, 2, 6))

    print("图:")
    print(graph)

    print("广度优先:")
    bfs = BreadthFirstPaths(graph, 2)
    paths = bfs.PathTo(hwToidx(1, 1, 6))
    for v in reversed(paths):
        print(v, idxTohw(v, 6))

    # print(manhattanDistance([0, 2], [1, 2]))

    print("\na*寻径")
    astar = AStarPaths(graph, 2, 7)
    paths = astar.PathTo(hwToidx(1, 1, 6))
    for v in reversed(paths):
        print(v, idxTohw(v, 6))
Esempio n. 10
0
def main():
    InitDb()
    InitLog()
    InitSetting()

    app = QApplication(sys.argv)
    w = QWidget()

    w.resize(1200, 300)
    w.setWindowTitle(" ")

    # 列表
    table = QTableWidget()
    columns = ["账号", "大区", "角色", "等级", "职业", "当前疲劳", "金币", "制裁时间点", "更新时间点"]
    table.setColumnCount(len(columns))
    table.setHorizontalHeaderLabels(columns)

    header = table.horizontalHeader()
    header.setSectionResizeMode(8, QtWidgets.QHeaderView.ResizeToContents)

    def tick():
        states = DbStateSelect()

        if len(states) > 0 and (len(states) != table.rowCount()):
            table.clearContents()
            table.setRowCount(len(states))
        elif len(states) == 0:
            table.clearContents()
            table.setRowCount(len(states))

        state: object
        for idx, state in enumerate(states):
            if table.itemAt(idx, 8) != str(
                    time.strftime('%Y-%m-%d %H:%M:%S',
                                  time.localtime(state["timepoint"]))):
                table.setItem(idx, 0, QTableWidgetItem(str(state["account"])))
                table.setItem(idx, 1, QTableWidgetItem(str(state["region"])))
                table.setItem(idx, 2, QTableWidgetItem(str(state["role"])))
                table.setItem(idx, 3, QTableWidgetItem(str(state["curlevel"])))
                table.setItem(idx, 4, QTableWidgetItem(str(state["zhiye"])))
                table.setItem(idx, 5, QTableWidgetItem(str(state["curpilao"])))
                table.setItem(idx, 6, QTableWidgetItem(str(state["money"])))
                # table.setItem(idx, 7, QTableWidgetItem(str(state["wuse"])))
                table.setItem(idx, 7, QTableWidgetItem(str(state["kicktime"])))
                table.setItem(
                    idx, 8,
                    QTableWidgetItem(
                        str(
                            time.strftime('%Y-%m-%d %H:%M:%S',
                                          time.localtime(
                                              state["timepoint"])))))

    timer = QTimer()
    timer.timeout.connect(tick)
    timer.start(1000)
    tick()

    # 设置账号按钮
    settingAccountbtn = QPushButton("设置账号")
    settingAccountDefaultbtn = QPushButton("参考账号配置")

    def settingaccont():
        os.system("start notepad %s" %
                  (os.path.join(GetCfgPath(), "accounts")))

    def settingaccountdefault():
        os.system("start notepad %s" %
                  (os.path.join(GetCfgPath(), "accounts.template")))

    settingAccountbtn.clicked.connect(settingaccont)
    settingAccountDefaultbtn.clicked.connect(settingaccountdefault)

    settingAccountLayout = QHBoxLayout()
    settingAccountLayout.addWidget(settingAccountbtn)
    settingAccountLayout.addWidget(settingAccountDefaultbtn)

    # 设置配置
    settingLayout = QHBoxLayout()

    settingCfgbtn = QPushButton("设置配置")
    settingCfgDefaultbtn = QPushButton("参考默认配置")

    def settingcfg():
        os.system("start notepad %s" %
                  (os.path.join(GetCfgPath(), "superai.cfg")))

    def settingCfgDefault():
        os.system("start notepad %s" %
                  (os.path.join(GetCfgPath(), "superai.cfg.template")))

    settingCfgbtn.clicked.connect(settingcfg)
    settingCfgDefaultbtn.clicked.connect(settingCfgDefault)

    settingLayout.addWidget(settingCfgbtn)
    settingLayout.addWidget(settingCfgDefaultbtn)

    # 启动按钮
    buttonlayout = QHBoxLayout()

    startbtn = QLabel("开启(HOME)")

    t = SuperAiThread(stophotkey=True)

    def start():
        nonlocal t
        if startbtn.text() == "开启(HOME)":
            t.start()
            startbtn.setText("关闭(END)")
        else:
            logger.warning("已经开启了")

    def stop():
        nonlocal t
        if startbtn.text() == "关闭(END)":
            t.stop()
            t = SuperAiThread(stophotkey=True)
            startbtn.setText("开启(HOME)")
        else:
            logger.warning("已经关闭了")

    class Hotkey(QThread):
        startsign = pyqtSignal()
        stopsign = pyqtSignal()

        def run(self) -> None:
            while True:
                home = win32api.GetAsyncKeyState(VK_CODE['home'])
                if home != 0:
                    self.startsign.emit()
                    time.sleep(1)
                end = win32api.GetAsyncKeyState(VK_CODE['end'])
                if end != 0:
                    self.stopsign.emit()
                    time.sleep(1)
                time.sleep(0.005)

    # 快捷键
    hotkey = Hotkey()
    hotkey.startsign.connect(start)
    hotkey.stopsign.connect(stop)
    hotkey.start()

    buttonlayout.setAlignment(QtCore.Qt.AlignCenter)
    buttonlayout.addWidget(startbtn)

    listlayout = QVBoxLayout()
    listlayout.addWidget(table)

    def reset():
        DbStateDel()

        msgBox = QMessageBox()
        msgBox.setText("成功重置数据库")
        msgBox.setWindowTitle("superai")
        msgBox.exec_()

    # 清除制裁状态按钮
    resetbtn = QPushButton("重置数据库")

    resetbtn.clicked.connect(reset)

    settinglayout = QVBoxLayout()
    # settinglayout.addWidget(settingAccountbtn)
    settinglayout.addLayout(settingAccountLayout)
    settinglayout.addLayout(settingLayout)
    settinglayout.addWidget(resetbtn)
    settinglayout.addSpacing(195)
    settinglayout.addLayout(buttonlayout)
    settinglayout.setAlignment(QtCore.Qt.AlignTop)

    widgetlayout = QHBoxLayout()
    widgetlayout.addLayout(listlayout)
    widgetlayout.addLayout(settinglayout)

    widgetlayout.setStretch(0, 10)
    widgetlayout.setStretch(1, 1)

    w.setLayout(widgetlayout)
    w.show()

    app.exec_()
Esempio n. 11
0
def main():
    InitLog()

    subnodeapi()
Esempio n. 12
0
def main():
    InitLog()

    from superai.superai import xinfeng2

    print(xinfeng2.Match())