Другое С/С++ Вопрос - Ответ

KirikRus299

Участник
45
20
C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: Не удается найти средства сборки для v141_xp (набор инструментов платформы = "v141_xp"). Чтобы выполнить сборку с использованием средств сборки v141_xp установите средства сборки v141_xp. Кроме того, можно выполнить обновление до текущей версии средств Visual Studio, перейдя в меню "Проект" или щелкнув решение правой кнопкой мыши и выбрав "Обновить решение...".

винда 7 профессиональная, 64 бит, как пофиксить?
 

CleanLegend

Известный
Всефорумный модератор
476
929
По какому принципу делают такие менюшки?
В интернете много гайдов по подобным меню, достаточно просто ввести:" d3d9 menu".
А принцип таков, ты хукаешь один из методов отрисовки и инициализируешь меню

Для разработки SampFuncs подойдёт любая версия Visual Studio?
да

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.Platform.targets(57,5): error MSB8020: Не удается найти средства сборки для v141_xp (набор инструментов платформы = "v141_xp"). Чтобы выполнить сборку с использованием средств сборки v141_xp установите средства сборки v141_xp. Кроме того, можно выполнить обновление до текущей версии средств Visual Studio, перейдя в меню "Проект" или щелкнув решение правой кнопкой мыши и выбрав "Обновить решение...".

винда 7 профессиональная, 64 бит, как пофиксить?
У тебя в настройках проекта стоят настройки под VS 2015, тебе нужно зайти в Проект - Свойство - Набор инструментов платформы и поставить свой набор
 
  • Нравится
Реакции: KirikRus299

Ranto

