CR:MP ASI Amazing amazing++

nezperce

Новичок
5
0
Описание

Небольшой плагин для amazing online, который делает геймплей на сервере приятней ;)

Использование

В основном, функции забинжены на цифры от 1 до 5.

1 -> отправляет в чат /anim 69,
2 -> отправляет в чат /drugs,
3 -> использует первый слот инвентаря,
4 -> сжимает машины,
5 -> аниафк (звонкий сигнал обозначает включение функции, наоборот - выключение),

Команды

/st (0-24) -> меняет время
/sw (0-255) -> меняет погоду
/fd (0-3600) -> меняет дальность прорисовки

Прочие фишки

Плагин принудительно отключает светофоры, за которые теперь не приходят штрафы, аналогично с встречными полосами,
так же, отключен урон от падения.

p.s в плагине присутствует автопромокод, кого это не устраивает, приложил исходники ниже

source

Обзор на плагин

Дайте мне отдельно сжатие текстур .asi пжпжпж
 

waparabka

Известный
Автор темы
105
155
Какая строчка кода отвечает за антипадение?
53 - 70


А через чего писал asi. И можно сделать первые 3 цифры и изменить название?
visual studio 2022

Дайте мне отдельно сжатие текстур .asi пжпжпж
*reinterpret_cast<bool*>(0x52C9EE) ^= true;
 
Последнее редактирование:

Squizzy1337

Новичок
12
1
в какую папку кидать скрипт? (я понял что в амазинг рп но мне просто поясни в какую папку игры закинуть и как запустить)
 

waparabka

Известный
Автор темы
105
155

Squizzy1337

Новичок
12
1
если не сложно можешь снять видео тутор как инжектить? пожалуйста
 

flupiflufi

Новичок
16
3
Можете подсказать как можно по функции на 3 кнопку, примерно также сделать на 2 и 3 слот и так далее, просто новичок в этом. Просто нашёл часть кода которую за это отвечает, а дальше незнаю что.

C++:
            if (w_param == 0x33) {

                RakNet::BitStream* bs = new RakNet::BitStream();

                std::string packet_data { };

                packet_data.push_back(0x0E);

                packet_data.push_back(cef_app_set_mode);
                packet_data.push_back(strange_byte);

                packet_data.push_back(0x0);
                packet_data.push_back(0x0);
                
                packet_data.push_back(strlen("cef_inv_item_action"));
                packet_data.push_back(0x0);
                packet_data.append("cef_inv_item_action");

                std::vector<uint8_t> bytes { 0x28, 0x00, 0x85, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x01, 0xA4, 0x61, 0x72, 0x65, 0x61,
                                             0x01, 0xA5, 0x69, 0x6E, 0x64, 0x65, 0x78, 0xC0, 0xA8, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73,
                                             0x65, 0x00, 0xA6, 0x73, 0x6C, 0x6F, 0x74, 0x49, 0x64, 0x06 };

                packet_data.insert(packet_data.end(), std::begin(bytes), std::end(bytes));

                for (const auto p : packet_data)
                    bs->Write(p);
                
                rakhook::send_rpc(252, bs, PacketPriority::HIGH_PRIORITY, PacketReliability::RELIABLE_ORDERED, (char)0, false);

                delete bs;
            }
 

waparabka

Известный
Автор темы
105
155
Можете подсказать как можно по функции на 3 кнопку, примерно также сделать на 2 и 3 слот и так далее, просто новичок в этом. Просто нашёл часть кода которую за это отвечает, а дальше незнаю что.

C++:
            if (w_param == 0x33) {

                RakNet::BitStream* bs = new RakNet::BitStream();

                std::string packet_data { };

                packet_data.push_back(0x0E);

                packet_data.push_back(cef_app_set_mode);
                packet_data.push_back(strange_byte);

                packet_data.push_back(0x0);
                packet_data.push_back(0x0);
              
                packet_data.push_back(strlen("cef_inv_item_action"));
                packet_data.push_back(0x0);
                packet_data.append("cef_inv_item_action");

                std::vector<uint8_t> bytes { 0x28, 0x00, 0x85, 0xA6, 0x61, 0x63, 0x74, 0x69, 0x6F, 0x6E, 0x01, 0xA4, 0x61, 0x72, 0x65, 0x61,
                                             0x01, 0xA5, 0x69, 0x6E, 0x64, 0x65, 0x78, 0xC0, 0xA8, 0x72, 0x65, 0x73, 0x70, 0x6F, 0x6E, 0x73,
                                             0x65, 0x00, 0xA6, 0x73, 0x6C, 0x6F, 0x74, 0x49, 0x64, 0x06 };

                packet_data.insert(packet_data.end(), std::begin(bytes), std::end(bytes));

                for (const auto p : packet_data)
                    bs->Write(p);
              
                rakhook::send_rpc(252, bs, PacketPriority::HIGH_PRIORITY, PacketReliability::RELIABLE_ORDERED, (char)0, false);

                delete bs;
            }
