Гайд Dota2VPKLoader

Сделать ли автоматический баг репорт? Файл с отчетом об ошибке будет приходить мне в тг бота.

  • Да

    Голосов: 7 100.0%
  • Нет

    Голосов: 0 0.0%

  • Всего проголосовало
    7
0x25E90B80
Пользователь
Статус
Оффлайн
Регистрация
12 Апр 2021
Сообщения
61
Реакции[?]
37
Поинты[?]
2K
Всем привет.
Как вы знаете, недавно в тиктоке моды на Dota 2 начали резко набирать популярность.
Часто новички не могут установить моды, и поэтому я решил сделать вот такую утилиту.
1. Скачайте последнюю стабильную сборку скрипта (Файл: Dota2VPKLoader-версия.zip)
2. Распакуйте архив в отдельную папку
3. Поместите ваш мод в папку со скриптом. (Ваш мод должен называться pak01_dir.vpk)
4. Запустите Dota2VPKLoader.exe и следуйте инструкции в открывшемся окне.

Пример использования:
ss.png
Скрипт автоматически ищет файлы игры Dota 2 с помощью реестра Windows, проверяет наличие и валидность папки игры, наличие необходимых файлов мода, создает соответствующие папки и копирует файлы мода в нужные директории. Эти функции предназначены для упрощения установки и использования модов для игры Dota 2.
При запуске скрипт проверяет наличие обновлений для вашей сборки. Если таковые есть, скрипт предложить вам их установить.
Скрипт также включает функцию для создания отчета об ошибке (bug report) в случае возникновения исключения или ошибки во время выполнения программы. Вот как это выглядит в скрипте:
Баг репорт:
try:
    if __name__ == "__main__":
        main()
except:
    now = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
    filename = f"{now}-dump.txt"
    with open(filename, "w") as f:
            f.write(f"Exception occurred: {datetime.now()}\n")
            f.write(f"{sys.exc_info()}\n")
    print(f"\n[!] Во время выполнения программы возникла ошибка. Отчет об ошибке сохранен в {filename}.\n[~] Вы можете прислать этот файл мне в телеграм, чтобы я вам помог.\n[~] @staticsyscall")
    input("[~] Нажмите Enter чтобы закрыть окно.")
    os._exit(0)
Если во время выполнения программы возникает исключение, код в блоке except сохраняет информацию об ошибке в текстовый файл с именем вида YYYY-MM-DD_HH-MM-SS-dump.txt. Затем скрипт выводит сообщение, информирующее пользователя о возникновении ошибки и предлагает отправить отчет об ошибке мне в телеграм для получения помощи.

Ссылки:
Скачать:
Пожалуйста, авторизуйтесь для просмотра ссылки.
/
Пожалуйста, авторизуйтесь для просмотра ссылки.
/
Пожалуйста, авторизуйтесь для просмотра ссылки.

Исходный код:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(буду рад если вы поставите звезду<3)

Простите за внимание
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
18 Июл 2022
Сообщения
207
Реакции[?]
22
Поинты[?]
0
Это типа для инжекта синего сфа например?
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
557
Реакции[?]
88
Поинты[?]
53K
мог бы и автодетект папки инсталла сделать
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Shitcode lord 💩
Забаненный
Статус
Оффлайн
Регистрация
25 Ноя 2020
Сообщения
272
Реакции[?]
84
Поинты[?]
8K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Манипулируешь с CRC gameinfo или как белый человек патчишь client.dll?
 
Начинающий
Статус
Оффлайн
Регистрация
18 Июл 2022
Сообщения
207
Реакции[?]
22
Поинты[?]
0
Shitcode lord 💩
Забаненный
Статус
Оффлайн
Регистрация
25 Ноя 2020
Сообщения
272
Реакции[?]
84
Поинты[?]
8K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сделай

Сделай пожалуйста функцию чтобы сбросить файлы доты до изначальных (чтобы все скины пропали, не всегда охото в стиме кнопки клацать)
Проверку целостности сделай.
Ну тоже вариант. Вроде как gameinfo раз в год обновляется. Клиент патчить есть смысл разве что на рантайме в читах.
 
Начинающий
Статус
Оффлайн
Регистрация
18 Июл 2022
Сообщения
207
Реакции[?]
22
Поинты[?]
0
Проверку целостности сделай.

