Начинающий
- Статус
- Оффлайн
- Регистрация
- 15 Окт 2023
- Сообщения
- 49
- Реакции
- 5
Название смешное, другое не придумал.
Многие знают про отключение/включение интернета, в момент отключение есть возможность сделать суету.
Конкретно в этом случае, PUBG, есть примерно 2сек.
Работает так, сервер запоминает действие игроков, продолжает их производить у вас даже, если на стороне игрока он прекратил действие.
Например. Игрок пикает через стену, ловишь его на пике прогой, у игрока он за стеной, у вас он пикает. Даёте ему голову и дальше молитесь. Про регистрацию пуль сказать не могу, иногда регает через стенку, а бывает и так, что нихера не регает.
Очень важный аспект, твои действие до нажатия бинда, сервер тоже запоминает. Если ты бежишь прямо, включил софт, на сервере ты будешь бежать прямо.
Совет, сначала используйте бинд, далее движение. И да, эти две секунды вы беспомощны Можно включить бинд, выйти из-за стенки, нанести урон. По окончанию вас сервер оттепает на место где вы включили софт, при этом урон может пройти
Важно! Запускайте от имени админа через cmd.
Открываете cmd от админа
Пишите cd (путь до папки с файлом)
Название файла
Библиотеки (вписывать в cmd от имени админа)
Многие знают про отключение/включение интернета, в момент отключение есть возможность сделать суету.
Конкретно в этом случае, PUBG, есть примерно 2сек.
Работает так, сервер запоминает действие игроков, продолжает их производить у вас даже, если на стороне игрока он прекратил действие.
Например. Игрок пикает через стену, ловишь его на пике прогой, у игрока он за стеной, у вас он пикает. Даёте ему голову и дальше молитесь. Про регистрацию пуль сказать не могу, иногда регает через стенку, а бывает и так, что нихера не регает.
Очень важный аспект, твои действие до нажатия бинда, сервер тоже запоминает. Если ты бежишь прямо, включил софт, на сервере ты будешь бежать прямо.
Совет, сначала используйте бинд, далее движение. И да, эти две секунды вы беспомощны Можно включить бинд, выйти из-за стенки, нанести урон. По окончанию вас сервер оттепает на место где вы включили софт, при этом урон может пройти
Важно! Запускайте от имени админа через cmd.
Открываете cmd от админа
Пишите cd (путь до папки с файлом)
Название файла
Библиотеки (вписывать в cmd от имени админа)
pip install ttkbootstrap
pip install pynput
Python:
import tkinter as tk
from tkinter import ttk, colorchooser
import ttkbootstrap as ttkb
from ttkbootstrap.constants import *
import subprocess
import time
from pynput import mouse
import threading
import json
import os
class App:
def __init__(self, root):
self.root = root
self.root.title("Gotions")
self.root.geometry("430x630")
self.root.resizable(False, False)
self.style = ttkb.Style(theme="darkly")
self.root.configure(bg=self.style.colors.bg)
self.main_frame = ttk.Frame(root, padding=10, style="primary.TFrame")
self.main_frame.pack(fill="both", expand=True, padx=10, pady=10)
self.style.configure("primary.TFrame", borderwidth=2, relief="flat", bordercolor=self.style.colors.secondary, background=self.style.colors.secondary)
self.style.configure("TButton", font=("Helvetica", 12), padding=10)
self.style.configure("TLabel", font=("Helvetica", 12), background=self.style.colors.secondary, foreground=self.style.colors.light)
self.style.configure("TScale", background=self.style.colors.secondary)
self.bind_var = tk.StringVar(value="ЛКМ")
self.timer_duration = tk.DoubleVar(value=5.0)
self.timer_delay = tk.DoubleVar(value=1.0)
self.timer_color = tk.StringVar(value="#FFFFFF")
self.is_freeze_running = False
self.is_timer_visible = tk.BooleanVar(value=True)
self.timer_thread = None
self.mouse_listener = None
self.last_click_time = 0
self.timer_window = None
self.timer_display_label = None
self.load_settings()
self.create_widgets()
self.create_timer_window()
self.update_timer_display()
def create_widgets(self):
title_label = ttk.Label(self.main_frame, text="Меню управления", style="TLabel")
title_label.pack(pady=10)
freeze_frame = ttk.LabelFrame(self.main_frame, text="Заморозка", padding=10)
freeze_frame.pack(fill="x", pady=10)
ttk.Label(freeze_frame, text="Выберите бинд:").pack(anchor="w")
bind_menu = ttk.OptionMenu(freeze_frame, self.bind_var, "ЛКМ", "ЛКМ", "ПКМ", "Боковая кнопка 1", "Боковая кнопка 2")
bind_menu.pack(fill="x", pady=5)
self.freeze_button = ttk.Button(freeze_frame, text="Запустить Заморозку", command=self.toggle_freeze, style="primary.TButton")
self.freeze_button.pack(fill="x", pady=5)
self.status_label = ttk.Label(freeze_frame, text="Статус: Остановлен")
self.status_label.pack(pady=5)
timer_frame = ttk.LabelFrame(self.main_frame, text="Таймер", padding=10)
timer_frame.pack(fill="x", pady=10)
ttk.Label(timer_frame, text="Длительность таймера (сек):").pack(anchor="w")
timer_scale = ttk.Scale(timer_frame, from_=0.1, to=10.0, variable=self.timer_duration, orient="horizontal")
timer_scale.pack(fill="x", pady=5)
self.timer_label = ttk.Label(timer_frame, text=f"{self.timer_duration.get():.1f} сек")
self.timer_label.pack()
self.timer_duration.trace("w", self.update_timer_label)
ttk.Label(timer_frame, text="Задержка перед стартом (сек):").pack(anchor="w")
delay_scale = ttk.Scale(timer_frame, from_=0.0, to=5.0, variable=self.timer_delay, orient="horizontal")
delay_scale.pack(fill="x", pady=5)
self.delay_label = ttk.Label(timer_frame, text=f"{self.timer_delay.get():.1f} сек")
self.delay_label.pack()
self.timer_delay.trace("w", self.update_delay_label)
self.timer_toggle_button = ttk.Button(timer_frame, text="Скрыть таймер", command=self.toggle_timer_window, style="primary.TButton")
self.timer_toggle_button.pack(fill="x", pady=5)
ttk.Label(timer_frame, text="Цвет цифр таймера:").pack(anchor="w")
ttk.Button(timer_frame, text="Выбрать цвет", command=self.choose_timer_color, style="primary.TButton").pack(fill="x", pady=5)
self.countdown_label = ttk.Label(timer_frame, text="Таймер: не запущен")
self.countdown_label.pack(pady=10)
def create_timer_window(self):
self.timer_window = tk.Toplevel(self.root)
self.timer_window.title("Таймер")
self.timer_window.geometry("200x100")
self.timer_window.attributes('-alpha', 0.7)
self.timer_window.overrideredirect(True)
self.timer_window.attributes('-topmost', True)
self.timer_window.configure(bg='black')
self.timer_window.wm_attributes('-transparentcolor', 'black')
self.timer_display_label = tk.Label(
self.timer_window,
text="Таймер: не запущен",
font=("Helvetica", 16),
fg=self.timer_color.get(),
bg='black'
)
self.timer_display_label.pack(expand=True)
self.timer_window.bind("<Button-1>", self.start_move)
self.timer_window.bind("<B1-Motion>", self.on_motion)
def start_move(self, event):
self.timer_window.x = event.x
self.timer_window.y = event.y
def on_motion(self, event):
x = self.timer_window.winfo_x() + event.x - self.timer_window.x
y = self.timer_window.winfo_y() + event.y - self.timer_window.y
self.timer_window.geometry(f"+{x}+{y}")
def toggle_timer_window(self):
self.is_timer_visible.set(not self.is_timer_visible.get())
self.timer_window.wm_attributes('-alpha', 0.7 if self.is_timer_visible.get() else 0.0)
self.timer_toggle_button.config(text="Скрыть таймер" if self.is_timer_visible.get() else "Показать таймер")
self.save_settings()
def choose_timer_color(self):
color = colorchooser.askcolor(title="Выберите цвет цифр таймера")[1]
if color:
self.timer_color.set(color)
if self.timer_display_label:
self.timer_display_label.config(fg=color)
self.save_settings()
def update_timer_label(self, *args):
self.timer_label.config(text=f"{self.timer_duration.get():.1f} сек")
self.save_settings()
def update_delay_label(self, *args):
self.delay_label.config(text=f"{self.timer_delay.get():.1f} сек")
self.save_settings()
def save_settings(self):
settings = {
"bind": self.bind_var.get(),
"timer_duration": self.timer_duration.get(),
"timer_delay": self.timer_delay.get(),
"timer_color": self.timer_color.get(),
"timer_visible": self.is_timer_visible.get()
}
with open("settings.json", "w") as f:
json.dump(settings, f)
def load_settings(self):
if os.path.exists("settings.json"):
with open("settings.json", "r") as f:
settings = json.load(f)
self.bind_var.set(settings.get("bind", "ЛКМ"))
self.timer_duration.set(settings.get("timer_duration", 5.0))
self.timer_delay.set(settings.get("timer_delay", 1.0))
self.timer_color.set(settings.get("timer_color", "#FFFFFF"))
self.is_timer_visible.set(settings.get("timer_visible", True))
def toggle_freeze(self):
if not self.is_freeze_running:
self.is_freeze_running = True
self.freeze_button.config(text="Остановить Заморозку")
self.status_label.config(text="Статус: Работает")
bind_map = {
"ЛКМ": mouse.Button.left,
"ПКМ": mouse.Button.right,
"Боковая кнопка 1": mouse.Button.x1,
"Боковая кнопка 2": mouse.Button.x2
}
bind_key = bind_map.get(self.bind_var.get(), mouse.Button.left)
self.start_mouse_listener(bind_key)
else:
self.is_freeze_running = False
self.freeze_button.config(text="Запустить Заморозку")
self.status_label.config(text="Статус: Остановлен")
if self.mouse_listener:
self.mouse_listener.stop()
self.countdown_label.config(text="Таймер: не запущен")
if self.timer_display_label:
self.timer_display_label.config(text="Таймер: не запущен")
def execute_netsh_commands(self):
try:
subprocess.run(["netsh", "interface", "set", "interface", "Ethernet", "disable"], check=True, timeout=5)
time.sleep(0.5)
subprocess.run(["netsh", "interface", "set", "interface", "Ethernet", "enable"], check=True, timeout=5)
self.status_label.config(text="Статус: Работает (команды выполнены)")
except subprocess.CalledProcessError as e:
self.status_label.config(text=f"Статус: Ошибка netsh: {e}")
self.is_freeze_running = False
self.freeze_button.config(text="Запустить Заморозку")
if self.mouse_listener:
self.mouse_listener.stop()
except subprocess.TimeoutExpired:
self.status_label.config(text="Статус: Ошибка: netsh timeout")
self.is_freeze_running = False
self.freeze_button.config(text="Запустить Заморозку")
if self.mouse_listener:
self.mouse_listener.stop()
def start_mouse_listener(self, bind_key):
def on_click(x, y, button, pressed):
if self.is_freeze_running and button == bind_key and pressed:
current_time = time.time()
if current_time - self.last_click_time < 0.6:
return
self.last_click_time = current_time
threading.Thread(target=self.execute_netsh_commands, daemon=True).start()
if self.timer_thread is None or not self.timer_thread.is_alive():
self.timer_thread = threading.Thread(target=self.start_timer, daemon=True)
self.timer_thread.start()
self.mouse_listener = mouse.Listener(on_click=on_click)
self.mouse_listener.start()
def start_timer(self):
time.sleep(self.timer_delay.get())
duration = self.timer_duration.get()
while duration > 0 and self.is_freeze_running:
timer_text = f"Таймер: {duration:.1f} сек"
self.countdown_label.config(text=timer_text)
if self.timer_display_label:
self.timer_display_label.config(text=timer_text)
time.sleep(0.1)
duration -= 0.1
if self.is_freeze_running:
timer_text = "Таймер: завершен"
self.countdown_label.config(text=timer_text)
if self.timer_display_label:
self.timer_display_label.config(text=timer_text)
def update_timer_display(self):
if self.is_timer_visible.get():
self.timer_window.wm_attributes('-alpha', 0.7)
else:
self.timer_window.wm_attributes('-alpha', 0.0)
if __name__ == "__main__":
root = ttkb.Window()
app = App(root)
root.mainloop()