Недавнее содержимое от TheLeftExit

  1. TheLeftExit

    Другое SAMPFUNCS | API C++

    Как "правильно" читать чат? Мне нужно читать все входящие строки (я их добавляю в вектор-очередь, и затем обрабатываю в другом коде), и иногда строки не регистрируются. У меня впечатление, что игра пишет чат в каком-то другом потоке, и она может это делать пока выполняется мой код из SF-ного...
  2. TheLeftExit

    Другое SAMPFUNCS | API C++

    Можно как-то зафорсить загрузку значений score, чтобы SF->getSAMP()->getPlayers()->remotePlayerInfo[playerId]->score показывало актуальные значения а не 0? Текущий костыль - getScoreboard()->Enable(true), ждать два фрейма mainloop, getScoreboard()->Enable(false), и ждать пока ->score не вернёт...
  3. TheLeftExit

    Другое SAMPFUNCS | API C++

    Твоё решение позволяет внутри C++ зарегать колбек из другого языка (регистрируем свой void(string), внутри дёргаем data/c_str, полученную строку передаём в C#/другой язык). Для этого нужно на каждую команду, которую я хочу зарегистрировать, писать отдельную функцию-враппер в C++ проекте. Я хочу...
  4. TheLeftExit

    Другое SAMPFUNCS | API C++

    Можно как-то попросить у мейнтейнеров плагина изменить SF->getSAMP()->registerChatCommand, или добавить альтернативную апишку, чтобы CommandProc принимал char* или что-то другое, что можно безопасно побитно передать в не-C++ языки, а не std::string? Пишу C# враппер, и пока что большинство...
  5. TheLeftExit

    Гайд Написание ASI/SF плагинов на C#

    Так, я выше написал, что для запуска логики с задержками нужно запускать отдельный поток - это хреновый совет. Пока сам пользовался этим решением, наткнулся на проблемы в сценариях, когда код в потоке DllMain и фоновом потоке выполнялся одновременно, и в результате непотокобезопасное SF C++ API...
  6. TheLeftExit

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

    Спасибо за ответы. Мне в итоге не хватало понимания, что mainloop из SF шаблона гоняется не единожды, а на каждый фрейм. В итоге завёл очередь колбеков, кидаю туда колбеки из фоновых потоков, и в mainloop их запускаю (с блокировкой). пофлекшу: https://www.blast.hk/threads/236901/#post-1611310
  7. TheLeftExit

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

    Вопрос выше снова актуален. Оказывается, вызов клео из соседних тредов небезопасен; я в одной функции добавил вообщение в чат (AddChatMessage) и запустил тред, который добавляет другое сообщение в чат, и в итоге второе сообщение превратилось в какую-то юникодную букву (вылечилось только...
  8. TheLeftExit

    Гайд Написание ASI/SF плагинов на C#

    Последние версии .NET позволяют писать на шарпе DLL библиотеки, которые можно подгружать как нативные библиотеки - например, через LoadLibrary+GetProcAddress в С++ коде. Подробнее от Microsoft. Если вы хотите заняться написанием ASI/SF плагинов на компилируемом языке с развитой средой...
  9. TheLeftExit

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

    Приветы, а можно как-то внутри C++ хука, зарегистрированного в registerChatCommand, асинхронно ждать внутри своего кода? Допустим, у меня есть такое: SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"1\""); // спать 300 SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"2\"")...
  10. TheLeftExit

    SA:MP attempt to call global 'sampfuncsLog'

    Около часа возился, разобрался - у меня всё это время стоял клео 5 (на который кстати ведёт ссылка из https://www.blast.hk/threads/17/). Нужно было поставить клео 4, до которого надо лезть через гитхаб в https://github.com/cleolibrary/CLEO4/releases/tag/v4.4.4. В итоге заработало ^^
  11. TheLeftExit

    SA:MP attempt to call global 'sampfuncsLog'

    +1, решил добавить moonloader+sf в свою сборку и столкнулся с той же проблемой. Пробовал даунгрейдить SF и SAMP, не помогает. Если убрать `SF Integration.lua`, то валятся другие lua скрипты которые референсят SF. Гугл находит только какой-то англоязычный тред с ещё двумя жалобами и 0 решений...
  12. TheLeftExit

    ILmerge GUI

    Мало информации, желательно всё содержимое папки Release и текст под кнопкой Сведения. Так то такого быть не должно, если весь выход из Debug/Release находится в одной папке.
  13. TheLeftExit

    C# [WinForms] Дохера файлов

    Так то тебе нужны только exe и dll и только в этой папке, остальное это отладочный выхлоп. Внешние библиотеки типа Newtonsoft.Json.dll (да и прочие диелельки) на этапе сборки проекта засунуть в исполняемый файл нельзя. Если очень нужно, ищи компакторы в интернете. К винформам это никак не...
  14. TheLeftExit

    Нужно достать имя класса по адресу объекта в памяти другого процесса

    Pardon my French. Треды на других платформах: Get class name based on address of its instance in another process Does anyone have an RTTI class name fetcher in C#? Мне нужна функция, берущая адрес в памяти другого процесса (на базе MSVC), и возвращающая название класса объекта, находящегося по...