- 121
- 171
Sleep(100);Как сделать задержку перед отправкой пакета?
C++://пример sendFake(); //задерка 100 милисекунд sendFuck();
но перед этим создай поток что бы не зафризило игру
или же
Разработчики, только перешедшие с клео\луа на C++ негодуют из-за необходимости использовать разного рода таймеры и лапшу из GetTickCount'ов вместо полюбившихся функций wait. Но особо ярых фанатов клео это не устраивает, отчего они начинают использовать потоки ради функций вроде Sleep для того чтобы не блокировать цикл игры. Однако это не безопасно. Функции ни GTA ни SAMP'а абсолютно не предназначены для использования в разных потоках и их использование может привести к рандомным крашам.
Выход есть!
Example:#include <string> #include <chrono> #include "Yet-another-hook-library/hook.h" #include "sampapi/CChat.h" #include "coro_wait/coro_wait.h" using namespace sampapi::v037r1; void foo() { using namespace std::chrono_literals; CChat *&pChat = RefChat(); while (!pChat) { this_coro::wait(100ms); } unsigned int counter = 0; while (true) { pChat->AddMessage(-1, (std::string("Hello ") + std::to_string(counter)).c_str()); counter++; this_coro::wait(1s); } } void CGame_Process_hk() { static coro_wait instance{ foo }; instance.process(); } class coro_wait_example { public: coro_wait_example() { using CGame_Process_t = void(__cdecl*)(); CGame_Process_t CGame_Process = reinterpret_cast<CGame_Process_t>(0x53BEE0); static hook CGame_Process_hook(CGame_Process, CGame_Process_hk); } } coro_wait_example;
Выполнение функции foo приостанавливается на время, переданное функции this_coro::wait, и продолжается с того же места. Все это работает в одном потоке, благодаря чему можно не переживать за потокобезопасность вызываемых внутри функций.
В бесконечных или очень больших циклах требуется вызывать wait(0), все по канонам клео.
Функция coro_wait::process должна вызываться в потоке игры (перехваченном как в примере, либо в функции mainloop для SF API).
Требуется библиотека Boost.Context!
Исходный код:
![]()
GitHub - allwanttokissme/coro_wait: Suspending coroutines by time
Suspending coroutines by time. Contribute to allwanttokissme/coro_wait development by creating an account on GitHub.github.com
хуки
sampapi