HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #7541  
Старый 30.05.2025, 01:27
TheLeftExit
Познающий
Регистрация: 07.01.2021
Сообщений: 38
С нами: 2814874

Репутация: 23
По умолчанию

Приветы, а можно как-то внутри C++ хука, зарегистрированного в registerChatCommand, асинхронно ждать внутри своего кода?

Допустим, у меня есть такое:

псевдокод:





Код:
SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"1\"");
// спать 300
SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"2\"");
// спать 300
SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"3\"");


На деле код спит полсекунды и затем все три строки в чат одновременно выдаёт (и две из них отлетают антифлудом). Cleo/sampfuncs дают какой-то способ поставить свой код в очередь выполняться через X мс?

Или если я могу сам подождать в соседнем треде, а потом отправить остальной код выполняться в нужный (как Control.Invoke), так ещё лучше.

upd: похоже, я могу спокойно гонять callOpcode из соседнего треда, в котором sleep ничего не блокирует. Вопрос снят
 
Ответить с цитированием

  #7542  
Старый 01.06.2025, 14:20
TheLeftExit
Познающий
Регистрация: 07.01.2021
Сообщений: 38
С нами: 2814874

Репутация: 23
По умолчанию

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

Либо в принципе как-то потоко-безопасно выполнять код, когда игрок нажмёт нужные мне кнопки. Я могу чекать в цикле isKeyPressed/isKeyDown, но непонятно как в C++ это делать и не блокировать игру. В Lua делают wait(0), я полагаю moonloader это интерпретирует как "вернуться к скрипту в следующий фрейм", вот мне надо как-то сделать то же самое в C++.
 
Ответить с цитированием

  #7543  
Старый 01.06.2025, 16:11
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Цитата:
Сообщение от TheLeftExit  

Приветы, а можно как-то внутри C++ хука, зарегистрированного в registerChatCommand, асинхронно ждать внутри своего кода?
Допустим, у меня есть такое:

псевдокод:





Код:
SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"1\"");
// спать 300
SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"2\"");
// спать 300
SF->getCLEO()->callOpcode("0C8F: samp process_chat_input \"3\"");


На деле код спит полсекунды и затем все три строки в чат одновременно выдаёт (и две из них отлетают антифлудом). Cleo/sampfuncs дают какой-то способ поставить свой код в очередь выполняться через X мс?

Или если я могу сам подождать в соседнем треде, а потом отправить остальной код выполняться в нужный (как Control.Invoke), так ещё лучше.

upd: похоже, я могу спокойно гонять callOpcode из соседнего треда, в котором sleep ничего не блокирует. Вопрос снят
Цитата:
Сообщение от TheLeftExit  

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

Либо в принципе как-то потоко-безопасно выполнять код, когда игрок нажмёт нужные мне кнопки. Я могу чекать в цикле isKeyPressed/isKeyDown, но непонятно как в C++ это делать и не блокировать игру. В Lua делают wait(0), я полагаю moonloader это интерпретирует как "вернуться к скрипту в следующий фрейм", вот мне надо как-то сделать то же самое в C++.
Изначально использовать клео опкоды в С/C++ - бред, когда у тебя под рукой есть возможность напрямую вызывать методы по адресам. Белиберда у тебя из-за того, что ты пытаешься из двух разных потоков писать/читать в одну область памяти, из-за чего происходит гонка потоков, которая вызывает UB. В обычном случае игра просто должна вылететь. Советую ознакомиться с std::mutex / std::lock_guard, но в твоем случае, можно и одним потоком обойтись, просто написав примитивный таймер на GetTickCount64() (win), либо std::chrono (под любую платформу)
 
Ответить с цитированием

  #7544  
Старый 01.06.2025, 17:49
RTD
Постоянный
Регистрация: 18.03.2017
Сообщений: 410
С нами: 4818548

Репутация: 133
По умолчанию

Цитата:
Сообщение от TheLeftExit  

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