Ну тоже вариант. Вроде как gameinfo раз в год обновляется. Клиент патчить есть смысл разве что на рантайме в читах.
я знаю про проверку целостности, я же написал "не хочу в стиме кнопки клацать"
 
0x25E90B80
Пользователь
Статус
Оффлайн
Регистрация
12 Апр 2021
Сообщения
61
Реакции[?]
37
Поинты[?]
2K
Shitcode lord 💩
Забаненный
Статус
Оффлайн
Регистрация
25 Ноя 2020
Сообщения
272
Реакции[?]
84
Поинты[?]
8K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
я знаю про проверку целостности, я же написал "не хочу в стиме кнопки клацать"
Лентяй ебаный. Учитывая манипуляции с CRC32, тут только бэкапить оригинальный GAYmeinfo.
 
Начинающий
Статус
Оффлайн
Регистрация
18 Июл 2022
Сообщения
207
Реакции[?]
22
Поинты[?]
0
Лентяй ебаный. Учитывая манипуляции с CRC32, тут только бэкапить оригинальный GAYmeinfo.
я идею автору даю, мне лично - 0 затруднений, но сам подумай, от этого это чудотворение станет удобнее и тебе придётся делать меньше действий
и автор подкачает свои навыки
 
Модератор раздела «Читы для Minecraft»
Пользователь
Статус
Оффлайн
Регистрация
3 Авг 2022
Сообщения
390
Реакции[?]
141
Поинты[?]
57K
Модератор форума
Модератор
Статус
Оффлайн
Регистрация
13 Фев 2018
Сообщения
1,078
Реакции[?]
781
Поинты[?]
124K
в некст апдейте сделаю!
Дык там делать то нечего по большему счёту.
Ищешь по пути \HKEY_CLASSES_ROOT\Local Settings\Software\Microsoft\Windows\Shell\MuiCache ключ реестра со значение бинарника игры, получаешь нейм кея, удаляешь из строки ".FriendlyAppName" и сё.
Если не нашло - вот тогда запрашиваешь у юзера самому ввести путь до папки с игрой.
Python:
import winreg

def dota2_dir():
    registry_path = r"Local Settings\Software\Microsoft\Windows\Shell\MuiCache"
    registry_key = winreg.OpenKey(winreg.HKEY_CLASSES_ROOT, registry_path, 0, winreg.KEY_READ)
    index = 0
    while True:
        try:
            key_name, key_value, key_type = winreg.EnumValue(registry_key, index)
            if key_value == "dota2.exe":
                winreg.CloseKey(registry_key)
                return key_name
            index += 1
        except OSError:
            winreg.CloseKey(registry_key)
            break
    return None

dir = input("[!] Путь до папки с игрой не найден! Введите путь к файлам игры dota2.exe: ") if dota2_dir() is None else dota2_dir().replace("dota2.exe.FriendlyAppName", "")
print(f"[+] Путь до папки с игрой: {dir}")
Делал по аналогии с сиесгоу, я ни разу не играл в доку2, не ебу как там бинарник называется. Разберешься, думаю
 
0x25E90B80
Пользователь
Статус
Оффлайн
Регистрация
12 Апр 2021
Сообщения
61
Реакции[?]
37
Поинты[?]
2K
Для тех, у кого не работал лоадер:

Благодаря Virus4alich пофиксил самую тупую ошибку которую мог допустить. В релизах лежит новый билд. Все должно работать.
Пожалуйста, авторизуйтесь для просмотра ссылки.

А все из-за того что писал скрипт на компе без доты...
 
0x25E90B80
Пользователь
Статус
Оффлайн
Регистрация
12 Апр 2021
Сообщения
61
Реакции[?]
37
Поинты[?]
2K
Обновление!

Код:
[+] Добавлен Dota 2 path autofinder (реализован с помощью реестра Windows)
[+] Небольшой рефакторинг кода (изменение названий функций, переменных)
[+] Почистил код
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.


Приятного использования! <3
 
Shitcode lord 💩
Забаненный
Статус
Оффлайн
Регистрация
25 Ноя 2020
Сообщения
272
Реакции[?]
84
Поинты[?]
8K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
8 Июл 2019
Сообщения
35
Реакции[?]
2
Поинты[?]
0
А где брать модельки и тд
 
Сверху Снизу