Общие -> версия windows (выбираешь свой winsdk)Что надо сделать, чтобы этого не было ?Посмотреть вложение 89820Посмотреть вложение 89819
Инструменты сборки -> выбираешь свои
Общие -> версия windows (выбираешь свой winsdk)Что надо сделать, чтобы этого не было ?Посмотреть вложение 89820Посмотреть вложение 89819
if (taim)Чиво чиво
Чтобы закрепить определенное время суток, тебе надо в цикле проверять на соответствие рез-тат чтения адреса и переменную timeset. Если не равны - пиши timeset в адрес. Если установить только один раз, то работать не будет.if (taim)
{
*(DWORD*)(0xB70153) = timeset;
}
Игра возвращает значение, не могу изменить время в игре, покажите пример пожалуйста
А можно просто запретить сампу его менятьЧтобы закрепить определенное время суток, тебе надо в цикле проверять на соответствие рез-тат чтения адреса и переменную timeset. Если не равны - пиши timeset в адрес. Если установить только один раз, то работать не будет.
for k, v in ipairs(getAllChars()) do
-- something
end
с использованием plugin-sdk: https://github.com/DK22Pac/plugin-sdk/blob/master/plugin_sa/game_sa/CPools.h#L28Добрый вечер. Как возможно реализовать перебор всех игроков в зоне стрима без использования SF? По типу
в луаLua:for k, v in ipairs(getAllChars()) do -- something end
DWORD GetProcId(const char* procName)
{
DWORD procId = 0;
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnap != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 procEntry;
procEntry.dwSize = sizeof(procEntry);
if (Process32First(hSnap, &procEntry))
{
do
{
if (!_stricmp(procEntry.szExeFile, procName))
{
procId = procEntry.th32ProcessID;
break;
}
} while (Process32Next(hSnap, &procEntry));
}
}
CloseHandle(hSnap);
return procId;
}
Пишу инжектор, столкнулся с проблемой
Я понимаю, что char нужно изменять параметр procname, и передавать его wcscmp(), но после того как я делаю появляется другая ошибкаgetprocid:DWORD GetProcId(const char* procName) { DWORD procId = 0; HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); if (hSnap != INVALID_HANDLE_VALUE) { PROCESSENTRY32 procEntry; procEntry.dwSize = sizeof(procEntry); if (Process32First(hSnap, &procEntry)) { do { if (!_stricmp(procEntry.szExeFile, procName)) { procId = procEntry.th32ProcessID; break; } } while (Process32Next(hSnap, &procEntry)); } } CloseHandle(hSnap); return procId; }
DWORD GetProcId(std::wstring_view procName)
{
DWORD procId = 0;
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnap != INVALID_HANDLE_VALUE)
{
PROCESSENTRY32 procEntry;
procEntry.dwSize = sizeof(procEntry);
if (Process32First(hSnap, &procEntry))
{
do
{
if (procEntry.szExeFile == procName)
{
procId = procEntry.th32ProcessID;
break;
}
} while (Process32Next(hSnap, &procEntry));
}
}
CloseHandle(hSnap);
return procId;
}
DWORD GetProcId(std::string procname)
{
PROCESSENTRY32 pe;
HANDLE hSnap;
pe.dwSize = sizeof(PROCESSENTRY32);
hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
if (Process32First(hSnap, &pe)) {
do {
if (std::wstring(pe.szExeFile) == std::wstring(procname.begin(), procname.end()))
break;
} while (Process32Next(hSnap, &pe));
}
return pe.th32ProcessID;
}
Эта функция получается ID процесса, а не создает егоКак убить процесс, если он запущен по функе
C++:DWORD GetProcId(std::string procname) { PROCESSENTRY32 pe; HANDLE hSnap; pe.dwSize = sizeof(PROCESSENTRY32); hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); if (Process32First(hSnap, &pe)) { do { if (std::wstring(pe.szExeFile) == std::wstring(procname.begin(), procname.end())) break; } while (Process32Next(hSnap, &pe)); } return pe.th32ProcessID; }
Как убить процесс, если он запущен по функе
C++:DWORD GetProcId(std::string procname) { PROCESSENTRY32 pe; HANDLE hSnap; pe.dwSize = sizeof(PROCESSENTRY32); hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL); if (Process32First(hSnap, &pe)) { do { if (std::wstring(pe.szExeFile) == std::wstring(procname.begin(), procname.end())) break; } while (Process32Next(hSnap, &pe)); } return pe.th32ProcessID; }
void GetProcId(std::wstring_view procName) {
HANDLE hSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hSnap != INVALID_HANDLE_VALUE) {
PROCESSENTRY32 procEntry;
procEntry.dwSize = sizeof(procEntry);
if (Process32First(hSnap, &procEntry)) {
do {
if (procEntry.szExeFile == procName) {
TerminateProcess(OpenProcess(PROCESS_ALL_ACCESS, FALSE, procEntry.th32ProcessID), 0);
break;
}
} while (Process32Next(hSnap, &procEntry));
}
}
}
Как проверить, что самп инициализирован без проверки структур?
while (*(DWORD*)0xC8D4C0 != 9)
Sleep(100);
это гтаВроде такC++:while (*(DWORD*)0xC8D4C0 != 9) Sleep(100);