Либо в принципе как-то потоко-безопасно выполнять код, когда игрок нажмёт нужные мне кнопки. Я могу чекать в цикле isKeyPressed/isKeyDown, но непонятно как в C++ это делать и не блокировать игру. В Lua делают wait(0), я полагаю moonloader это интерпретирует как "вернуться к скрипту в следующий фрейм", вот мне надо как-то сделать то же самое в C++.
Исходник - ktcoro_wait - задержки без потоков

ktcoro_wait Приостановка выполенения функции на время основанное на корутинах C++20 Примеры кода #include #include #include "ktcoro_wait.hpp" ktwait bar() { using namespace std::chrono_literals; while (true) { std::cout

www.blast.hk
 
Ответить с цитированием

  #7545  
Старый 01.06.2025, 21:29
TheLeftExit
Познающий
Регистрация: 07.01.2021
Сообщений: 38
С нами: 2814874

Репутация: 23
По умолчанию

Спасибо за ответы. Мне в итоге не хватало понимания, что mainloop из SF шаблона гоняется не единожды, а на каждый фрейм. В итоге завёл очередь колбеков, кидаю туда колбеки из фоновых потоков, и в mainloop их запускаю (с блокировкой).

пофлекшу: https://www.blast.hk/threads/236901/#post-1611310
 
Ответить с цитированием

  #7546  
Старый 06.06.2025, 15:10
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Цитата:
Сообщение от undefine  

Как сделать колизию на объекты, машины, игроков что бы сквозь них ходить можно было. Пробовал ставить по типу collision = false в параметрах педа, машины и объектов но ничего не получилось
blast.hk/threads/6767
 
Ответить с цитированием

  #7547  
Старый 07.06.2025, 10:22
loandel
Новичок
Регистрация: 07.06.2025
Сообщений: 2
С нами: 494407

Репутация: 1
По умолчанию

как сделать silent aim? пробовал смотреть луа там юзают пакеты пробовал менять позицию z что бы пуля летела не туда куда целюсь, но реакции 0.

Так же смотрел как это реализовано в финал проджекте тоже ничего не получилось. Если что юзаю https://github.com/DpO4uLa/SAMP_API
 
Ответить с цитированием

  #7548  
Старый 07.06.2025, 16:52
AdCKuY_DpO4uLa
Постоянный
Регистрация: 05.08.2018
Сообщений: 372
С нами: 4091290

Репутация: 213
По умолчанию

Цитата:
Сообщение от loandel  

как сделать silent aim? пробовал смотреть луа там юзают пакеты пробовал менять позицию z что бы пуля летела не туда куда целюсь, но реакции 0.
Так же смотрел как это реализовано в финал проджекте тоже ничего не получилось. Если что юзаю https://github.com/DpO4uLa/SAMP_API
https://www.blast.hk/threads/47392/ -> https://nc.sr.team/s/NRRj85YKnm52aTp

GitHub - Stickey21/Stealth-Remastered: Open Source SA:MP Cheat

Open Source SA:MP Cheat. Contribute to Stickey21/Stealth-Remastered development by creating an account on GitHub.

github.com


GitHub - KevY007/Silent-Aimbot-DL: 0.3.DL Standalone Silent Aimbot (.ASI) (Partially supported on 0.3.7 but no support/broken)

0.3.DL Standalone Silent Aimbot (.ASI) (Partially supported on 0.3.7 but no support/broken) - KevY007/Silent-Aimbot-DL

github.com


Кто ищет, тот всегда найдет. На просторах сети полным полно разных реализаций, эти я нашел минуты за 3.

Если не ошибаюсь, то на бх есть гайды по мат. части того, как работает любой аим
 
Ответить с цитированием

  #7549  
Старый 09.06.2025, 08:58
loandel
Новичок
Регистрация: 07.06.2025
Сообщений: 2
С нами: 494407

Репутация: 1
По умолчанию

как можно отключить поворот камеры на 180* при нажатии на СКМ
 
Ответить с цитированием

  #7550  
Старый 11.06.2025, 20:06
TokyoQq
Новичок
Регистрация: 14.01.2024
Сообщений: 20
С нами: 1228197

Репутация: 3
По умолчанию

есть ли структура у cef'a 252 пакета что то по типу stOnFootData

лучше конечно если есть на амазинг у них как я знаю он отличается от обычного
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.