Показать сообщение отдельно

  #3  
Старый 22.03.2022, 11:46
Ya Zaregalsya
Постоянный
Регистрация: 29.05.2017
Сообщений: 394
С нами: 4714653

Репутация: 98
По умолчанию

Цитата:
Сообщение от Yayachana)  

Через RPC не пробовал эмулировать, но при помощи перехвата пакета, всё работает

123:





Код:
bool CALLBACK anim(stRakNetHookParams* params)
{
    if (params->packetId == PacketEnumeration::ID_PLAYER_SYNC)
    {
        char buf[128];
        stOnFootData data;
        memset(&data, 0, sizeof(stOnFootData));
        byte packet;

        params->bitStream->ResetReadPointer();
        params->bitStream->Read(packet);
        params->bitStream->Read((PCHAR)&data, sizeof(stOnFootData));
        params->bitStream->ResetReadPointer();

        data.byteSpecialAction = ;
        data.sCurrentAnimationID = ;
        data.sAnimFlags = ;

        //sprintf_s(buf, "SpecAction: %d || AnimID: %d || AnimFlags: %d", data.byteSpecialAction, data.sCurrentAnimationID, data.sAnimFlags);
        //SF->getSAMP()->getChat()->AddChatMessage(-1, buf);

        params->bitStream->ResetWritePointer();
        params->bitStream->Write(packet);
        params->bitStream->Write((PCHAR)&data, sizeof(stOnFootData));
    };

    return true;
};


В mainloop -> SF->getRakNet()->registerRakNetCallback(RakNetScriptHookType::RAKH OOK_TYPE_OUTCOMING_PACKET, anim);
Задача состоит в том, чтобы применить анимацию к локальному игроку так, чтобы эту анимку было видно у пользователя. Ты предлагаешь просто отправить фэйк синхру, а её будут видеть только другие игроки.
 
Ответить с цитированием