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

4el0ve4ik

Жыве Беларусь!
Друг
1,525
1,179
При отправке 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

Новичок
10
5
как можно отправить сообщения в чат по кнопке не используя дополнительный библиотек? 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

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

F0RQU1N and

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

MeG@LaDo[N] ^_^

Известный
233
261
насчет анонимных функций,в плане оптимизации они вообще как? Есть смысл их использовать
есть два кода :1.стандарт
1658961880485.png

2.с анонимной функцией
1658961891635.png

и я пошел в иду и увидел что в коде которая юзает анонимную функцию намного больше говна
реверсил без дампа
Анонимная функа:
1658961936962.png

Второй вариант:
1658961963123.png

и у меня вопрос,что же лучше использовать для маленьких функций?
 

F0RQU1N and

Известный
1,071
351
насчет анонимных функций,в плане оптимизации они вообще как? Есть смысл их использовать
есть два кода :1.стандарт
Посмотреть вложение 159726
2.с анонимной функцией
Посмотреть вложение 159727
и я пошел в иду и увидел что в коде которая юзает анонимную функцию намного больше говна
реверсил без дампа
Анонимная функа:
Посмотреть вложение 159728
Второй вариант:
Посмотреть вложение 159729
и у меня вопрос,что же лучше использовать для маленьких функций?
ну как видишь второй вариант а ещё у тебя /Gs зачем то стоит