Напиши подробнееКак скомпилить без окна Windows? Что бы был только ImGui когда инжектиться Dll
Как получить координаты кости другого игрока?
CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);
Ped->GetTransformedBonePosition(BONE_SPINE1, &vPos);
как отнять патрон от оружия которое в руках?
int ammo = SA->getPlayers()->pLocalPlayer->iWeaponAmmo[SA->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped->weapon_slot] - 1;
SA->setAmmo(SA->getPlayers()->pLocalPlayer->byteCurrentWeapon, ammo);
int sampAPI::setAmmo(int weaponId, int ammo)
{
typedef int(__thiscall *CPed__setAmmo)(void *_this, int weaponId, int ammo);
return (CPed__setAmmo((uint32_t)0x5DF290))(SA->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped, weaponId, ammo);
}
Imgui по размеру окна растягивай.Как скомпилить без окна Windows? Что бы был только ImGui когда инжектиться Dll
#include "plugin.h"
#include "common.h"
#include "CTimer.h"
#include "CStreaming.h"
#include "CTaskComplexPlayHandSignalAnim.h"
#define NEW_MODEL_AT_KEY_PRESS
using namespace plugin;
class HandSignals {
public:
HandSignals() {
static int keyPressTime = 0;
static int newPlayerModelId = -1;
static int gangModelIds[] = { MODEL_BALLAS1,
MODEL_BALLAS2,
MODEL_BALLAS3,
MODEL_FAM1,
MODEL_FAM2,
MODEL_FAM3,
MODEL_LSV1,
MODEL_LSV2,
MODEL_LSV3,
MODEL_VLA1,
MODEL_VLA2,
MODEL_VLA3 };
Events::gameProcessEvent += [] {
CPed *playa = FindPlayerPed();
if (playa && playa->IsAlive() && CTimer::m_snTimeInMilliseconds - keyPressTime > 500) {
int animationId = -1;
if (KeyPressed(0x31)) // 1
animationId = 320;
else if (KeyPressed(0x32)) // 2
animationId = 321;
else if (KeyPressed(0x33)) // 3
animationId = 322;
else if (KeyPressed(0x34)) // 4
animationId = 323;
else if (KeyPressed(0x35)) // 5
animationId = 324;
if (animationId != -1) {
keyPressTime = CTimer::m_snTimeInMilliseconds;
#ifndef NEW_MODEL_AT_KEY_PRESS
if (newPlayerModelId == -1)
#endif
newPlayerModelId = gangModelIds[rand() % 12];
if (playa->m_nModelIndex != newPlayerModelId) {
CStreaming::RequestModel(newPlayerModelId, 2);
CStreaming::LoadAllRequestedModels(false);
unsigned int savedAnimGroup = playa->m_nAnimGroup;
playa->DeleteRwObject();
playa->m_nModelIndex = -1;
playa->SetModelIndex(newPlayerModelId);
playa->m_nAnimGroup = savedAnimGroup;
CStreaming::SetModelIsDeletable(newPlayerModelId);
}
playa->m_pIntelligence->m_TaskMgr.SetTaskSecondary(new CTaskComplexPlayHandSignalAnim(animationId, 4.0f), 4);
}
}
};
}
} handSignals;
Конкретнее можно?Как подключить проект в Microsoft Visual Studio 2017?
Я скачал архив с проектом для разработчиков. Как его подключить чтобы компилировались файлы .sf?Конкретнее можно?
.sln файл открывайЯ скачал архив с проектом для разработчиков. Как его подключить чтобы компилировались файлы .sf?
Посмотри все гайды по SF API в этом разделе.Скиньте полный код который выводит текст в чат на sf
SF->getSAMP()->getChat()->AddChatMessage( -1, "Text" );
Ты должен реализовать в библиотеке все интерфейсы оригинально библиотеки и пробрасывать их. Это тебе не Linux, что бы все так просто было с прокси-либойЗдарова, мужики.
Пишу dll d3d9, которое будет подгружать основной d3d9.dll от майкрософт. Только одна проблема.... Крашит при входе. Что делать, чтобы всё заработало?
C++:#include <Windows.h> #include <process.h> #include <iostream> #include <string.h> #include <stdio.h> void __cdecl MainThread(void *pArg) { while (true) { Sleep(10); if (GetAsyncKeyState(VK_NUMPAD1)) { keybd_event('n', 0, 0, 0); keybd_event('n', 0, KEYEVENTF_KEYUP, 0); } } } BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID lpvReserved) { if (fdwReason == DLL_PROCESS_ATTACH) { LoadLibrary("C:\\Windows\\System32\\d3d9.dll"); _beginthread(MainThread, NULL, nullptr); } return TRUE; }
Ошибка:
Код:Серьезность Код Описание Строка Состояние подавления Предупреждение MSB8004 каталог Output заканчивается не косой чертой. Этот экземпляр сборки добавит косую черту, поскольку она необходима для правильного определения каталога Output. 377