int main()
{
SetConsoleTitle("Protect For SAMP [0.3.7]");
while (hWnd == 0) {
hWnd = FindWindow(0, "GTA:SA:MP");
Sleep(100);
}
cout << "Just found the window" << endl;
GetWindowThreadProcessId(hWnd, &pId);
pHandle = OpenProcess(PROCESS_ALL_ACCESS | PROCESS_VM_OPERATION, TRUE, pId);
dwSAMP = GetModuleBaseAddress(pId, "samp.dll");
cout << "dwSAMP : " << dwSAMP << endl;
ReadProcessMemory(pHandle, (LPCVOID)(dwSAMP + 0x21A0F8), &dwAddress, 4, 0);
cout << "dwAdress : " << dwAddress << endl;
ReadProcessMemory(pHandle, (LPCVOID)(dwAddress + 0x3CD), &dwAddress, 4, 0);
cout << "dwAdres : " << dwAddress << endl;
ReadProcessMemory(pHandle, (LPCVOID)(dwAddress + 0x18), &dwPlayers, 4, 0);
cout << "dwPlayers : " << dwPlayers << endl;
ReadProcessMemory(pHandle, (LPCVOID)(dwPlayers + 0x2E + 0 * 4), &dwRemotePlayer, 4, 0); // ID Игрока
cout << "dwRemotePlayer : " << dwRemotePlayer << endl;
ReadProcessMemory(pHandle, (LPCVOID)(dwRemotePlayer + 0x0), &dwRemotePlayerData, 4, 0);
cout << "dwRemotePlayerData : " << dwRemotePlayerData << endl;
ReadProcessMemory(pHandle, (LPCVOID)(dwRemotePlayerData + 676), &adress, 4, 0);
cout << "PED : " << adress << endl;
while (true) {
Sleep(10);
}
CloseHandle(pHandle);
return 0;
}
Не понимаю всё равно , где там ошибочка то?Неправильно читаешь pRemotePlayer.
Можно, гугли TFS. Но все равно код прийдется параллельно хранить у себя (и на сервере). Билдить можно на их стороне.Объясните пожалуйста , можно ли хранить в Visual Studio проект онлайн? При этом что бы можно было его компилировать.
Смотрел что то про Azure , но толком не понял там не чего. Кто с этим сталкивался , дайте гайдик)
Здравствуйте. Как скомпилировать файл в .sf?
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
SAMPFUNCS *SF = new SAMPFUNCS();
void CALLBACK cmd_show_info_player(std::string param)
{
if (param.empty()) return;
int i = std::stoi(param);
char buf[128];
stRemotePlayer *pPlayer = SF->getSAMP()->getPlayers()->pRemotePlayer;
if (!pPlayer) return;
sprintf(buf, "Nickname - %s, Ping - %d, Score - %d, isNPC - %d, AFKState - %d",
pPlayer->szPlayerName,
pPlayer->iPing,
pPlayer->iScore,
pPlayer->iIsNPC,
pPlayer->pPlayerData->iAFKState == 2);
SF->getSAMP()->getChat()->AddChatMessage(-1, buf);
};
void CALLBACK mainloop()
{
static bool init = false;
if (!init)
{
if (GAME == nullptr)
return;
if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
return;
if (!SF->getSAMP()->IsInitialized())
return;
SF->getSAMP()->getChat()->AddChatMessage( D3DCOLOR_XRGB( 0, 0xAA, 0 ), "SAMPFUNCS Plugin loaded." );
SF->getSAMP()->registerChatCommand("showinfo", cmd_show_info_player);
init = true;
}
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
switch (dwReasonForCall)
{
case DLL_PROCESS_ATTACH:
SF->initPlugin(mainloop, hModule);
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
SF Api, нужна VS.
Основы изучи сначала, а потом уже с апи работайСамо собой, код написал там, куда дальше нажимать? Как скомпилировать? (VS 2017 Community)
(https://www.blast.hk/wiki/tutorials:api_lesson_basics)
Само собой, код написал там, куда дальше нажимать? Как скомпилировать? (VS 2017 Community)
(https://www.blast.hk/wiki/tutorials:api_lesson_basics)
Другие аси грузит? Asi и dll это одно и то жеКак из DLL сделать ASI? Если просто переименовать - не работает. Писал на Visual C++. ASI loader стоит.
Другие АСИ грузит прекрасно.Другие аси грузит? Asi и dll это одно и то же