Вопрос Хп бары, postreceivednetmessage

Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
что я делаю не так? (крашит после вызова SendNetMessage)
Посмотреть вложение 223005
C++:
const auto net_message = CNetworkMessages::GetInterface( )->FindNetworkMessage( "CDOTAClientMsg_CameraZoomAmount" );
CDOTAClientMsg_CameraZoomAmount message;
message.set_zoom_amount( static_cast<float>(global::camera_distance) );

hook::original::fpSendNetMessage( cheat_data.current_net_chan, net_message, &message, BUF_DEFAULT );
(net_message:Посмотреть вложение 223003, current_net_chan:
Посмотреть вложение 223004- всё валидное, в реклассе проверил)
я думаю, что надо что-то ещё там заполнить, но не знаю что.

и почему в CDOTAUserMsg_ChatMessage и CDOTAClientMsg_ChatMessage приходят какие-то зашифрованные строки, и как их расшифровать?
нетчан правильный? их штуки 2-3 бывает удостоверься что ты правильный получил
индекс перепроверь
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
нетчан правильный? их штуки 2-3 бывает удостоверься что ты правильный получил
индекс перепроверь
Да, 100% верный, т.к. я в createnetchannel получаю его, и как только он меняется, сразу же хуки переставляются и current_net_chan перезаписывается.
1664696156441.png
Индекс тоже верный, т.к. в хуке нормальная инфа приходит.


Ещё я щас понял, что я всё таки не ту ToString вызывал, и 2 индекс точно:
1664696246002.png

Но энивей крашит почему-то, как лвсс делаю. Дотой ToString также не вызывается(бпшнул в дебаггере и проверил)
Пожалуйста, авторизуйтесь для просмотра ссылки.

пиздец какой-то вообщем, вроде все верно делаю, а нихуя.

UPD: Ебанутся, ToString вот так заработал:

C++:
char b[128]{ '\0' };
std::cout << rdx->protobufBinding->ToString( r8, &b );
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Да, 100% верный, т.к. я в createnetchannel получаю его, и как только он меняется, сразу же хуки переставляются и current_net_chan перезаписывается.
Посмотреть вложение 223011
Индекс тоже верный, т.к. в хуке нормальная инфа приходит.


Ещё я щас понял, что я всё таки не ту ToString вызывал, и 2 индекс точно:
Посмотреть вложение 223012

Но энивей крашит почему-то, как лвсс делаю. Дотой ToString также не вызывается(бпшнул в дебаггере и проверил)
Пожалуйста, авторизуйтесь для просмотра ссылки.

пиздец какой-то вообщем, вроде все верно делаю, а нихуя.
попробуй другие сообщения поотправлять какие-нибудь
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
попробуй другие сообщения поотправлять какие-нибудь
Паузу получилось поставить.
C++:
const auto net_message = CNetworkMessages::GetInterface( )->FindNetworkMessage( "CDOTAClientMsg_Pause" );
CDOTAClientMsg_Pause message;

hook::original::fpSendNetMessage( cheat_data.current_net_chan, net_message, &message, BUF_DEFAULT );

Но установить значение квару не получается
1664702760483.png
 
Последнее редактирование:
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
Вообщем посмотрел другие пакеты, похоже, что только пакеты без данных отправлять можно, как пауза.
Краш с ExecuteOrders получаю тоже

C++:
const auto net_message = CNetworkMessages::GetInterface( )->FindNetworkMessage( "CDOTAClientMsg_ExecuteOrders" );
CDOTAClientMsg_ExecuteOrders message;
CDOTAMsg_UnitOrder* order = message.add_orders( );
const auto vec = reinterpret_cast<CDOTA_BaseNPC*>(global::g_LocalEntity)->GetAbsOrigin( );
CMsgVector* vec2send = new CMsgVector;
vec2send->set_x( vec.x+155 );
vec2send->set_y( vec.y+100 );
vec2send->set_z( vec.z );

order->set_order_type( DOTA_UNIT_ORDER_MOVE_TO_POSITION );
order->set_sequence_number( 2 );
order->set_allocated_position( vec2send );
order->set_units( global::g_LocalPlayerIndex, 0 );

hook::original::fpSendNetMessage( cheat_data.current_net_chan, net_message, &message, BUF_DEFAULT );
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Вообщем посмотрел другие пакеты, похоже, что только пакеты без данных отправлять можно, как пауза.
Краш с ExecuteOrders получаю тоже

C++:
const auto net_message = CNetworkMessages::GetInterface( )->FindNetworkMessage( "CDOTAClientMsg_ExecuteOrders" );
CDOTAClientMsg_ExecuteOrders message;
CDOTAMsg_UnitOrder* order = message.add_orders( );
const auto vec = reinterpret_cast<CDOTA_BaseNPC*>(global::g_LocalEntity)->GetAbsOrigin( );
CMsgVector* vec2send = new CMsgVector;
vec2send->set_x( vec.x+155 );
vec2send->set_y( vec.y+100 );
vec2send->set_z( vec.z );

order->set_order_type( DOTA_UNIT_ORDER_MOVE_TO_POSITION );
order->set_sequence_number( 2 );
order->set_allocated_position( vec2send );
order->set_units( global::g_LocalPlayerIndex, 0 );

hook::original::fpSendNetMessage( cheat_data.current_net_chan, net_message, &message, BUF_DEFAULT );
мб протобафы обнови или наоборот даунгрейдни хз + перекомпиль .proto
 
Пользователь
Статус
Оффлайн
Регистрация
8 Апр 2022
Сообщения
663
Реакции[?]
104
Поинты[?]
67K
мб протобафы обнови или наоборот даунгрейдни хз + перекомпиль .proto
Я обновлял 2 недели назад, там ничего кроме каких-то стикеров вроде не добавили. Может, дело в new и надо как-то по другому создавать CMsg_CVars/CMsgVector?
 
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
Я обновлял 2 недели назад, там ничего кроме каких-то стикеров вроде не добавили. Может, дело в new и надо как-то по другому создавать CMsg_CVars/CMsgVector?
попробуй ютлстринги юзать вместо обычных
C++:
CDOTAClientMsg_TipAlert tip_alert;
CUtlString tip_alert_string{};
tip_alert_string.Set(in_text);
tip_alert.set_allocated_tip_text(reinterpret_cast<std::string*>(&tip_alert_string));
netchan->SendMessage(tipalert_msg, &tip_alert);
auto ignored = tip_alert.release_tip_text();
 
Сверху Снизу