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

CleanLegend

Известный
Всефорумный модератор
481
939
приветствую всех.
можете подсказать почему пропадают ники и хп бар игроков? так же лейблы. в cr-mp
все что я нарыл, это то что при показе imgui вся эта лабуда случается.
без показа imgui все в норме, при открытии меню или показа боттом бара все пропадает.
p.s исходники слонобойки
Получи device по другому
ну это особенности хука
скорее всего он как и я хукает EndScene
если ты юзаешь сурсы его то ты тут ничего не исправишь))
Тут проблема не том, что хукаешь, а как ты получаешь device.
 
  • Нравится
Реакции: mazec0de

SR_team

like pancake
BH Team
4,815
6,514
приветствую всех.
можете подсказать почему пропадают ники и хп бар игроков? так же лейблы. в cr-mp
все что я нарыл, это то что при показе imgui вся эта лабуда случается.
без показа imgui все в норме, при открытии меню или показа боттом бара все пропадает.
p.s исходники слонобойки
потому что исходники слонобойки. На гите в оффициальной репе ImGui все исправленно и ничего не пропадает.
 

qwintty

Новичок
26
1
IsInRangeOf(*xpos, *ypos, x, y, radius))
GetfAngleByPos(*xpos, *ypos, x, y);

Помогите найти определения , хочу вырезать функции.Спасибо заранее.
 

kawa operand

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

kawa operand

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

qwintty

Новичок
26
1
Подскажите пожалуйста , где хотя бы найти информацию по этим функциям.
IsInRangeOf(*xpos, *ypos, x, y, radius))
GetfAngleByPos(*xpos, *ypos, x, y);
 

CleanLegend

Известный
Всефорумный модератор
481
939
Подскажите пожалуйста , где хотя бы найти информацию по этим функциям.
IsInRangeOf(*xpos, *ypos, x, y, radius))
GetfAngleByPos(*xpos, *ypos, x, y);
Функция может иметь разные действия, если ты хочешь прям повторить эту функцию, то нужно искать там, где ты её взял.
Могу посоветовать аналог, возможно подойдет - Информация - [SF] Полезные функции(https://blast.hk/threads/10970/#post-124093)
насчет углов, посмотри plugin от SR_team - AsiPlugin(https://git.prime-hack.net/SR_team/AsiPlugin)
И на будущее, не создавай темы по каждому вопросу, достаточно написать вопрос в эту тему.
 

BlackKnigga

Известный
BH Team
922
448
приветствую всех.
можете подсказать почему пропадают ники и хп бар игроков? так же лейблы. в cr-mp
все что я нарыл, это то что при показе imgui вся эта лабуда случается.
без показа imgui все в норме, при открытии меню или показа боттом бара все пропадает.
p.s исходники слонобойки
Была такая штука, неверно сохранялись\восстанавливались стейты девайса. В последнем имгуи таких проблем нет.
 
  • Нравится
Реакции: mazec0de

C&J

Известный
41
22
Всем хай,использую хук на HandleRPCPacketFunc в двух плагинах и получается,что он работает то в одном плагине,то в другом.
C++:
#define SAMP_HOOKENTER_HANDLE_RPC                    0x3743D
#define SAMP_HOOKENTER_HANDLE_RPC2                    0x373C9

#define SAMP_HOOKEXIT_HANDLE_RPC                    0x37443
#define SAMP_HOOKEXIT_HANDLE_RPC2                    0x37451

void HandleRPCPacketFunc(unsigned char id, RPCParameters *rpcParams, void(*callback) (RPCParameters *))
{
    if (rpcParams != nullptr && rpcParams->numberOfBitsOfData >= 8)
    {
        BitStream    bsData(rpcParams->input, rpcParams->numberOfBitsOfData / 8, false);
        switch (id)
        {
            case  RPC_DeathMessage:
            {
                pSAMP->addMessageToChat(-1, "plugin ONE");
                int16_t        plaerid, killerid;
                int8_t            resaon;
            
                bsData.ResetReadPointer();
                bsData.Read(killerid);
                bsData.Read(plaerid);
                bsData.Read(resaon);
                break;
            }

        }
    }
    callback(rpcParams);
}
void _declspec (naked) hook_handle_rpc_packet(void)
{
    static RPCParameters *pRPCParams = nullptr;
    static RPCNode *pRPCNode = nullptr;
    static DWORD dwTmp = 0;

    __asm pushad;
    __asm mov pRPCParams, eax;
    __asm mov pRPCNode, edi;

    HandleRPCPacketFunc(pRPCNode->uniqueIdentifier, pRPCParams, pRPCNode->staticFunctionPointer);
    dwTmp = pSAMP->getSAMPAddr() + SAMP_HOOKEXIT_HANDLE_RPC;

    __asm popad;
    __asm add esp, 4
    __asm jmp dwTmp;
}
void _declspec (naked) hook_handle_rpc_packet2(void)
{
    static RPCParameters *pRPCParams = nullptr;
    static RPCNode *pRPCNode = nullptr;
    static DWORD dwTmp = 0;

    __asm pushad;
    __asm mov pRPCParams, ecx;
    __asm mov pRPCNode, edi;

    HandleRPCPacketFunc(pRPCNode->uniqueIdentifier, pRPCParams, pRPCNode->staticFunctionPointer);
    dwTmp = pSAMP->getSAMPAddr() + SAMP_HOOKEXIT_HANDLE_RPC2;

    __asm popad;
    __asm jmp dwTmp;
}



void InstallAllHooks()
{
    static int    iSAMPHooksInstalled;
    if (!iSAMPHooksInstalled)
    {
        if (pSAMP->getInfo() == NULL)
            return;
/*
https://github.com/sr-tream/UniLib/blob/master/UniLib/CHooks.hpp
*/
        HookRPC1 = new CHookJmp(pSAMP->getSAMPAddr() + SAMP_HOOKENTER_HANDLE_RPC, hook_handle_rpc_packet, 6); //
        HookRPC2 = new CHookJmp(pSAMP->getSAMPAddr() + SAMP_HOOKENTER_HANDLE_RPC2, hook_handle_rpc_packet2, 8);
        iSAMPHooksInstalled = 1;
    }


}
у второго плагина код один и тот же,за исключением другого RPC.
Я понимаю,что идёт конфликт хуков,но как его исправить?
 
Последнее редактирование: