функция без прерывно запускается

Валентин

Новичок
Пользователь
Ноя 13, 2020
114
1
18
При запуске кода, функция BHOP вместо того чтобы один раз запустится, запускается без прерывно. Что не так?

Код:
import os
import re
import keyboard
import pymem
from pymem import process
import time
import sys
from ui import Ui_Dialog
from offsets import *
from PySide import QtCore, QtGui
import threading
from threading import Thread

# create application

# Create form and init UI
app = QtGui.QApplication(sys.argv)
Dialog = QtGui.QDialog()
ui = Ui_Dialog()
ui.setupUi(Dialog)
Dialog.show()
# Hook Logic
def conttttt():
    _process = pymem.Pymem("csgo.exe")
    _client = pymem.process.module_from_name(_process.process_handle, "client.dll").lpBaseOfDll

def BHOP():
    ui.lineEdit.setText( "BHOP activated" )

    _process = pymem.Pymem("csgo.exe")
    _client = pymem.process.module_from_name(_process.process_handle, "client.dll").lpBaseOfDll

    while True:
        try:
            if keyboard.is_pressed("space"):
                player = _process.read_int(_client + dwLocalPlayer)
                jump = _client + dwForceJump
                player_state = _process.read_int(player + m_fFlags)

                if player_state == 257 or player_state == 263:  # 257 - player on ground, 263 - crouch
                    _process.write_int(jump, 5)
                    time.sleep(0.1)  # Чем меньше задержка - тем лучше bhop, но большая нагрузка на процессор
                    _process.write_int(jump, 4)
        except pymem.exception.MemoryReadError:
            pass
        Thread(target=BHOP).start()




ui.pushButton.clicked.connect( BHOP )

def tm():
    os.system("start \"\" https://t.me/yes")

ui.pushButton_2.clicked.connect(tm)




# Run main loop
sys.exit(app.exec_())
 

stud_55

Модератор
Команда форума
Модератор
Апр 3, 2020
1 522
672
113
У вас в коде внутри функции BHOP() запускается в отдельном потоке функция BHOP(), которая снова запускает поток с той функцией же и так далее, то есть получается рекурсивный вызов функции.
Чтобы исправить можно создать другую функцию (например start_bhop), в которой запускать поток с BHOP() и привязать ее к нажатию на кнопку:

Python:
def start_bhop():
    Thread(target=BHOP).start()
    
ui.pushButton.clicked.connect(start_bhop)
а из функции BHOP() убрать запуск потока.
 

Валентин

Новичок
Пользователь
Ноя 13, 2020
114
1
18
У вас в коде внутри функции BHOP() запускается в отдельном потоке функция BHOP(), которая снова запускает поток с той функцией же и так далее, то есть получается рекурсивный вызов функции.
Чтобы исправить можно создать другую функцию (например start_bhop), в которой запускать поток с BHOP() и привязать ее к нажатию на кнопку:

Python:
def start_bhop():
    Thread(target=BHOP).start()
   
ui.pushButton.clicked.connect(start_bhop)
а из функции BHOP() убрать запуск потока.
[/QU
У вас в коде внутри функции BHOP() запускается в отдельном потоке функция BHOP(), которая снова запускает поток с той функцией же и так далее, то есть получается рекурсивный вызов функции.
Чтобы исправить можно создать другую функцию (например start_bhop), в которой запускать поток с BHOP() и привязать ее к нажатию на кнопку:

Python:
def start_bhop():
    Thread(target=BHOP).start()
   
ui.pushButton.clicked.connect(start_bhop)
а из функции BHOP() убрать запуск потока.
Спасибо огромное, помогло)
 

Форум IT Специалистов