Участник
45
1
В интернете много гайдов по подобным меню, достаточно просто ввести:" d3d9 menu".
А принцип таков, ты хукаешь один из методов отрисовки и инициализируешь меню
Взял последний пример, такой скомпилил в dll, всё ок, запускаю игру открываю CE и пытаюсь заинжектить DLL, а оно выдает ошибку типа Еррор
Что не так-то? Я так и не понял =(

UPD: Дело в том, что даже самые простые (мои созданные) DLL проекты не хочет инжектить.. Как исправить?
 
Последнее редактирование:

CleanLegend

Известный
Всефорумный модератор
476
929
Взял последний пример, такой скомпилил в dll, всё ок, запускаю игру открываю CE и пытаюсь заинжектить DLL, а оно выдает ошибку типа Еррор
Что не так-то? Я так и не понял =(

UPD: Дело в том, что даже самые простые (мои созданные) DLL проекты не хочет инжектить.. Как исправить?
Попробуй инжектить через другую программу, Procces Hacker как вариант
 
  • Нравится
Реакции: Ranto

SiTrak

Известный
193
251
C++:
// Аимбот класса "Школьник"
// Разработчик: Martin 0pc0d3R
// требования: SF 5.3.3
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>
#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"
#include "MemoryHack.h"
#pragma warning (disable:4700)
#pragma warning (disable:4244)
#pragma warning (disable:4018)
SAMPFUNCS *SF = new SAMPFUNCS();
#define GetCurrentDir _getcwd
bool Aimbot = false;
struct AimbotSettings
{
    float ResX, ResY;
    float FieldOfView = false;
    int fSkins[10];
    bool AutoActivation = false;
    int ActivationMode = 1;
    byte HookedKey = 82;
    int IgnoredWeapons[13];
    AimbotSettings()
    {
        for (short e = 0; e < 10; e++) fSkins[e] = -1;
        for (short ez = 0; ez < 13; ez++) IgnoredWeapons[ez] = 255;
    }
};
AimbotSettings cfg;
inline float GetDistance2D(float *first_operand, float *two_operand)
{
    return sqrt((two_operand[0] - first_operand[0]) * (two_operand[0] - first_operand[0])
    + (two_operand[1] - first_operand[1]) * (two_operand[1] - first_operand[1]));
}
inline float GetDistance3D(float *first_operand, float *two_operand)
{
    return sqrt((two_operand[0] - first_operand[0]) * (two_operand[0] - first_operand[0])
    + (two_operand[1] - first_operand[1]) * (two_operand[1] - first_operand[1])
    + (two_operand[2] - first_operand[2]) * (two_operand[2] - first_operand[2]));
}
WORD FindTargetInRadiusToCrosshair(const float FOV)
{
    uint32_t null = *(int*)0xB74490;
    null += 0x4;
    null = *(int*)null;
    std::vector<int> Prioritet;
    std::vector<float> Distance;
    Prioritet.reserve(139);
    Prioritet.assign(139, 255);
    Distance.reserve(139);
    Distance.assign(139, 5000.0);
    for (uint32_t one = 0; one < 35584; one += 0x100)
    {
        uint32_t two = *(BYTE*)null;
        null += 0x1;
        if ((two >= 0x00) && (two < 0x80))
        {
            two += one;
            int ID = SF->getSAMP()->getPlayers()->GetSAMPPlayerIDFromGTAHandle(two);
            if (SF->getSAMP()->getPlayers()->iIsListed[ID])
            {
                if (SF->getSAMP()->getPlayers()->IsPlayerDefined(ID, true))
                {
                    if (SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->iAFKState != 2)
                    {
                        float dist[3], mdist[3], screen[2];
                        for (short x = 0; x < 3; x++)
                        {
                            if (SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->bytePlayerState == PLAYER_STATE_ONFOOT)
                            dist[x] = SF->getSAMP()->getPlayers()->GetOnFootData(ID)->fPosition[x];
                            else if (SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->bytePlayerState == PLAYER_STATE_DRIVER)
                            dist[x] = SF->getSAMP()->getPlayers()->GetInCarData(ID)->fPosition[x];
                            else if (SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->bytePlayerState == PLAYER_STATE_PASSENGER)
                            dist[x] = SF->getSAMP()->getPlayers()->GetPassengerData(ID)->fPosition[x];
                        }
                        mdist[0] = PEDSELF->GetPosition()->fX; mdist[1] = PEDSELF->GetPosition()->fY; mdist[2] = PEDSELF->GetPosition()->fZ;
                        if (GetDistance3D(dist, mdist) <= PEDSELF->GetCurrentWeaponStat()->GetWeaponRange())
                        {
                            SF->getGame()->convert3DCoordsToScreen(dist[0], dist[1], dist[2], &screen[0], &screen[1]);
                            float ScaleX = 640.0, ScaleY = 448.0;
                            ScaleX /= cfg.ResX; ScaleY /= cfg.ResY;
                            screen[0] *= ScaleX; screen[1] *= ScaleY;
                            float crosshair[2] = { 339.1, 179.1 };
                            float distToTarget = GetDistance2D(crosshair, screen);
                            if (cfg.FieldOfView >= distToTarget)
                            {
                                CVector enemy; enemy.fX = dist[0], enemy.fY = dist[1], enemy.fZ = dist[2];
                                bool bCollision = GAME->GetWorld()->IsLineOfSightClear(PEDSELF->GetPosition(), &enemy);
                                if (bCollision == true) continue;
                                else
                                {
                                    actor_info* actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->pSAMP_Actor->pGTA_Ped;
                                    if (actorInfo != nullptr)
                                    {
                                        CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);
                                        if (Ped->IsOnScreen() == true)
                                        {
                                            bool contains = false;
                                            int skin = SF->getSAMP()->getPlayers()->pRemotePlayer[ID]->pPlayerData->pSAMP_Actor->pGTA_Ped->base.model_alt_id;
                                            for (short c = 0; c < 10; c++)
                                            if (cfg.fSkins[c] == skin) contains = true;
                                            if (contains == false)
                                            {
                                                Prioritet.insert(Prioritet.begin(), ID);
                                                Distance.insert(Distance.begin(), distToTarget);
                                            }
                                            else continue;
                                        }
                                        else continue;
                                    }
                                }
                            }
                            else continue;
                        }
                        else continue;
                    }
                    else continue;
                }
                else continue;
            }
            else continue;
        }
        else continue;
    }
    int iterator = std::distance(Distance.begin(), std::min_element(Distance.begin(), Distance.end()));
    if (SF->getSAMP()->getPlayers()->iIsListed[Prioritet[iterator]] &&
    SF->getSAMP()->getPlayers()->IsPlayerDefined(Prioritet[iterator], true) &&
    SF->getSAMP()->getPlayers()->pRemotePlayer[Prioritet[iterator]]->pPlayerData->iAFKState != 2) return Prioritet[iterator];
    else return 65535;
}
void LoadConfig(void)
{
    char *path = new char[256];
    char *dStr = new char[40];
    char *rStr = new char[51];
    GetCurrentDir(path, 256);
    strcat(path, "\\SAMPFUNCS\\Школотрон.ini");
    char *stric = new char[20];
    if (GetPrivateProfileSection("Настройки", stric, sizeof(stric), path))
    {
        cfg.FieldOfView = ((float)GetPrivateProfileInt("Настройки", "Радиус", 45, path));
        GetPrivateProfileString("Настройки", "Свои", NULL, dStr, 40, path);
        sscanf_s(dStr, "%d|%d|%d|%d|%d|%d|%d|%d|%d|%d", &cfg.fSkins[0], &cfg.fSkins[1], &cfg.fSkins[2], &cfg.fSkins[3],
        &cfg.fSkins[4], &cfg.fSkins[5], &cfg.fSkins[6], &cfg.fSkins[7], &cfg.fSkins[8], &cfg.fSkins[9]);
        cfg.AutoActivation = (bool)GetPrivateProfileInt("Настройки", "Автоактивация", 0, path);
        cfg.ActivationMode = (byte)GetPrivateProfileInt("Настройки", "Поджимной", 0, path);
        if (cfg.AutoActivation == true && cfg.ActivationMode == 0) Aimbot = true;
        cfg.HookedKey = (byte)GetPrivateProfileInt("Настройки", "Клавиша", 255, path);
        GetPrivateProfileString("Настройки", "Игнорируемое", NULL, rStr, 51, path);
        sscanf_s(rStr, "%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d|%d", &cfg.IgnoredWeapons[0],
        &cfg.IgnoredWeapons[1], &cfg.IgnoredWeapons[2], &cfg.IgnoredWeapons[3], &cfg.IgnoredWeapons[4],
        &cfg.IgnoredWeapons[5], &cfg.IgnoredWeapons[6], &cfg.IgnoredWeapons[7], &cfg.IgnoredWeapons[8],
        &cfg.IgnoredWeapons[9], &cfg.IgnoredWeapons[10], &cfg.IgnoredWeapons[11], &cfg.IgnoredWeapons[12]);
        MemoryHack* mem = new MemoryHack("gta_sa.exe", 32);
        mem->Open();
        cfg.ResX = static_cast<float>(mem->Read(0xC17044, 4).toINT32());
        cfg.ResY = static_cast<float>(mem->Read(0xC17048, 4).toINT32());
        mem->Close();
    }
    else
    {
        WritePrivateProfileString("Настройки", "Радиус", "150", path);
        WritePrivateProfileString("Настройки", "Свои", "-1|-1|-1|-1|-1|-1|-1|-1|-1|-1", path);
        WritePrivateProfileString("Настройки", "Автоактивация", "0", path);
        WritePrivateProfileString("Настройки", "Поджимной", "0", path);
        WritePrivateProfileString("Настройки", "Клавиша", "82", path);
        WritePrivateProfileString("Настройки", "Игнорируемое", "255|255|255|255|255|255|255|255|255|255|255|255|255", path);
    }
    delete[] path, stric, dStr, rStr;
}
void __stdcall mainloop( void )
{
    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(255, 255, 255), "{F5B800}Школьный аим {00B88A}by 0pc0d3R");
        SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(255, 255, 255), "{FFDB70}Специально для портала {00F53D}Silent-Hack.Ru");
        init = true; LoadConfig();
    }
    else
    {
        if (SF->getSAMP()->getPlayers()->pLocalPlayer->iIsActive == 1 && SF->getSAMP()->getInput()->iInputEnabled == 0)
        {
            if (cfg.ActivationMode == 0 && SF->getGame()->isKeyPressed(cfg.HookedKey))
            {
                if (Aimbot ? false : true)
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(148, 112, 255),
                "{CCFF33}ШколоАИМ {8AB800}Включен!");
                else SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(148, 112, 255),
                "{CCFF33}ШколоАИМ {FF3366}Выключен.");
                Aimbot ^= true;
            }
            if (cfg.ActivationMode == 1)
            {
                if (SF->getGame()->isKeyDown(cfg.HookedKey)) Aimbot = true;
                else Aimbot = false;
            }
            if (Aimbot == true)
            {
                for (short r = 0; r < 13; r++)
                {
                    if (cfg.IgnoredWeapons[r] == SF->getSAMP()->getPlayers()->pLocalPlayer->byteCurrentWeapon) return;
                }
                if (SF->getGame()->isKeyPressed(0x01))
                {
                    byte cam = SF->getSAMP()->getPlayers()->pLocalPlayer->aimData.byteCamMode;
                    if (cam != 53 && cam != 55 && cam != 65 && cam != 7 && cam != 39) return;
                    WORD vID = FindTargetInRadiusToCrosshair(cfg.FieldOfView);
                    CVector vector, vPos; if (vID == 65535) return;
                    if (PEDSELF->GetWeapon(PEDSELF->GetCurrentWeaponSlot())->GetState() == WEAPONSTATE_RELOADING) return;
                    actor_info* actorInfo = SF->getSAMP()->getPlayers()->pRemotePlayer[vID]->pPlayerData->pSAMP_Actor->pGTA_Ped;
                    if (actorInfo != nullptr)
                    {
                        CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);
                        Ped->GetTransformedBonePosition(BONE_UPPERTORSO, &vPos);
                    }
                    CVector *src = GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam())->GetSource();
                    CCam *pCam = GAME->GetCamera()->GetCam(GAME->GetCamera()->GetActiveCam());
                    vector.fX = src->fX - vPos.fX;
                    vector.fY = src->fY - vPos.fY;
                    vector.fZ = src->fZ - vPos.fZ;
                    float ax, az, fz, fx;
                    float *screenAspectRatio = (float *)0xC3EFA4;
                    float *crosshairOffset = (float *)0xB6EC10;
                    if (pCam->GetMode() == 53 || pCam->GetMode() == 55)
                    {
                        float mult = tan(pCam->GetFOV() * 0.5f * 0.017453292f);
                        fz = M_PI - atan2(1.0f, mult * ((0.5f - crosshairOffset[0] + 0.5f - crosshairOffset[0]) * (1.0f / *screenAspectRatio)));
                        fx = M_PI - atan2(1.0f, mult * (crosshairOffset[1] - 0.5f + crosshairOffset[1] - 0.5f));
                    }
                    else fx = fz = M_PI / 2;
                    float dist = sqrt(vector.fX * vector.fX + vector.fY * vector.fY);
                    ax = atan2f(vector.fY, -vector.fX) - M_PI / 2;
                    az = atan2f(dist, vector.fZ);
                    float xVec = -(ax - fx);
                    float zVec = (az - fz);
                    pCam->SetDirection(xVec, zVec);
                }
            }
        }
    }
}
bool WINAPI 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;
}
 
  • Нравится
