Created
December 20, 2023 11:15
-
-
Save Notusu/e3604b2d8daac119643064bf91446280 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import winreg | |
import uuid | |
import tkinter as tk | |
import pyperclip | |
import random | |
def generate_unique_id(): | |
return uuid.uuid4().int & (1 << 64) - 1 | |
def write_to_registry(key_path, value_name, value_data): | |
try: | |
key = winreg.OpenKey(winreg.HKEY_CURRENT_USER, key_path, 0, winreg.KEY_SET_VALUE) | |
winreg.SetValueEx(key, value_name, 0, winreg.REG_QWORD, value_data) | |
winreg.CloseKey(key) | |
except Exception as e: | |
print(f"Error: {e}") | |
def show_success_message(message): | |
new_pcid_label.config(text=message) | |
def generate_and_apply_new_pcid(): | |
key_path = r"Software\Classes\Software\Microsoft\XLive" | |
value_name = "PCID" | |
new_pcid = generate_unique_id() | |
write_to_registry(key_path, value_name, new_pcid) | |
show_success_message(f"New PCID: {new_pcid}") | |
def fix_key_error(): | |
key_path = r"Software\Classes\Software\Microsoft\XLive" | |
value_name = "PCID" | |
fixed_pcid = int("c3f5106be2afbb00", 16) | |
write_to_registry(key_path, value_name, fixed_pcid) | |
show_success_message(language_strings[language_var.get()]["success_message"]) | |
def get_cd_key(): | |
cd_keys = [ | |
"VB8DC-VYVGG-F8K78-7TJRF-7CVCT", | |
"Q97YF-4TKGJ-Q9FK9-63X7R-2D2R8", | |
"FMRY2-WHJTX-K3VK8-2DX9W-J2276", | |
"CGTPR-Q3GWX-P699R-6JF3M-784RY" | |
] | |
selected_key = random.choice(cd_keys) | |
pyperclip.copy(selected_key) | |
show_success_message(f"{selected_key} copied") | |
def toggle_language(): | |
current_language = language_var.get() | |
new_language = "ru" if current_language == "en" else "en" | |
language_var.set(new_language) | |
generate_button["text"] = language_strings[new_language]["generate_button"] | |
fix_key_button["text"] = language_strings[new_language]["fix_key_button"] | |
faq_button["text"] = language_strings[new_language]["faq_button"] | |
get_cd_key_button["text"] = language_strings[new_language]["get_cd_key_button"] | |
new_pcid_label.config(text=language_strings[new_language]["label"]) | |
faq_text.set(language_strings[new_language]["faq_text"]) | |
def show_faq(): | |
faq_window = tk.Toplevel(root) | |
faq_window.title("FAQ") | |
faq_window.geometry("630x100") | |
faq_window.minsize(630, 100) | |
faq_window.maxsize(630, 100) | |
faq_window.configure(bg="#2C3E50") | |
faq_label = tk.Label(faq_window, text=faq_text.get(), justify="left", bg="#2C3E50", fg="#D4D4D4") | |
faq_label.pack(pady=10, padx=10) | |
root = tk.Tk() | |
root.title("GWFL Online Fixer") | |
root.geometry("250x280") | |
root.minsize(250, 280) | |
root.maxsize(250, 280) | |
root.configure(bg="#2C3E50") | |
language_var = tk.StringVar(value="en") | |
language_strings = { | |
"en": { | |
"generate_button": "New PCID", | |
"fix_key_button": "Fix Key Error", | |
"faq_button": "FAQ", | |
"get_cd_key_button": "Get CD-Key", | |
"label": "", | |
"success_message": "Key successfully fixed.", | |
"faq_text": ( | |
"1. Before playing, click 'Fix Key Error,' then launch and successfully log into your account. Close the game.\n" | |
"2. Click 'New PCID' in the program. Now you can start the game and play online.\n" | |
"P.S. If you are installing the game for the first time, use the button Get CD-Key and paste it while first launch.\n" | |
"Feel free to report bugs or ask questions in Steam Guide or in Telegram @e8200. Made by Heleus.\n" | |
), | |
}, | |
"ru": { | |
"generate_button": "Новый PCID", | |
"fix_key_button": "Исправить ключ", | |
"faq_button": "FAQ", | |
"get_cd_key_button": "Получить CD-ключ", | |
"label": "", | |
"success_message": "Ключ успешно исправлен.", | |
"faq_text": ( | |
"1. Перед игрой выберите 'Исправить ключ', затем запустите и успешно войдите в аккаунт. Закройте игру.\n" | |
"2. Нажмите в программе 'Новый PCID'. Теперь вы можете включить игру и играть в онлайне.\n" | |
"P.S. Если вы первый раз установили игру - нажмите 'Получить CD-ключ' и введите при первом запуске.\n" | |
"По всем вопросам писать в Телеграме @e8200 или в Steam руководстве. Made by Heleus.\n" | |
), | |
} | |
} | |
button_color = "#2C3E50" | |
button_style = {"bg": "#3A4B5E", "fg": "#D4D4D4", "font": ("Helvetica", 10, "bold"), "relief": tk.FLAT} | |
generate_button = tk.Button(root, text=language_strings[language_var.get()]["generate_button"], | |
command=generate_and_apply_new_pcid, **button_style) | |
generate_button.pack(pady=10) | |
fix_key_button = tk.Button(root, text=language_strings[language_var.get()]["fix_key_button"], | |
command=fix_key_error, **button_style) | |
fix_key_button.pack(pady=10) | |
faq_button = tk.Button(root, text=language_strings[language_var.get()]["faq_button"], | |
command=show_faq, **button_style) | |
faq_button.pack(pady=10) | |
get_cd_key_button = tk.Button(root, text=language_strings[language_var.get()]["get_cd_key_button"], | |
command=get_cd_key, **button_style) | |
get_cd_key_button.pack(pady=10) | |
new_pcid_label = tk.Label(root, text=language_strings[language_var.get()]["label"], bg="#2C3E50", fg="white") | |
new_pcid_label.pack(side=tk.BOTTOM, pady=10) | |
language_toggle_button = tk.Button(root, text="Сменить язык", command=toggle_language, **button_style) | |
language_toggle_button.pack(pady=10) | |
faq_text = tk.StringVar() | |
faq_text.set(language_strings[language_var.get()]["faq_text"]) | |
root.mainloop() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment