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

Musaigen

abobusnik
Проверенный
1,583
1,302
Посмотреть вложение 152702
Стандартный код из SampFuncs 5.4.1
Не понимаю в чём ошибка

C++:
#include <Windows.h>
#include "main.h"

SAMPFUNCS* SF = new SAMPFUNCS();

void __stdcall mainloop()
{
    static bool initialized = false;
    if (!initialized)
    {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
        {
            initialized = true;
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "SAMPFUNCS Plugin loaded.");
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}
В патхе прописан?
Приветствую, товарищи. Подскажите пожалуйста, хочу проверить, находится ли пользователь в очереди. Для этого получаю Gamestate(0xC8D4C0), но кроме как 9 ничего не меняется. Есть ли другой способ проверить, находится ли пользователь в очереди на подключение?

C++:
enum Gamestate
{
    GAMESTATE_WAIT_CONNECT = 9,
    GAMESTATE_CONNECTING = 13,
    GAMESTATE_AWAIT_JOIN = 15,
    GAMESTATE_CONNECTED = 14,
    GAMESTATE_RESTARTING = 18
};
Зачем ты сверяешь игровой адресс со значениями состоянии подключения в SA:MP?
 

!Sam#0235

Активный
122
40
How I can write this in c++? I took it from one .lua script.
Lua:
function setHealthColor(hpHigh, hpLow)
     local samp = getModuleHandle("samp.dll")
     memory.setuint32(samp + 0x68B0C, hpHigh, true) -- полная полоска хп
     memory.setuint32(samp + 0x68B33, hpLow, true) -- задний фон
end
Lua:
setHealthColor(0xFFFFFFFF, 0xFF000000)
everything i tried doesn't work for me.
 

F0RQU1N and

Известный
1,310
494
How I can write this in c++? I took it from one .lua script.
Lua:
function setHealthColor(hpHigh, hpLow)
     local samp = getModuleHandle("samp.dll")
     memory.setuint32(samp + 0x68B0C, hpHigh, true) -- полная полоска хп
     memory.setuint32(samp + 0x68B33, hpLow, true) -- задний фон
end
Lua:
setHealthColor(0xFFFFFFFF, 0xFF000000)
everything i tried doesn't work for me.
Вероятно, ты не снял VirtualProtect с памяти
 

CleanLegend

Известный
Всефорумный модератор
476
928
How I can write this in c++? I took it from one .lua script.
Lua:
function setHealthColor(hpHigh, hpLow)
     local samp = getModuleHandle("samp.dll")
     memory.setuint32(samp + 0x68B0C, hpHigh, true) -- полная полоска хп
     memory.setuint32(samp + 0x68B33, hpLow, true) -- задний фон
end
Lua:
setHealthColor(0xFFFFFFFF, 0xFF000000)
everything i tried doesn't work for me.
C++:
DWORD samp = GetModuleHandle("samp.dll");
*(DWORD*)(samp + 0x68B0C) = hpHigh;
*(DWORD*)(samp + 0x68B33) = hpLow;
 
  • Нравится
Реакции: legendabrn

horacy

Известный
102
92
Как добавить в проект string compressor? Я добавил файлы, необходимые для использования stringcompressor, включил stringc ompressor в main.h, а затем использовал эту функцию для декодирования текста из диалога, но выдает ошибку DecodeString"syntax error: identifier 'BitStream'".
fix:
   case RPC_ShowDialog:
        {
            traceLastFunc("RPC_ShowDialog");

                //UINT16 wDialogID, UINT8 bDialogStyle, UINT8 bTitleLength, char[] szTitle, UINT8 bButton1Len, char[] szButton1, UINT8 bButton2Len, char[] szButton2, CSTRING szInfo
        
                BitStream    bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
                WORD dialogId;
                uint8_t style, titleLen, button1Len, button2Len;
                char title[257], button1[257], button2[257], text[4096];
        
                bsData.Read(dialogId);
                bsData.Read(style);
                bsData.Read(titleLen);
                bsData.Read(title, titleLen);
                title[titleLen] = '\0';
                bsData.Read(button1Len);
                bsData.Read(button1, button1Len);
                button1[button1Len] = '\0';
                bsData.Read(button2Len);
                bsData.Read(button2, button2Len);
                button2[button2Len] = '\0';
                bsData.Write(0);
                bsData.Read(text);
                text[0] = '\0';
                stringCompressor->DecodeString(text, 4096, &bsData);
            
                addMessageToChatWindow("Decoded: %s ",text);
        }
 
Последнее редактирование:

Daurin

Потрачен
10
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Всем привет,какую величину хранит Magnitude?
1655562877361.png
 

MeG@LaDo[N] ^_^

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

horacy

Известный
102
92
Как добавить в проект string compressor? Я добавил файлы, необходимые для использования stringcompressor, включил stringc ompressor в main.h, а затем использовал эту функцию для декодирования текста из диалога, но выдает ошибку DecodeString"syntax error: identifier 'BitStream'".
C++:
                BitStream    bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
                WORD dialogId;
                uint8_t style, titleLen, button1Len, button2Len, textLen;
                char title[257], button1[257], button2[257], text[4096];

                bsData.Read(dialogId);
                bsData.Read(style);
                bsData.Read(titleLen);
                bsData.Read(title, titleLen);
                title[titleLen] = '\0';
                bsData.Read(button1Len);
                bsData.Read(button1, button1Len);
                button1[button1Len] = '\0';
                bsData.Read(button2Len);
                bsData.Read(button2, button2Len);
                button2[button2Len] = '\0';

                stringCompressor->DecodeString(text, 4096, &bsData);
                bsData.Read(textLen);
                bsData.Read(text, textLen);
                text[textLen] = '\0';
можно ли исправить эти ошибки?
error.jpg
 

Daurin

Потрачен
10
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
а загуглить религия не позволяет?
нету инфы,сам не найдешь в инете,если найдешь спасибо.

Добрый день,пытался найти инфу в инете но ничего не нашел, как проверить то что машина без водителя и пассажира? По айди машины
 
Последнее редактирование:
  • Bug
Реакции: MeG@LaDo[N] ^_^

al3x_

Известный
130
1,044
Добрый день,пытался найти инфу в инете но ничего не нашел, как проверить то что машина без водителя и пассажира? По айди машины
C++:
bool isCarEmpty(std::uint16_t id) {
    auto veh{ pGTA_Vehicle[id] };
    for (std::uint8_t i{}; i < veh->m_nMaxPassengers; i++) {
        if (veh->passengers[i] != nullptr) {
            return false;
        }
    }
    return true;
}
возможно можно лучше
 
  • Влюблен
Реакции: MeG@LaDo[N] ^_^