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

Sasiko1

Новичок
24
0
Хочу выводить квадрат по команде, но чёт делаю не правильное укажите на ошибки))
C++:
#include <windows.h>
#include <string>
#include <assert.h>
#include <process.h>

#include "SAMPFUNCS_API.h"
#include "game_api\game_api.h"

using namespace std;

SAMPFUNCS *SF = new SAMPFUNCS();


bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride,
    CONST RGNDATA *pDirtyRegion)
{
    if (SUCCEEDED(SF->getRender()->BeginRender()))
    {
        SF->getRender()->DrawBox(500, 500, 25, 25, D3DCOLOR_ARGB(255, 0, 255, 0));
        SF->getRender()->EndRender();
    };

    return true;
};

void CALLBACK cmd_show_info_player(std::string param)
{
    Present(); // ЧЁТ ДЕЛАЮ НЕ ПРАВИЛЬНО :)
};


void CALLBACK mainloop()
{
    static bool init = false;
    if (!init)
    {
        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present);
        SF->getSAMP()->registerChatCommand("ren", cmd_show_info_player);
    }
}


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;
}
 

Dark_Knight

Me, me and me.
Друг
4,083
2,110
Хочу выводить квадрат по команде, но чёт делаю не правильное укажите на ошибки))
C++:
#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();
bool render = false;


bool CALLBACK Present(CONST RECT *pSourceRect, CONST RECT *pDestRect, HWND hDestWindowOverride,
    CONST RGNDATA *pDirtyRegion) {
    if (SUCCEEDED(SF->getRender()->BeginRender()) && render) {
        SF->getRender()->DrawBox(500, 500, 25, 25, D3DCOLOR_ARGB(255, 0, 255, 0));
        SF->getRender()->EndRender();
    };
    return true;
};

void CALLBACK cmd_show_info_player(std::string param) {
    render = !render;
};


void CALLBACK mainloop() {
    static bool init = false;
    if (!init){
        if (!GAME)
            return;
        if (GAME->GetSystemState() != eSystemState::GS_PLAYING_GAME)
            return;
        if (!SF->getSAMP()->IsInitialized())
            return;
        SF->getRender()->registerD3DCallback(eDirect3DDeviceMethods::D3DMETHOD_PRESENT, Present);
        SF->getSAMP()->registerChatCommand("ren", cmd_show_info_player);
    }
}


BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved) {
    switch (dwReasonForCall) {
        case DLL_PROCESS_ATTACH:
            SF->initPlugin(mainloop, hModule); break;
    }
    return TRUE;
}
 

Ranto

Участник
45
1
Задался таким вопросом, как делают красивые GUI(ЮИ, точно не знаю) для всяких программ, могу пример привести:
1. Лаунчер EpicGames, у них хороший дизайн, моё внимание довольно таки привели.
2. Steam;Origin;Uplay =)
 

iAmerican

Известный
Друг
612
260
Задался таким вопросом, как делают красивые GUI(ЮИ, точно не знаю) для всяких программ, могу пример привести:
1. Лаунчер EpicGames, у них хороший дизайн, моё внимание довольно таки привели.
2. Steam;Origin;Uplay :)
Самописные
 

iAmerican

Известный
Друг
612
260
Задам тупой вопрос, это как? (просто не шарю)
Там сидит целая команда которая пишет интерфейс для этих лаунчеров. Они не брали готовое API.

Исходник - [SF-Plugin] Menu + function(https://blast.hk/threads/12290/) - как пример. Только что ты перечислил у них все гораздо сложнее.
 
  • Нравится
Реакции: Ranto

ALF

Известный
Проверенный
320
539
если ты не можешь скопировать одну функу, то просто забей и иди лучше погуляй)
 

Sasiko1

Новичок
24
0
Как получить ХП?
Пробовал вот так stPassengerData ->byteHealth; не получилось((
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Свое хп?