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

Musaigen

abobusnik
Проверенный
1,582
1,302
Есть функция для конвертации игровых координат в экранные в собе?
 

Rjx13

Известный
Проверенный
224
160
Есть функция для конвертации игровых координат в экранные в собе?
Посиди потыкай. Авось оно
Код:
\src\game_sa\CHudSA.cpp - CHudSA::CalcScreenCoors (Line 130)
\src\proxyIDirect3DDevice9.cpp - CalcScreenCoors (Line 97)
\src\proxyIDirect3DDevice9.cpp - CalcWorldCoors (Line 122)
 
  • Нравится
Реакции: ШPEK

Stiopko

Известный
Проверенный
307
218
Почему возникают эти ошибки?

34550


везде где я использую имгуи сверху файла я прописал

C++:
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
 

CleanLegend

Известный
Всефорумный модератор
476
928
Не, нужно как в sf SF->getGame()->convertGameCoordsToWindow
Он тебе всё верно скинул
Почему возникают эти ошибки?

Посмотреть вложение 34550

везде где я использую имгуи сверху файла я прописал

C++:
#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
Не правильно подключил инклуды, посмотри примеры тут:
 
  • Нравится
Реакции: Stiopko

Stiopko

Известный
Проверенный
307
218
Он тебе всё верно скинул

Не правильно подключил инклуды, посмотри примеры тут:

я сравнил в роде все правильно

C++:
#pragma once
#ifndef _STDLLPROGECT_H_
#define _STDLLPROGECT_H_

#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
#include <process.h>
#include "stPlugin.h"
#include "../Hook/d3dhook.h"

#include <dinput.h>
#include <tchar.h>

#include "../ImGui/imgui.h"
#include "../ImGui/imgui_impl_win32.h"
#include "../ImGui/imgui_impl_dx9.h"
#include "../ImGui/imgui_stdlib.h"
#include "../ImGui/imgui_internal.h"

typedef void(_MyEndScene)(IDirect3DDevice9*);

typedef void(_MyReset)(IDirect3DDevice9*, D3DPRESENT_PARAMETERS*);

class stDLLProject {
    // helpThread
    BOOL threadState = TRUE;
    HANDLE mainThread;

    // mainThread
    LONG PrevWndFunc = NULL;

    Plugin* pPlug = nullptr;

    // D3D9 Hook
    static _EndScene* oEndScene;
    static _Reset* oReset;
    static _MyEndScene* endScene;
    static _MyReset* reset;

    static HRESULT WINAPI myReset(IDirect3DDevice9* m_pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
    static HRESULT WINAPI myEndScene(IDirect3DDevice9* m_pDevice);
public:
    // SAMP window
    HWND m_pGameWindow = NULL;

    // D3D9
    IDirect3DDevice9* device = nullptr;

    stDLLProject(_beginthread_proc_type func);

    // Initialization only in ather thread
    void Init(const uint32_t& timeout = 100);
    void InitHookGameDestructor(void(__stdcall destructor)(void));
    void InitD3D9();
    void InitD3D9hook(_MyEndScene* eendScene, _MyReset* rreset);
    void InitSAMPWindow(const uint32_t& timeout = 100);
    void InitImGUI();
    void InitilizingPlugin();

    Plugin* GetPlugin() const;
    BOOL GetThreadState() const;

    ~stDLLProject();
};

#endif // _STDLLPROGECT_H_

d3dhook.h

C++:
#pragma once
#ifndef _D3DHOOK_H_
#define _D3DHOOK_H_

#include <windows.h>
#include <d3d9.h>
#define DIRECTINPUT_VERSION 0x0800
#include <d3dx9.h>


typedef HRESULT(WINAPI _EndScene)(IDirect3DDevice9*);
typedef HRESULT(WINAPI _Reset)(IDirect3DDevice9*, D3DPRESENT_PARAMETERS*);

void InitHook(IDirect3DDevice9* device, _EndScene* myEndScene, _Reset* myReset, _EndScene** _endScene, _Reset** _reset);

#endif // _D3DHOOK_H_
 

_Vine_

Активный
154
57
я сравнил в роде все правильно

C++:
#pragma once
#ifndef _STDLLPROGECT_H_
#define _STDLLPROGECT_H_

#define _SILENCE_STDEXT_HASH_DEPRECATION_WARNINGS 1
#include <process.h>
#include "stPlugin.h"
#include "../Hook/d3dhook.h"

#include <dinput.h>
#include <tchar.h>

#include "../ImGui/imgui.h"
#include "../ImGui/imgui_impl_win32.h"
#include "../ImGui/imgui_impl_dx9.h"
#include "../ImGui/imgui_stdlib.h"
#include "../ImGui/imgui_internal.h"

typedef void(_MyEndScene)(IDirect3DDevice9*);

typedef void(_MyReset)(IDirect3DDevice9*, D3DPRESENT_PARAMETERS*);

class stDLLProject {
    // helpThread
    BOOL threadState = TRUE;
    HANDLE mainThread;

    // mainThread
    LONG PrevWndFunc = NULL;

    Plugin* pPlug = nullptr;