последний элемент в массиве bytes (0x06), следующий слот 0x07, потом 0x08 и так далее
 

Вложения

  • 1726862142889.png
    1726862142889.png
    41.1 KB · Просмотры: 79
Последнее редактирование:
  • Нравится
  • Влюблен
Реакции: Nexter1 и flupiflufi

flupiflufi

Новичок
16
3
последний элемент в массиве bytes (0x06), следующий слот 0x07, потом 0x08 и так далее
Спасибо большое вапарабка! Хотел ещё узнать насчёт той же части, на скрине, как можно сделать, чтобы он не использовал, а нажимал вылить?
1726899124957.png
 

flupiflufi

Новичок
16
3
Можешь скинуть свою версию или сказать как ты скомпилировал пожалуйста
Ну как я понял нужно скачать visual studio и cmake и этой командой в терминале: cmake -B project -A Win32 можешь скомпировать
проект с гитхаба не забудь скачать
 

waparabka

Известный
Автор темы
105
155
Спасибо большое вапарабка! Хотел ещё узнать насчёт той же части, на скрине, как можно сделать, чтобы он не использовал, а нажимал вылить?Посмотреть вложение 252321
28 00 85 A6 61 63 74 69 6F 6E 01 A4 61 72 65 61
01 A5 69 6E 64 65 78 C0 A8 72 65 73 70 6F 6E 73
65 00 A6 73 6C 6F 74 49 64 06

скорее всего за это отвечает байт который я подчеркнул (после action), но это ещё не точно

Как читать байты от других интерфейсов? Я видел ответы по типу Иды, х32 дбг, читать через скрипты. Но как именно?
читал я подобным образом

amazing read cef packet:
if (_id == 252) {
   
    std::vector<uint8_t> bytes { };

    for (int i = 0; i < bs->GetNumberOfBytesUsed(); i++) {

        uint8_t b;
        bs->Read(b);

        bytes.push_back(b);
    }

    std::string packet_data(bytes.begin(), bytes.end());

    c_chat::get()->ref()->add_message(-1, packet_data.c_str());
}

с чат лога копировал считанные байты, потом разбирал пакет на hexed.it, ну либо же любым hex редактором

я ничего не реверсил, это себе дороже. Как прочитаешь пакет побайтово, можешь его подменять/отправлять с нужными тебе значениями
 
Последнее редактирование:
  • Нравится
  • Влюблен
Реакции: Nexter1 и flupiflufi

Maximka Samper

Участник
39
3
Ну как я понял нужно скачать visual studio и cmake и этой командой в терминале: cmake -B project -A Win32 можешь скомпировать
проект с гитхаба не забудь скачать
У меня выдаёт ошибку а в билде толкового проекта нету (.cls/vcsproj) что именно и куда надо кидать чтобы скомпилить через терминал (Я делал через павершел и вышла ошибка а в билде как говорил ничего толкового нету.
p.s. Мб другой терминал юзать, но какой?
 

PECTOPATOP

Новичок
8
0
1726948332349.png

скачал Visual Studio + CMake, прописал дальше эту команду, появилась папка, что дальше делать? Или я что-то не так сделал? Не шарю
 

flupiflufi

Новичок
16
3
Посмотреть вложение 252406
скачал Visual Studio + CMake, прописал дальше эту команду, появилась папка, что дальше делать? Или я что-то не так сделал? Не шарю
Ты не открыл папку, где у тебя код находится скрипта для компилирования он должен примерно так выглядеть твой путь
1726990285659.png


28 00 85 A6 61 63 74 69 6F 6E 01 A4 61 72 65 61
01 A5 69 6E 64 65 78 C0 A8 72 65 73 70 6F 6E 73
65 00 A6 73 6C 6F 74 49 64 06

скорее всего за это отвечает байт который я подчеркнул (после action), но это ещё не точно
Вапарабка спасибо, что помогаешь и отвечаешь, но попытался я там циферки поменять и понял что лучше 01 байт не трогать, поэтому можешь как-то часть кода или как можно сделать чтобы можно было использовать выливание из лейки?
 
Последнее редактирование: