• На форуме разыгрывается более 300 ключей на приватные читы! Для этого нужно всего-лишь нажать соответствующую кнопку в теме!

    Подробности по ссылке:
    https://t.me/yougame_official/66

👉👈
Участник
Статус
Онлайн
Регистрация
16 Янв 2017
Сообщения
575
Реакции[?]
158
Поинты[?]
91K
Всем привет! Сегодня я нашел для вас исходник полезной программы для автоматического и быстрого выбора перса, за которого вы будете играть в катке. Эта прога распространена в Лиге Легенд, но и добралась до Валоранта. Её название Instant Lock. Автор: DavidUmm


Что это за программа?

Instalock позволяет предварительно задать агента, за которого вы хотите играть и когда матч найдётся, прога автоматически его пикнет, никто другой не сможет его взять раньше вас. Всё делается через API Валика, поэтому за бан можно даже не думать. Тот же самый АПИ используют Valorant Tracker, чтобы чекать статистику. У проги достаточно приятная менюшка, удобная и понятная, поэтому надеюсь проблем с настройкой не возникнет.

Что нужно чтоб запустить?
  • Питон версии 3.10.0;
  • PyQt6 (для менюшки);
  • Valclient библиотеки.
Инструкция по установке:
  • pip install PyQt6
  • pip install valclient
  • pip install requests
  • Далее перейдите в папку с сурсом: cd <your files path>
  • Теперь запустите программу: py <your files name>.py

Сам исходник этого инсталокера:

Python:
import sys
import time
from PyQt6.QtWidgets import (QApplication, QMainWindow, QWidget, QVBoxLayout,
                            QComboBox, QPushButton, QLabel)
from PyQt6.QtCore import Qt, QThread, pyqtSignal
from PyQt6.QtGui import QColor, QPalette
from valclient.client import Client

class ValorantAgentInstalocker:
    def __init__(self):
        self.running = True
        self.agents = {
            "jett": "add6443a-41bd-e414-f6ad-e58d267f4e95",
            "reyna": "a3bfb853-43b2-7238-a4f1-ad90e9e46bcc",
            "raze": "f94c3b30-42be-e959-889c-5aa313dba261",
            "yoru": "7f94d92c-4234-0a36-9646-3a87eb8b5c89",
            "phoenix": "eb93336a-449b-9c1b-0a54-a891f7921d69",
            "neon": "bb2a4828-46eb-8cd1-e765-15848195d751",
            "breach": "5f8d3a7f-467b-97f3-062c-13acf203c006",
            "skye": "6f2a04ca-43e0-be17-7f36-b3908627744d",
            "sova": "320b2a48-4d9b-a075-30f1-1f93a9b638fa",
            "kayo": "601dbbe7-43ce-be57-2a40-4abd24953621",
            "killjoy": "1e58de9c-4950-5125-93e9-a0aee9f98746",
            "cypher": "117ed9e3-49f3-6512-3ccf-0cada7e3823b",
            "sage": "569fdd95-4d10-43ab-ca70-79becc718b46",
            "chamber": "22697a3d-45bf-8dd7-4fec-84a9e28c69d7",
            "omen": "8e253930-4c05-31dd-1b6c-968525494517",
            "brimstone": "9f0d8ba9-4140-b941-57d3-a7ad57c6b417",
            "astra": "41fb69c1-4189-7b37-f117-bcaf1e96f1bf",
            "viper": "707eab51-4836-f488-046a-cda6bf494859",
            "fade": "dade69b4-4f5a-8528-247b-219e5a1facd6",
            "gekko": "e370fa57-4757-3604-3648-499e1f642d3f",
            "harbor": "95b78ed7-4637-86d9-7e41-71ba8c293152",
            "deadlock": "cc8b64c8-4b25-4ff9-6e7f-37b4da43d235",
            "iso": "0e38b510-41a8-5780-5e8f-568b2a4f2d6c",
            "clove": "1dbf2edd-4729-0984-3115-daa5eed44993",
            "vyze": "eb85b0c8-4258-e95e-f433-0db2e21f857"
        }
        self.seenMatches = []
        self.region = "na"
        self.preferred_agent = "jett"
        self.status_callback = None

    def stop(self):
        self.running = False

    def set_status_callback(self, callback):
        self.status_callback = callback

    def update_status(self, message):
        if self.status_callback:
            self.status_callback(message)

    def initialize_client(self):
        while self.running:
            try:
                self.client = Client(region=self.region)
                self.client.activate()
                self.update_status("Client initialized successfully")
                self.run_instalocker()
            except Exception as e:
                self.update_status(f"Error initializing client: {e}")
            time.sleep(2)

    def run_instalocker(self):
        while self.running:
            time.sleep(1)
            try:
                session_state = self.client.fetch_presence(self.client.puuid)['sessionLoopState']
                match_id = self.client.pregame_fetch_match()['ID']

                if session_state == "PREGAME" and match_id not in self.seenMatches:
                    agent_id = self.agents[self.preferred_agent]
                    self.client.pregame_select_character(agent_id)
                    self.client.pregame_lock_character(agent_id)
                    self.seenMatches.append(match_id)
                    self.update_status(f'Successfully Locked {self.preferred_agent.capitalize()}')
            except Exception as e:
                if not self.running:
                    break
                if "pregame" not in str(e).lower():
                    self.update_status(f"Waiting for agent select...")

class InstalockThread(QThread):
    status_signal = pyqtSignal(str)

    def __init__(self, instalocker):
        super().__init__()
        self.instalocker = instalocker
        self.instalocker.set_status_callback(self.emit_status)
    
    def emit_status(self, message):
        self.status_signal.emit(message)
    
    def run(self):
        self.instalocker.initialize_client()

class ModernWindow(QMainWindow):
    def __init__(self):
        super().__init__()
        self.setWindowFlags(Qt.WindowType.FramelessWindowHint)
        self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
    
        # Variables for window dragging
        self.dragging = False
        self.offset = None
    
        self.instalocker = ValorantAgentInstalocker()
        self.init_ui()
    
    def init_ui(self):
        # Create main widget and layout
        main_widget = QWidget()
        self.setCentralWidget(main_widget)
        layout = QVBoxLayout()
        main_widget.setLayout(layout)
    
        # Style the main widget
        main_widget.setStyleSheet("""
            QWidget {
                background-color: #1a1a1a;
                border-radius: 10px;
                color: white;
            }
            QComboBox {
                background-color: #2d2d2d;
                border: none;
                border-radius: 5px;
                padding: 8px;
                color: white;
                min-width: 200px;
                margin: 5px;
            }
            QComboBox::drop-down {
                border: none;
            }
            QComboBox::down-arrow {
                image: none;
                border: none;
            }
            QPushButton {
                background-color: #5865F2;
                border: none;
                border-radius: 5px;
                padding: 10px;
                color: white;
                font-weight: bold;
                margin: 5px;
            }
            QPushButton:hover {
                background-color: #4752C4;
            }
            QLabel {
                color: white;
                font-size: 14px;
                padding: 5px;
            }
        """)
    
        # Title
        title = QLabel("Valorant Instalocker")
        title.setAlignment(Qt.AlignmentFlag.AlignCenter)
        title.setStyleSheet("font-size: 18px; font-weight: bold; padding: 10px;")
        layout.addWidget(title)
    
        # Agent Label
        agent_label = QLabel("Select Agent:")
        agent_label.setAlignment(Qt.AlignmentFlag.AlignLeft)
        layout.addWidget(agent_label)
    
        # Agent selection
        self.agent_combo = QComboBox()
        self.agent_combo.addItems(sorted(self.instalocker.agents.keys()))
        self.agent_combo.setCurrentText(self.instalocker.preferred_agent)
        layout.addWidget(self.agent_combo)
    
        # Region Label
        region_label = QLabel("Select Region:")
        region_label.setAlignment(Qt.AlignmentFlag.AlignLeft)
        layout.addWidget(region_label)
    
        # Region selection
        self.region_combo = QComboBox()
        self.region_combo.addItems(["na", "eu", "ap", "kr", "latam", "br"])
        self.region_combo.setCurrentText(self.instalocker.region)
        layout.addWidget(self.region_combo)
    
        # Status label
        self.status_label = QLabel("Ready to start")
        self.status_label.setAlignment(Qt.AlignmentFlag.AlignCenter)
        self.status_label.setWordWrap(True)
        layout.addWidget(self.status_label)
    
        # Start/Stop button
        self.toggle_button = QPushButton("Start Instalocking")
        self.toggle_button.clicked.connect(self.toggle_instalock)
        layout.addWidget(self.toggle_button)
    
        # Close button
        close_button = QPushButton("Close")
        close_button.clicked.connect(self.close)
        close_button.setStyleSheet("""
            QPushButton {
                background-color: #dc3545;
            }
            QPushButton:hover {
                background-color: #bb2d3b;
            }
        """)
        layout.addWidget(close_button)
    
        # Set fixed size and position
        self.setFixedSize(300, 400)
        self.center()
    
    def center(self):
        screen = QApplication.primaryScreen().geometry()
        size = self.geometry()
        self.move(
            (screen.width() - size.width()) // 2,
            (screen.height() - size.height()) // 2
        )
    
    def mousePressEvent(self, event):
        if event.button() == Qt.MouseButton.LeftButton:
            self.dragging = True
            self.offset = event.pos()

    def mouseMoveEvent(self, event):
        if self.dragging and self.offset:
            self.move(self.pos() + event.pos() - self.offset)

    def mouseReleaseEvent(self, event):
        if event.button() == Qt.MouseButton.LeftButton:
            self.dragging = False
        
    def toggle_instalock(self):
        if self.toggle_button.text() == "Start Instalocking":
            self.instalocker.preferred_agent = self.agent_combo.currentText()
            self.instalocker.region = self.region_combo.currentText()
            self.instalocker.running = True
        
            self.instalock_thread = InstalockThread(self.instalocker)
            self.instalock_thread.status_signal.connect(self.update_status)
            self.instalock_thread.start()
        
            self.toggle_button.setText("Stop Instalocking")
            self.status_label.setText("Initializing...")
        
            # Disable controls while running
            self.agent_combo.setEnabled(False)
            self.region_combo.setEnabled(False)
        else:
            self.instalocker.stop()
            self.toggle_button.setText("Start Instalocking")
            self.status_label.setText("Stopped")
        
            # Re-enable controls
            self.agent_combo.setEnabled(True)
            self.region_combo.setEnabled(True)
        
    def update_status(self, message):
        self.status_label.setText(message)
    
    def closeEvent(self, event):
        self.instalocker.stop()
        event.accept()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = ModernWindow()
    window.show()
    sys.exit(app.exec())
 
Последнее редактирование:
Сверху Снизу