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

вайега52

Налуашил состояние
Модератор
3,058
3,288
C++:
auto recvfrom = *reinterpret_cast<int (__stdcall**)(                   )>(0x100e542c);
а, видимо я что-то сделал не так при вызове, раз у меня все было также

с чем может быть связан краш игры после подгрузки bass.dll
C++:
HMODULE WINAPI LoadLibraryAHooked(const decltype(LoadLibraryAHook)& hook, _In_ LPCSTR lpLibFileName) {
    HMODULE libraryHandle = hook.get_trampoline()(_In_ lpLibFileName);
   
    if (libraryHandle == NULL)
        return libraryHandle;

    MessageBoxA(NULL, lpLibFileName, "LOAD LIB", MB_OK); // дебагер1337
   
    if (lpLibFileName == "MoonLoader.asi") {      
        setURLDownloadToFileAHook(libraryHandle);
        LoadLibraryAHook.remove();                      
    }

    return libraryHandle;  
}


void initializePlugin() {  
    HMODULE moonHandle = GetModuleHandleA("MoonLoader.asi");
    if (moonHandle != NULL) {
        setURLDownloadToFileAHook(moonHandle);
    } else {
        HMODULE kernelHandle = GetModuleHandleA("kernel32.dll");
        if (kernelHandle != NULL) {          
            LPVOID pvLoadLibrary = GetProcAddress(kernelHandle, "LoadLibraryA");
            if (pvLoadLibrary != NULL) {
                LoadLibraryAHook.set_dest(pvLoadLibrary);
                LoadLibraryAHook.set_cb(&LoadLibraryAHooked);
                LoadLibraryAHook.install();
            }
        }  
    }      
}
upd: Спустя 2 дня понял, что не то соглашение о вызове было....
 
Последнее редактирование:

вайега52

Налуашил состояние
Модератор
3,058
3,288
Есть вмтракклиента, но не совсем понимаю, что делает первый ее метод, в данном случае: sub_10030F40
1695218850715.png

функция, в которую можно перейти спустя несколько оберток:
1695218992072.png

off_100D52E8 - та переменная, которая хранит в себе указатель на функцию из первого скрина
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,757
4,895
Есть вмтракклиента, но не совсем понимаю, что делает первый ее метод, в данном случае: sub_10030F40
Посмотреть вложение 215588
функция, в которую можно перейти спустя несколько оберток:
Посмотреть вложение 215589
off_100D52E8 - та переменная, которая хранит в себе указатель на функцию из первого скрина
виртуальный деструктор
 
  • Нравится
Реакции: вайега52

мистер вселенная

Известный
26
4
всем привет! получаю cped из айди игрока (samp), но при каких-либо манипуляциях с возвращаемым спед - краш. что может быть?
1695299170097.png
 
Последнее редактирование:

ARMOR

God has forsaken us
Модератор
5,060
7,460
( Не актуально )
При вызове опкода 0165: в сампе цвет блипа берется из цвета клиста игрока чей ид укажешь вместо указания HEX цвета. Есть ли возможность менять цвет блипа через HEX цвет вместо клиста?

Решение: Юзать не самповскую функцию вызова опкодов, а игровую, например из Plugin SDK
 
Последнее редактирование:
  • Ха-ха
Реакции: Ya Zaregalsya

Ya Zaregalsya

Известный
393
134
В каких случаях отправляется такой тип буллет синхры?: BULLET_HIT_TYPE_PLAYER_OBJECT (4 id).
 

magnettokarlos

Новичок
15
1
как получить координаты полёта пули? знаю, что в bulletdata есть, как достать правильно подскажите пожалуйста)
 

Ya Zaregalsya

Известный
393
134
При стрельбе в объекты, которые прикреплены на игрока. Те же аксессуары
У них нет коллизии.

как получить координаты полёта пули? знаю, что в bulletdata есть, как достать правильно подскажите пожалуйста)
C++:
struct BulletSyncData
{
    UINT8 Packet_ID;
    UINT8 hit_type;
    UINT16 hit_id;
    float origin_x;
    float origin_y;
    float origin_z;
    float hit_pos_x;
    float hit_pos_y;
    float hit_pos_z;
    float offset_x;
    float offset_y;
    float offset_z;
    UINT8 weapon_id;
};

BulletSyncData bulletSyncData;
UINT16 playerid;
data->bitStream->Read(bulletSyncData.Packet_ID);
data->bitStream->Read(playerid);
data->bitStream->Read(bulletSyncData.hit_type);
data->bitStream->Read(bulletSyncData.hit_id);
data->bitStream->Read(bulletSyncData.origin_x);
data->bitStream->Read(bulletSyncData.origin_y);
data->bitStream->Read(bulletSyncData.origin_z);
data->bitStream->Read(bulletSyncData.hit_pos_x);
data->bitStream->Read(bulletSyncData.hit_pos_y);
data->bitStream->Read(bulletSyncData.hit_pos_z);
data->bitStream->Read(bulletSyncData.offset_x);
data->bitStream->Read(bulletSyncData.offset_y);
data->bitStream->Read(bulletSyncData.offset_z);
data->bitStream->Read(bulletSyncData.weapon_id);
data->bitStream->ResetReadPointer();