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

Тема в разделе "C, C++", создана пользователем Jesik, 10 май 2013.

  1. MOR

    MOR Постоянный участник

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

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

    NarutoUA C++ Hokage developer
    BH Team

    Регистрация:
    26 май 2013
    Сообщения:
    712
    Симпатии:
    1.326
    Да
     
  3. randazzo

    randazzo не админ какой-то
    Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.176
    Симпатии:
    625
    Prime-Hack | AsiPlugin(https://dl.prime-hack.net/AsiPlugin/) вроде есть поддержка ракнета
     
  4. BlackKnigga

    Всефорумный модератор

    Регистрация:
    10 янв 2016
    Сообщения:
    909
    Симпатии:
    451
    Смотри собейт. Тебе нужно хукать RakClientInterface
     
  5. iAmerican

    iAmerican Свой человек

    Регистрация:
    17 фев 2014
    Сообщения:
    490
    Симпатии:
    146
    GitHub - sr-tream/UniLib(https://github.com/sr-tream/UniLib)
     
  6. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26 окт 2013
    Сообщения:
    3.034
    Симпатии:
    2.837
  7. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
    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.
    А тебе оно очень надо (у меня где то был готовый код вроде.)?
     
  8. randazzo

    randazzo не админ какой-то
    Всефорумный модератор

    Регистрация:
    21 май 2014
    Сообщения:
    1.176
    Симпатии:
    625
    в этом файле нет ни одного упоминания про ракнет хуки.
     
  9. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
    [​IMG]
    А это тогда что ?
     
  10. MOR

    MOR Постоянный участник

    Регистрация:
    28 июл 2017
    Сообщения:
    70
    Симпатии:
    114
    Ну, не то чтобы очень. Просто у меня есть плагин SF, и из библиотеки SF он использует только вывод в чат и RakNet. И мне хотелось бы избавить плагин от зависимости от SF. Пока что это не так важно, но если ты дашь мне пример кода, для работы с RakNet - буду благодарен.
     
  11. mrdiimax

    mrdiimax Знающий

    Регистрация:
    24 янв 2016
    Сообщения:
    237
    Симпатии:
    72
    В чем проблема,установил Visual Studio 2017, запускаю - не запускается,устанавливал разные версии,тобишь Professional Enterprise,никакая из них не запускается,что делать???
     
  12. p1cador

    p1cador vk.com/id63306232
    Проверенный

    Регистрация:
    19 мар 2014
    Сообщения:
    190
    Симпатии:
    286
    аси, не сф
    перебираю хендлы игроков, получаю по ним структуры актеров, вывожу в чат:
    
    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:
    [​IMG]
    Структуру написал правильно, в оффсетах не ошибся. У меня только одно предположение - на вики написано "CPed +0x50C = начало класса CPedIK", т.е., начиная с 0x50c и ниже - это инфа, относящаяся только к игроку, за которого я играю? Или что значит этот ебучий педик?
    Если я прав, то, где тогда лежат хп других актеров? Или их можно получить только вызвав функцию?
    А если я не прав, то скажите в каком месте я долбоеб
     
  13. SR_team

    SR_team BH Team
    BH Team

    Регистрация:
    26 окт 2013
    Сообщения:
    3.034
    Симпатии:
    2.837
    SF Plugin - ActiveHitpoints(https://blast.hk/threads/13033/)
     
    p1cador нравится это.
  14. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
  15. BlackKnigga

    Всефорумный модератор

    Регистрация:
    10 янв 2016
    Сообщения:
    909
    Симпатии:
    451
    Он прочитает и поймет что хп других игроков надо брать из структур сампа
     
  16. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
    А в какой именно структуре самп хранит это ?
     
  17. CleanLegend

    CleanLegend Интересующийся

    Регистрация:
    28 мар 2013
    Сообщения:
    130
    Симпатии:
    116
    g_SAMP->pPools->pPlayer->pRemotePlayer->pPlayerData->fActorHealth;
     
    Jack_Savage нравится это.
  18. vasiliy130198

    vasiliy130198 Активный участник

    Регистрация:
    6 дек 2017
    Сообщения:
    25
    Симпатии:
    0
    Можно ли мониторить отправляемые серверу rpc пакеты? (перехват исходящих пакетов.. как-то так)
    Если да, то как именно определить, что текущий rpc пакет отправил именно клиент сампа, а не мой скрипт? (.cs или .sf)
     
  19. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
    Можно через SF плагин.
    tutorials - api_lesson_raknet | BlastHack — DEV_WIKI(https://blast.hk/wiki/tutorials:api_lesson_raknet)
     
  20. AndreyS

    AndreyS Интересующийся

    Регистрация:
    27 май 2016
    Сообщения:
    116
    Симпатии:
    23
    Если скачать с темы Избранное - Софт - SAMPFUNCS(https://blast.hk/threads/17/) файл sf_5_3_3_bin.rar .
    И распаковать его в любую папку, позже запустить файл SFPlugin.sln , то visual studio 2017 будет ругаться, на стандартные инклуды ( windows.h process.h )
    И требовать точку с запятой в mainloop() . Как это исправить?
    [​IMG]
     
  21. mrdiimax

    mrdiimax Знающий

    Регистрация:
    24 янв 2016
    Сообщения:
    237
    Симпатии:
    72
    Подключи SDK,если не умеешь - напиши мне,помогу vk.com/This_Cold
     
    AndreyS нравится это.
  22. AndreyS

    AndreyS Интересующийся

    Регистрация:
    27 май 2016
    Сообщения:
    116
    Симпатии:
    23
    Какие зависимости есть у проекта SFPlugin.sln . Переустановил винду, подключил sdk , но это не помогло
     
  23. Dark_Knight

    Dark_Knight Glory to mankind
    Друг

    Регистрация:
    18 мар 2013
    Сообщения:
    3.269
    Симпатии:
    1.605
    DirectX SKD и все.
     
  24. AndreyS

    AndreyS Интересующийся

    Регистрация:
    27 май 2016
    Сообщения:
    116
    Симпатии:
    23
    Ее поставил и все равно не работает
     
  25. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
    А что у тебя в настройках то стоит ?
    upload_2018-1-12_18-36-25.png
    Вот чекни этот пункт
    "И требовать точку с запятой в mainloop()" это потому что не нашло какой то там инклуд где есть дефайн CALLBACK
     
  26. AndreyS

    AndreyS Интересующийся

    Регистрация:
    27 май 2016
    Сообщения:
    116
    Симпатии:
    23
    Пробовал все пункты, напиши в вк /road2mz

    Как избавиться от _ в нике Vasya_Pupkin = Vasya Pupkin?

    
    
       char buff[128];
       sprintf(buff, "/me текст %s",
         pPlayer->szPlayerName);
       SF->getSAMP()->getPlayers()->pLocalPlayer->Say(buff);
       Sleep(700);
       SF->getSAMP()->getPlayers()->pLocalPlayer->Say("/anim 20");
    
    p.s Я же правильно делаю задержку?
     
    #2196 AndreyS, 12 янв 2018
    Последнее редактирование модератором: 24 янв 2018
  27. BlackKnigga

    Всефорумный модератор

    Регистрация:
    10 янв 2016
    Сообщения:
    909
    Симпатии:
    451
    std::string DeleteUnderscore(std::string str)
    {
        for (char &ch : str)
            if (ch == '_')
                ch = ' ';
        return str;
    }
    Но явно можно как то проще
    Нет
     
  28. AndreyS

    AndreyS Интересующийся

    Регистрация:
    27 май 2016
    Сообщения:
    116
    Симпатии:
    23
    Как делать задержку , как использовать то, что ты скинул?
     
  29. BlackKnigga

    Всефорумный модератор

    Регистрация:
    10 янв 2016
    Сообщения:
    909
    Симпатии:
    451
    Через GetTickCount
    Возвращает строку в параметре без подчеркиваний
     
  30. AndreyS

    AndreyS Интересующийся

    Регистрация:
    27 май 2016
    Сообщения:
    116
    Симпатии:
    23
    Можешь понятнее обьяснить, я только сегодня начал что либо делать ( про удаление _ )
     
  31. Jack_Savage

    Jack_Savage Интересующийся

    Регистрация:
    6 ноя 2016
    Сообщения:
    147
    Симпатии:
    26
    
    Объявляешь функцию
    std::string DeleteUnderscore(std::string str) { for (char &ch : str) if (ch == '_') ch = ' '; return str; }
    
    А вот так там где тебе надо использовать
    SF->getSAMP()->getPlayers()->pLocalPlayer->Say(DeleteUnderscore("Jack_Savage").c_str());
    
     
  32. Jenecheque

    Jenecheque Постоянный участник

    Регистрация:
    12 окт 2014
    Сообщения:
    90
    Симпатии:
    70
    если на сф то
    tutorials - api_lesson_raknet | BlastHack — DEV_WIKI(https://blast.hk/wiki/tutorials:api_lesson_raknet)
    если на клео

    upload_2018-1-13_3-23-27.png
     
  33. Perojek)0

    Perojek)0 Знающий

    Регистрация:
    12 янв 2016
    Сообщения:
    205
    Симпатии:
    5
    Где можно посмотреть на пример перехвата RPC/Packet'a без сф?
     
  34. memir

    memir Интересующийся

    Регистрация:
    21 авг 2015
    Сообщения:
    118
    Симпатии:
    62
    Ковыряй собейт
     
  35. Vlad Horii

    Проверенный

    Регистрация:
    16 июл 2017
    Сообщения:
    311
    Симпатии:
    196
    При компиляции проекта в Visual Studio появляется ошибка. Как исправить?
    [​IMG]