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

killian228

Потрачен
12
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как сделать так, чтобы персонаж всегда стоял как на поверхности? Делал так не работает:
C++:
*reinterpret_cast<bool*>(0xB6F5F0 + 0x46C) = 3;
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,808
Как сделать так, чтобы персонаж всегда стоял как на поверхности? Делал так не работает:
C++:
*reinterpret_cast<bool*>(0xB6F5F0 + 0x46C) = 3;

Если хочется прям по адресам:

C++:
std::uint8_t* ped_ptr = FindPlayerPed(-1); // *reinterpret_cast<std::uint8_t**>(0xB6F5F0);

// чтобы выставить
*(ped_ptr + 0x46C) |= 0b11;
*(ped_ptr + 0x40) |= 0b10;

// чтобы убрать
*(ped_ptr + 0x46C) &= ~0b11;
*(ped_ptr + 0x40) &= ~0b10;
 

killian228

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

C++:
rakhook::on_receive_rpc += [](unsigned char& id, RakNet::BitStream*&& bs) -> bool {
        if (RakNetns) {
            if (id == 138) {
                int PlayerId;
                int Reason;
                bs->Read(PlayerId);
                bs->Read(Reason);
               
                char Buffer[128];
                rakhook::emul_rpc(138, *bs); // эмуляция RPC.
                if (Reason == 0) {
                    sprintf(Buffer, xorstr("%s[%d] Cause left the server: Crash"), g_SAMP->GetPlayerPool()->GetName(PlayerId), PlayerId);
                }
                if (Reason == 1) {
                    sprintf(Buffer, xorstr("%s[%d] Cause left the server: /q"), g_SAMP->GetPlayerPool()->GetName(PlayerId), PlayerId);
                }
                if (Reason == 2) {
                    sprintf(Buffer, xorstr("%s[%d] Cause left the server: Kick/Ban"), g_SAMP->GetPlayerPool()->GetName(PlayerId), PlayerId);
                }
                add_chat_message(-1, Buffer);
            }
        }
        return true;
    };
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
При отправке 138 rpc он читает ид игрока и причину выхода и выводит в чат, но получает неправильный ид игрока. Что не так?

C++:
rakhook::on_receive_rpc += [](unsigned char& id, RakNet::BitStream*&& bs) -> bool {
        if (RakNetns) {
            if (id == 138) {
                int PlayerId;
                int Reason;
                bs->Read(PlayerId);
                bs->Read(Reason);
             
                char Buffer[128];
                rakhook::emul_rpc(138, *bs); // эмуляция RPC.
                if (Reason == 0) {
                    sprintf(Buffer, xorstr("%s[%d] Cause left the server: Crash"), g_SAMP->GetPlayerPool()->GetName(PlayerId), PlayerId);
                }
                if (Reason == 1) {
                    sprintf(Buffer, xorstr("%s[%d] Cause left the server: /q"), g_SAMP->GetPlayerPool()->GetName(PlayerId), PlayerId);
                }
                if (Reason == 2) {
                    sprintf(Buffer, xorstr("%s[%d] Cause left the server: Kick/Ban"), g_SAMP->GetPlayerPool()->GetName(PlayerId), PlayerId);
                }
                add_chat_message(-1, Buffer);
            }
        }
        return true;
    };
Parameters: UINT16 wPlayerID, UINT8 reason
а ты все как int читаешь.
 

Ltall

Потрачен
14
6
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Последнее редактирование:
  • Злость
  • Нравится
Реакции: kizn и Savchik Blazer

Ltall

Потрачен
14
6
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как можно отправить сообщения в чат по кнопке не используя дополнительный библиотек? asi
C++:
struct c_chat* g_chat{ nullptr };
uintptr_t base_address{ 0 };

unsigned long get_address(uintptr_t offset)
{
    return base_address + offset;
}

void initialize()
{
    base_address = reinterpret_cast<uintptr_t>(GetModuleHandleA(xorstr("samp.dll")));
    g_chat = *reinterpret_cast<struct c_chat**>(get_address(0x26E8C8));
}

void add_chat_message(u_long color, const char* szText)
{
    ((void(__thiscall*)(c_chat*, unsigned long, const char*))get_address(0x679F0))(g_chat, color, szText);
}
void function()
{
    if (GetAsyncKeyState('key'))
    {

        initialize()

        add_chat_message(-1, "text")
     }
}
 
Последнее редактирование:

sqwwexx

Известный
64
1
хочу задать легкий вопрос, если я занес в переменную какую либо строчку, допустим BLASTHACK FORUM, как мне проверить, если переменная имеет BLASTHACK, то выполнять одно, если не имеет то другое
 

F0RQU1N and

Известный
1,309
498
хочу задать легкий вопрос, если я занес в переменную какую либо строчку, допустим BLASTHACK FORUM, как мне проверить, если переменная имеет BLASTHACK, то выполнять одно, если не имеет то другое
гуглом надо тебе бы научится пользвоватся, std::string::find или strstr используй