Шрек Ниматор
Знаток
(326)
2 года назад
Не хватает точки с запятой после инклюдов:
#include "include.h";
#include "offsets.h";
Не указан тип возвращаемого значения для функции DllMain:
BOOL APIENTRY DllMain(HMODULE hmodule, DWORD ul_reasone_for_call, LPVOID lpReserved)
Странный switch-блок, со скобками и отсутствием действий для некоторых кейсов - его нужно заменить на обычный if-блок:
if (ul_reasone_for_call == DLL_PROCESS_ATTACH) {
...
} else if (ul_reasone_for_call == DLL_THREAD_ATTACH) {
...
} else if (ul_reasone_for_call == DLL_THREAD_DETACH) {
...
} else if (ul_reasone_for_call == DLL_PROCESS_DETACH) {
...
}
Ошибка в получении значения переменной EnemyTeam:
uint32_t EnemyTeam = (uintptr_t)(Enemy = m_iTeamNum); - здесь оператор присваивания '=' вместо '+' для вычисления адреса переменной.
Правильно: uint32_t EnemyTeam = (uint32_t)(Enemy + m_iTeamNum);
Taiga tajaУченик (101)
2 года назад
Даун вообще то здесь не хватает Правильно: uint32_t EnemyTeam = (uint32_t)(Enemy + m_iTeamNum
Professional Professional
Мудрец
(16358)
2 года назад
Проблемы в коде, которые можно заметить:
1. В первых двух строках из include-файлов отсутствуют угловые скобки (`<>`), нужно использовать такой синтаксис:
```
#include <include.h>
#include <offsets.h>
```
2. В коде используются два пространства имен `offsets::signatures` и `offsets::netvars`, но первый из них не определен. Если вы используете какую-то библиотеку, которая должна предоставлять эти пространства имен, то нужно подключить соответствующий заголовочный файл.
3. В функции `triggerThread` присутствуют две фигурные скобки `{` и `}`, которые никак не связаны друг с другом. Вероятно, одна из этих скобок была случайно добавлена или было потеряно закрытие скобки.
4. В этой же функции в строке `uint32_t EnemyTeam = *(uintptr_t*)(Enemy = m_iTeamNum);`, при присваивании переменной `Enemy` значения `m_iTeamNum`, вместо знака равенства `=` был использован знак сравнения `==`. Нет необходимости присваивать переменной `Enemy` значение `m_iTeamNum`, ведь она уже определена в строке выше.
5. В функции `DllMain` в блоке `switch` не хватает закрывающей скобки `}` после `case DLL_PROCESS_ATTACH:`.
6. В строке `switch ({` в функции `DllMain` не нужны фигурные скобки `{}`. Нужно использовать такой синтаксис:
```
switch (ul_reasone_for_call) {
case DLL_PROCESS_ATTACH:
// ...
break;
case DLL_THREAD_ATTACH:
// ...
break;
case DLL_THREAD_DETACH:
// ...
break;
case DLL_PROCESS_DETACH:
// ...
break;
}
```
7. В условии цикла `while (!GetAsyncKeyState(VK_END))` используется отрицание `!`, что значит, что цикл будет выполняться до тех пор, пока клавиша `VK_END` НЕ нажата. Если вы хотите выйти из цикла при нажатии на клавишу `VK_END`, то нужно использовать следующее условие: `while (GetAsyncKeyState(VK_END) == 0)`.
8. В цикле `while` необходимо добавить `Sleep(1);` перед продолжением итерации цикла, чтобы не перегружать процессор.
9. В функции `triggerThread` вызывается функция `mouse_event` с параметрами, которые равны нулю. Это может быть неправильным поведением, если вы хотите кликнуть на определенную позицию. Нужно использовать соответствующие значения для координат и других параметров.