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

iAmerican

Известный
Друг
614
257
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?

Или, если смещений нет, то существует ли статические библиотеки/примеры кода, реализующие функционал по работе с RakNet?
GitHub - sr-tream/UniLib(https://github.com/sr-tream/UniLib)
 

Jack_Savage

Участник
150
17
Народ, я не понимаю, как вообще пишутся ASI плагины. В частности работа с RakNet. Там же нет никакого API вроде. Получается, работа напрямую с памятью. То есть, если я хочу забабахать плагин, который взаимодействует с RakNet мне придётся лезть в IDA и искать оффсеты? Я не мастер дебага и реверса. Есть ли где-то в инете список смещений SAMP'а?

Или, если смещений нет, то существует ли статические библиотеки/примеры кода, реализующие функционал по работе с RakNet?

mod_s0beit_sa/samp.cpp at 74970634c722bbeb898747ee2353788987d67aa7 · BlastHackNet/mod_s0beit_sa · GitHub(https://github.com/BlastHackNet/mod_s0beit_sa/blob/74970634c722bbeb898747ee2353788987d67aa7/src/samp.cpp)
Вот тут смотри...
Метод installSAMPHooks.
А тебе оно очень надо (у меня где то был готовый код вроде.)?
 
1,417
1,029
в этом файле нет ни одного упоминания про ракнет хуки.
 

Jack_Savage

Участник
150
17
в этом файле нет ни одного упоминания про ракнет хуки.
A91pCLe.png

А это тогда что ?
 
У

Удалённый пользователь 144706

Гость
А тебе оно очень надо (у меня где то был готовый код вроде.)?
Ну, не то чтобы очень. Просто у меня есть плагин SF, и из библиотеки SF он использует только вывод в чат и RakNet. И мне хотелось бы избавить плагин от зависимости от SF. Пока что это не так важно, но если ты дашь мне пример кода, для работы с RakNet - буду благодарен.
 

mrdiimax

Известный
566
79
В чем проблема,установил Visual Studio 2017, запускаю - не запускается,устанавливал разные версии,тобишь Professional Enterprise,никакая из них не запускается,что делать???
 

p1cador

cerf
Проверенный
220
359
аси, не сф
перебираю хендлы игроков, получаю по ним структуры актеров, вывожу в чат:
C++:
chatMsg(0xffffffff, "handle: 0x%x | ped: 0x%x", v31, actor_info);
chatMsg(0xffffffff, "X: %.2f Y: %.2f Z: %.2f", actor_info->matrix->pos.x, actor_info->matrix->pos.y, actor_info->matrix->pos.z);
chatMsg(0xffffffff, "HP: %.2f | &HP: %x", actor_info->fHealth, &(actor_info->fHealth));
В рез-те наблюдаю хендлы, адреса стр-р и координаты всех актеров из зоны стрима, а с получением хп какая-то хуета, адекватно хп получаю только своё, у других актеров по этому адресу лежит 1000.0:
4mUjwZjeSa0.jpg

Структуру написал правильно, в оффсетах не ошибся. У меня только одно предположение - на вики написано "CPed +0x50C = начало класса CPedIK", т.е., начиная с 0x50c и ниже - это инфа, относящаяся только к игроку, за которого я играю? Или что значит этот ебучий педик?
Если я прав, то, где тогда лежат хп других актеров? Или их можно получить только вызвав функцию?
А если я не прав, то скажите в каком месте я долбоеб
 

SR_team

like pancake
BH Team
4,720
6,374
аси, не сф
перебираю хендлы игроков, получаю по ним структуры актеров, вывожу в чат:
C++:
chatMsg(0xffffffff, "handle: 0x%x | ped: 0x%x", v31, actor_info);
chatMsg(0xffffffff, "X: %.2f Y: %.2f Z: %.2f", actor_info->matrix->pos.x, actor_info->matrix->pos.y, actor_info->matrix->pos.z);
chatMsg(0xffffffff, "HP: %.2f | &HP: %x", actor_info->fHealth, &(actor_info->fHealth));
В рез-те наблюдаю хендлы, адреса стр-р и координаты всех актеров из зоны стрима, а с получением хп какая-то хуета, адекватно хп получаю только своё, у других актеров по этому адресу лежит 1000.0:
4mUjwZjeSa0.jpg

Структуру написал правильно, в оффсетах не ошибся. У меня только одно предположение - на вики написано "CPed +0x50C = начало класса CPedIK", т.е., начиная с 0x50c и ниже - это инфа, относящаяся только к игроку, за которого я играю? Или что значит этот ебучий педик?
Если я прав, то, где тогда лежат хп других актеров? Или их можно получить только вызвав функцию?
А если я не прав, то скажите в каком месте я долбоеб
SF Plugin - ActiveHitpoints(https://blast.hk/threads/13033/)
 
  • Нравится
Реакции: p1cador

vasiliy130198

Новичок
27
0
Можно ли мониторить отправляемые серверу rpc пакеты? (перехват исходящих пакетов.. как-то так)
Если да, то как именно определить, что текущий rpc пакет отправил именно клиент сампа, а не мой скрипт? (.cs или .sf)
 

Jack_Savage

Участник
150
17
Можно ли мониторить отправляемые серверу rpc пакеты? (перехват исходящих пакетов.. как-то так)
Если да, то как именно определить, что текущий rpc пакет отправил именно клиент сампа, а не мой скрипт? (.cs или .sf)
Можно через SF плагин.
tutorials - api_lesson_raknet | BlastHack — DEV_WIKI(https://blast.hk/wiki/tutorials:api_lesson_raknet)