Это гайд по модам для Geometry Dash на Windows. Написан Jaan#2897.
Сначала необходимо знать язык c++, знать, как хукать функции, а также знать основные принципы движка cocos2d-x.
Discord сервер программистов GD.
Мой сайт с 2800+ адресов функций, а также их параметрами.
Visual Studio 2019 с установленным "Разработка классических приложений на C++".
Python 3.0+ для создания проекта
Geometry Dash с любым загрузчиком модов(MegaHack 6.2+ и т.д.)
В этой главе мы научимся создавать проект, познакомимся с библиотеками и скомпилируем тестовый мод.
Начнём с того, что скачаем шаблон для модов, который содержит в себе всё необходимое. А именно: cocos-headers, minhook, gd.h. Этот шаблон - изменённый мной шаблон из CappuccinoSDK, который устарел после выхода cocos-headers.
СкачатьРазархивируйте его в любую папку. Теперь мы готовы создать проект.
Зайдите в папку "tools", откройте в ней командную строку и введите python create_project.py -project <любое название проекта>
Через какое-то время проект будет создан и в командной строке будет написан путь к проекту.
Папка проекта будет выглядеть примерно вот так:
Теперь откройте файл "<название проекта>.sln". Если тип .sln не ассоциирован с Visual Studio 2019, у вас появится такое окно:
Выберите "Visual Studio 2019".
Если вы всё сделали правильно, то после открытия проекта у вас появится примерно такое окно:
Поздравляю! Но пока что не спешите компилировать проект, ведь мы ещё не всё настроили. Во-первых, откройте файл "dllmain.cpp"
Не пугайтесь того, что сейчас в проекте очень много ошибок, это нормально.
Внимание! Поменяйте Debug x64 на Release x86! Это очень важно! Это нужно, чтобы исправить изначальные ошибки.
В принципе, сейчас уже можно нажать Ctrl+B и создать .dll мода, а потом загрузить его в игру, но давайте сначала ещё кое-что настроим.
Если вы используете загрузчик модов(крайне рекомендую), зайдите в "Проект" -> "Свойства: <название проекта>" -> "События сборки" -> "Событие после сборки" -> "Командная строка" -> "Изменить".
Теперь найдите папку загрузчика модов. В моём случае это "D:\SteamLibrary\steamapps\common\Geometry Dash\extensions". В "Командная строка" напишите:
copy "$(SolutionDir)Build\$(Configuration)\$(ProjectName).dll" "<ваша папка загрузчика>\$(ProjectName).dll"
В моём случае это: copy "$(SolutionDir)Build\$(Configuration)\$(ProjectName).dll" "D:\SteamLibrary\steamapps\common\Geometry Dash\extensions\$(ProjectName).dll"
Не забудьте нажать "Применить" и "ОК"!
Теперь после успешной сборки мода он будет сам копироваться в папку загрузчика мода, то есть после сборки остаётся только запустить Geometry Dash.
Что ж, давайте добавим небольшой функционал нашему моду. Перейдём в dllmain.cpp и посмотрим на функцию my_thread(). Между MH_Initialize();
и MH_EnableHook(MH_ALL_HOOKS);
можно добавлять свой код. Мы добавим код, который будет отображать диалоговое окно.
MessageBoxA(NULL, "Test mod! ;)", "GD modding", NULL);
Мы готовы протестировать наш мод! Давайте сделаем это. Нажмите Ctrl+B, чтобы собрать мод. Если вы всё сделали приавильно, вы увидите примерно это:
Мой полный вывод сборки(можете сравнить)
Главное, чтобы было написано ========== Сборка: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========
Если всё правильно, то вы готовы протестировать свой мод! Если вы используете загрузчик модов и настроили событие сборки, то можно запускать игру. Если нет, то надо сначала открыть игру, а потом использовать Cheat Engine или MegaHack 5 или любой другой загрузчик.
Если при запуске игры/загрузке мода вы увидите примерно такое сообщение:
То вы всё сделали правильно! Поздравляю!!! Можете поэкспериментирвать, повыводить в консоль текст с помощью cout << "some text" << endl;
, поменять текст сообщения и так далее
До встречи во втором уроке!