    // D3D9 Hook
    static _EndScene* oEndScene;
    static _Reset* oReset;
    static _MyEndScene* endScene;
    static _MyReset* reset;

    static HRESULT WINAPI myReset(IDirect3DDevice9* m_pDevice, D3DPRESENT_PARAMETERS* pPresentationParameters);
    static HRESULT WINAPI myEndScene(IDirect3DDevice9* m_pDevice);
public:
    // SAMP window
    HWND m_pGameWindow = NULL;

    // D3D9
    IDirect3DDevice9* device = nullptr;

    stDLLProject(_beginthread_proc_type func);

    // Initialization only in ather thread
    void Init(const uint32_t& timeout = 100);
    void InitHookGameDestructor(void(__stdcall destructor)(void));
    void InitD3D9();
    void InitD3D9hook(_MyEndScene* eendScene, _MyReset* rreset);
    void InitSAMPWindow(const uint32_t& timeout = 100);
    void InitImGUI();
    void InitilizingPlugin();

    Plugin* GetPlugin() const;
    BOOL GetThreadState() const;

    ~stDLLProject();
};

#endif // _STDLLPROGECT_H_

d3dhook.h

C++:
#pragma once
#ifndef _D3DHOOK_H_
#define _D3DHOOK_H_

#include <windows.h>
#include <d3d9.h>
#define DIRECTINPUT_VERSION 0x0800
#include <d3dx9.h>


typedef HRESULT(WINAPI _EndScene)(IDirect3DDevice9*);
typedef HRESULT(WINAPI _Reset)(IDirect3DDevice9*, D3DPRESENT_PARAMETERS*);

void InitHook(IDirect3DDevice9* device, _EndScene* myEndScene, _Reset* myReset, _EndScene** _endScene, _Reset** _reset);

#endif // _D3DHOOK_H_
Не добавил .cpp файлы имгуи в проект
 
  • Нравится
Реакции: Stiopko

damag

Женюсь на официантке в моем любимом баре
Проверенный
1,152
1,192
Ку, может кто-то знает, как выглядят эти функи на с++
applyForceToCar
setCarRotationVelocity
addToCarRotationVelocity
 

Stiopko

Известный
Проверенный
307
218
Почему при попытке использовать имгуи все летит сюда

34697


Инициализация

C++:
ImGui::CreateContext();
    ImGui_ImplWin32_Init(GetActiveWindow());
    ImGui_ImplDX9_Init(*(IDirect3DDevice9**)0xC97C28);
 

ALF

Известный
Проверенный
320
537
Почему при попытке использовать имгуи все летит сюда

Посмотреть вложение 34697

Инициализация

C++:
ImGui::CreateContext();
    ImGui_ImplWin32_Init(GetActiveWindow());
    ImGui_ImplDX9_Init(*(IDirect3DDevice9**)0xC97C28);
 
  • Нравится
Реакции: Stiopko

Stiopko

Известный
Проверенный
307
218
Как можно выгрузить аsi, и снять хуки которые я поставил через собейтовский клас CDetour

Вот как я снимаю хуки, но хз правильно ли

C++:
bool RemoveSAMPHook(uint32_t dwFuncOffset, void* origFunc, int iType, int iSize)
{
    if (GetModuleHandle("samp.dll") == NULL) return false;
    uint32_t g_dwSAMP_Addr = (uint32_t)GetModuleHandle("samp.dll");
    CDetour api;

    return api.Remove((uint8_t*)((uint32_t)g_dwSAMP_Addr) + dwFuncOffset, (uint8_t*)origFunc, iType, iSize);
}

RemoveSAMPHook(SAMP_HOOKENTER_CNETGAME_DESTR, oDestrFuncs[0], 3, 5)
RemoveSAMPHook(SAMP_HOOKENTER_CNETGAME_DESTR2, oDestrFuncs[1], 3, 5)
И еще, что я делаю не так, что при инициализации окна сампа то FindWindowA возвращает всегда NULL

C++:
while (m_pGameWindow == NULL) {
        m_pGameWindow = FindWindowA(NULL, "GTA:SA:MP");
        Sleep(timeout);
    }
 
Последнее редактирование:

Musaigen

abobusnik
Проверенный
1,582
1,302
Есть файл test.h, есть папка game, в ней файл test.cpp, вопрос, как сделать так чтобы я могу инклуднуть файл test.h в test.cpp именно вот так #include <test.h>?
 

index

Известный
126
82
Есть файл test.h, есть папка game, в ней файл test.cpp, вопрос, как сделать так чтобы я могу инклуднуть файл test.h в test.cpp именно вот так #include <test.h>?
Чтобы именно так - они должны лежать в одной директории. В твоем случае можно заинклудить так: #include <..\test.h>

Upd: подзабыл. Парень ниже описал верный способ без "..\".
 
Последнее редактирование:
  • Нравится
Реакции: ШPEK

CarLCas

Известный
161
118
Есть файл test.h, есть папка game, в ней файл test.cpp, вопрос, как сделать так чтобы я могу инклуднуть файл test.h в test.cpp именно вот так #include <test.h>?
Свойства проекта > Каталоги VC++ > Каталоги включения. Добавляешь путь до папки где лежит test.h
 
  • Нравится
Реакции: Musaigen и index