Реакции: vifv

-raymond-

Известный
110
9
LZ0Ahfd.png

C++:
colorgz = SF->getSAMP()->getInfo()->pPools->pGangzone->pGangzone[i].dwColor;
 

lorgon

Известный
657
268
1. Как можно сделать радар зная только координату x, y игрока(другого и свои координаты конечно).(Вопрос по другой игре и не c++, но думаю всё равно поможет) Что-бы при перемещения игрока позиция на радаре тоже менялось.
 
Последнее редактирование:
  • Нравится
Реакции: _Vine_

Ranto

Участник
45
1
Как скомпилить без окна Windows? Что бы был только ImGui когда инжектиться Dll
upload_2018-8-9_16-33-48.png
 

-raymond-

Известный
110
9
машина не получает урон

C++:
float GetDistance(float X, float Y, float Z, float XX, float YY, float ZZ)
{
    return sqrt((X - XX) * (X - XX) + (Y - YY) * (Y - YY) + (Z - ZZ) * (Z - ZZ));
}

void BulletData(float PX, float PY, float PZ)
{
    stBulletData sync;
    ZeroMemory(&sync, sizeof(stBulletData));

    sync.sTargetID = NULL;

    sync.fOrigin[0] = PEDSELF->GetPosition()->fX;
    sync.fOrigin[1] = PEDSELF->GetPosition()->fY;
    sync.fOrigin[2] = PEDSELF->GetPosition()->fZ;

    sync.fTarget[0] = PX;
    sync.fTarget[1] = PY;
    sync.fTarget[2] = PZ;

    sync.fCenter[0] = 0.0;
    sync.fCenter[1] = 1.0;
    sync.fCenter[2] = 0.5;

    sync.byteWeaponID = SF->getSAMP()->getPlayers()->pLocalPlayer->byteCurrentWeapon;

    sync.byteType = 2;

    BitStream BulletSync;
    BulletSync.Write((BYTE)PacketEnumeration::ID_BULLET_SYNC);
    BulletSync.Write((PCHAR)&sync, sizeof(stBulletData));
    SF->getRakNet()->SendPacket(&BulletSync);
    SF->getSAMP()->getChat()->AddChatMessage(-1, "[] -> Пуля выпущена в машину");
}

void CALLBACK send_bullet_from_car()
{
    float poscar[3];
    for (int i = 0; i < SAMP_MAX_VEHICLES; i++)
    {
        if (!SF->getSAMP()->getVehicles()->pSAMP_Vehicle[i]) continue;
        if (SF->getSAMP()->getVehicles()->pSAMP_Vehicle[i]->pGTA_Vehicle->base.model_alt_id == 478 || SF->getSAMP()->getVehicles()->pSAMP_Vehicle[i]->pGTA_Vehicle->base.model_alt_id == 422)
        {
            poscar[0] = SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[i]->base.matrix[4 * 3];
            poscar[1] = SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[i]->base.matrix[4 * 3 + 1];
            poscar[2] = SF->getSAMP()->getInfo()->pPools->pVehicle->pGTA_Vehicle[i]->base.matrix[4 * 3 + 2];
            if (GetDistance(PEDSELF->GetPosition()->fX, PEDSELF->GetPosition()->fY, PEDSELF->GetPosition()->fZ, poscar[0], poscar[1], poscar[2]) < 6.0)
            {
                BulletData(poscar[0], poscar[1], poscar[2]);
                break;
            }
        }
    }
}