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

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,748
4,849
Как можно через sampfuncs/asi достать стандартные координаты камеры на санта мария?
1616614640854.png
 
  • Нравится
Реакции: dekname

waffelo

Новичок
27
7
Доброй ночи братцы. Подскажите как можно увеличить ширину и высоту текста, вызванной
C++:
 if (ImGui::BeginMenuBar()) ImGui::TextUnformatted("Load"), ImGui::EndMenuBar();

Как можно конвертировать rgb в ImVec4
 

Dark_Knight

Me, me and me.
Друг
4,085
2,114
Доброй ночи братцы. Подскажите как можно увеличить ширину и высоту текста, вызванной
C++:
 if (ImGui::BeginMenuBar()) ImGui::TextUnformatted("Load"), ImGui::EndMenuBar();
Ширину никак. Советую собрать и покурить демо версию имгуи. Скачать можно его с офф. репозитория. Собрать там вообще легко.
 

AdCKuY_DpO4uLa

Адский дрочер
Друг
333
729
Как поставить хук на входящие RPC? Такой код крашит
C++:
void HandleRPCPacketFunc(unsigned char id, RPCParameters *rpcParams, void(*callback) (RPCParameters *))
{
    if (rpcParams != nullptr && rpcParams->numberOfBitsOfData >= 8)
    {
        switch (id)
        {
            case 93: {
                pSAMP->addMessageToChat(-1, "chat msg");
                break;
            }
        }
    }
    callback(rpcParams);
}

uint8_t _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->g_SAMPAddr() + 0x37443;

    __asm popad;
    __asm add esp, 4 // overwritten code
    __asm jmp dwTmp;
}


Memory::CreateJump((BYTE*)(pSAMP->g_SAMPAddr() + 0xFF5701), (DWORD)&hook_handle_rpc_packet, 6U);

CreateJump:
C++:
void Memory::CreateJump(BYTE* pAddress, DWORD dwJumpTo, DWORD dwLen)
{
    DWORD dwOldProtect, dwBkup, dwRelAddr;
    VirtualProtect(pAddress, dwLen, PAGE_EXECUTE_READWRITE, &dwOldProtect);
    dwRelAddr = (DWORD)(dwJumpTo - (DWORD)pAddress) - 5;
    *pAddress = 0xE9;
    *((DWORD*)(pAddress + 0x1)) = dwRelAddr;
    for (DWORD x = 0x5; x < dwLen; x++)*(pAddress + x) = 0x90;
    VirtualProtect(pAddress, dwLen, dwOldProtect, &dwBkup);
    return;
}

Уже разобрался. Инициализация такая:
C++:
BYTE *bytes = (BYTE*)"\xFF\x57\x01";
Memory::memcmp_safe((uint8_t *)pSAMP->g_SAMPAddr() + 0x3743D, bytes, 3);
Memory::CreateJump((BYTE*)(pSAMP->g_SAMPAddr() + 0x3743D), (DWORD)&hook_handle_rpc_packet, 6U);
 

waffelo

Новичок
27
7
Добрый вечер, подскажите каким способом можно извлекать из pe файла ресурсы, к примеру dll и дропать её в temp файлы
 

AdCKuY_DpO4uLa

Адский дрочер
Друг
333
729
как получить ид самп игрока через указатель на CPed? использую plugin sdk
 

AdCKuY_DpO4uLa

Адский дрочер
Друг
333
729
хз, мб как-то и связан, CPed же можно по иду получить
C++:
CPed *ped = CPools::GetPed(pSAMP->getPlayers()->pRemotePlayer[playerID]->pPlayerData->pSAMP_Actor->ulGTAEntityHandle);
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,748
4,849
хз, мб как-то и связан, CPed же можно по иду получить
C++:
CPed *ped = CPools::GetPed(pSAMP->getPlayers()->pRemotePlayer[playerID]->pPlayerData->pSAMP_Actor->ulGTAEntityHandle);
потому что самп хранит эту информацию
Гта про самп вообще не знает, просто работает в обычном для себя режиме
 
  • Нравится
Реакции: sc6ut