[C++] Задержка кода ( иной вариант )
|
|
TrueFalse |
Дата: Воскресенье, 06.01.2013, 23:00 | Сообщение # 1
|
Боец
Сообщений: 161
Статус: Offline
|
Здравствуйте, пользователи ЧитМастера. Т.к. не всем понятен урок по написанию задержки кода от Wa3rix'a, я решил написать похожий, но с использованием другой функции. Итак, например у нас стоит задача: Написать в чат "Привет", а через 10 секунд написать "Пока", если мы прямо сделаем задержку, тоесть при использовании Sleep, наша игра зависнет на 10 секунд, тоесть: Код addMessageToChatWindow("Привет"); Sleep(10000); addMessageToChatWindow("Пока"); Поэтому мы будем это делать отдельным потоком. Например у меня есть функция, которая вызывается командой, мы ей приделаем поток и сделаем вывод "Привет" и секунд через 10, напишем "Пока", вот как она будет выглядеть: Код void privetiwe() { addMessageToChatWindow("Привет"); Sleep(10000); addMessageToChatWindow("Пока"); } void cmd_privet(char *params) { CreateThread(0, 0, (LPTHREAD_START_ROUTINE)privetiwe, 0, 0, 0); } Таким образом у нас всё прекрасно выведется и игра не зависнет. Что, что? Что-то не понятно? А, ну да. Объясняю подробно. Там, где мы хотим сделать задержку, вписываем Код CreateThread(0, 0, (LPTHREAD_START_ROUTINE)name, 0, 0, 0); там где name - любое название из латинских символов. И где-то функцией где мы использовали задержку пишем: где: name - тоже самое название из латинских символов code - ваш код с задержкой. Саму задержку используем функцией где: time - время задержки в миллисекундах. Надеюсь я всё понятно объяснил. Спасибо за внимание!
Мои работы: 1. Собейт SAMP-VL[MiniPrivate] - http://cheat-master.ru/forum/160-86302-1 2. [C++] /fkill (Fake Kill) - http://cheat-master.ru/forum/118-56909-1#409773 3. [C++] Skin Changer - http://cheat-master.ru/forum/118-56888-1 4. [C++] Задержка кода ( иной вариант ) - http://cheat-master.ru/forum/118-56904-1
Сообщение отредактировал TrueFalse - Воскресенье, 06.01.2013, 23:01 |
|
|
|
testing |
Дата: Понедельник, 07.01.2013, 15:50 | Сообщение # 2
|
Боец
Сообщений: 71
Статус: Offline
|
TrueFalse, Код void cmd_cmds ( char *param ) { addMessageToChatWindow("Привет"); Sleep(2500); addMessageToChatWindow("Пока"); Sleep(2500); addMessageToChatWindow("Привет"); Sleep(2500); addMessageToChatWindow("Пока"); Sleep(2500); addMessageToChatWindow("Пока"); CreateThread(0, 0, (LPTHREAD_START_ROUTINE)cmd_cmds, 0, 0, 0); } Вот код смотри что происходит активирую меня заморажевает через 2500 сек наченает работать потом всё нормально идёт !
Я не набивал пост, я просто люблю много писать !
|
|
|
|
TrueFalse |
Дата: Понедельник, 07.01.2013, 15:59 | Сообщение # 3
|
Боец
Сообщений: 161
Статус: Offline
|
Я так понял, оно вызывается по команде /cmds? Если да, то вот правильный код: Код void pizdec() { addMessageToChatWindow("Привет"); Sleep(2500); addMessageToChatWindow("Пока"); Sleep(2500); addMessageToChatWindow("Привет"); Sleep(2500); addMessageToChatWindow("Пока"); Sleep(2500); addMessageToChatWindow("Пока"); } void cmd_cmds ( char *param ) { CreateThread(0, 0, (LPTHREAD_START_ROUTINE)pizdec, 0, 0, 0); }
Мои работы: 1. Собейт SAMP-VL[MiniPrivate] - http://cheat-master.ru/forum/160-86302-1 2. [C++] /fkill (Fake Kill) - http://cheat-master.ru/forum/118-56909-1#409773 3. [C++] Skin Changer - http://cheat-master.ru/forum/118-56888-1 4. [C++] Задержка кода ( иной вариант ) - http://cheat-master.ru/forum/118-56904-1
Сообщение отредактировал TrueFalse - Понедельник, 07.01.2013, 16:00 |
|
|
|
alex3931 |
Дата: Понедельник, 07.01.2013, 16:01 | Сообщение # 4
|
Боец
Сообщений: 129
Статус: Offline
|
testing, void cmds ( char *param ) { addMessageToChatWindow("Привет"); Sleep(2500); addMessageToChatWindow("Пока"); Sleep(2500); addMessageToChatWindow("Привет"); Sleep(2500); addMessageToChatWindow("Пока"); Sleep(2500); addMessageToChatWindow("Пока"); }
void cmd_cmds () { _beginthread(cmds, 0, NULL); }
Пишу софт на заказ.Скайп sprilt
|
|
|
|
testing |
Дата: Понедельник, 07.01.2013, 16:01 | Сообщение # 5
|
Боец
Сообщений: 71
Статус: Offline
|
TrueFalse, ok спасибо, да ты прав она вызывается пока команде cmds
Я не набивал пост, я просто люблю много писать !
|
|
|
|
TrueFalse |
Дата: Понедельник, 07.01.2013, 16:04 | Сообщение # 6
|
Боец
Сообщений: 161
Статус: Offline
|
alex3931, кстати, да, можно юзать бэгинтред как показывал Ваэря, но плюсик моего варианта - код будет выполнятся даже если свернуть игру
Мои работы: 1. Собейт SAMP-VL[MiniPrivate] - http://cheat-master.ru/forum/160-86302-1 2. [C++] /fkill (Fake Kill) - http://cheat-master.ru/forum/118-56909-1#409773 3. [C++] Skin Changer - http://cheat-master.ru/forum/118-56888-1 4. [C++] Задержка кода ( иной вариант ) - http://cheat-master.ru/forum/118-56904-1
|
|
|
|
testing |
Дата: Понедельник, 07.01.2013, 16:15 | Сообщение # 7
|
Боец
Сообщений: 71
Статус: Offline
|
Код void cheat_handle_flooder () { traceLastFunc( "cheat_handle_flooder()" ); if ( KEY_PRESSED(set.key_flooder) ) { cheat_state->_generic.flooder ^= 1; }
if( cheat_state->_generic.flooder == 1 ) { say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); } }
void flooder ( char *param ) { CreateThread(0, 0, (LPTHREAD_START_ROUTINE)flooder, 0, 0, 0); } Правельно ли ? это Flooder
Я не набивал пост, я просто люблю много писать !
|
|
|
|
TrueFalse |
Дата: Понедельник, 07.01.2013, 16:20 | Сообщение # 8
|
Боец
Сообщений: 161
Статус: Offline
|
Всё наоборот хД Код void cheat_handle_flooder () { traceLastFunc( "cheat_handle_flooder()" ); if ( KEY_PRESSED(set.key_flooder) ) { cheat_state->_generic.flooder ^= 1; }
if( cheat_state->_generic.flooder == 1 ) { CreateThread(0, 0, (LPTHREAD_START_ROUTINE)flooder, 0, 0, 0); } }
void flooder ( char *param ) { say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); } только это тебе не поможет. cheat_handle_flooder очень часто вызывается. Слип будет всё только рушить. Лучше уж так: Код void cheat_handle_flooder () { traceLastFunc( "cheat_handle_flooder()" ); if ( KEY_PRESSED(set.key_flooder) ) { CreateThread(0, 0, (LPTHREAD_START_ROUTINE)flooder, 0, 0, 0); } }
void flooder ( char *param ) { say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); say("/capture"); Sleep(3200); }
Мои работы: 1. Собейт SAMP-VL[MiniPrivate] - http://cheat-master.ru/forum/160-86302-1 2. [C++] /fkill (Fake Kill) - http://cheat-master.ru/forum/118-56909-1#409773 3. [C++] Skin Changer - http://cheat-master.ru/forum/118-56888-1 4. [C++] Задержка кода ( иной вариант ) - http://cheat-master.ru/forum/118-56904-1
Сообщение отредактировал TrueFalse - Понедельник, 07.01.2013, 16:21 |
|
|
|
pr9n |
Дата: Понедельник, 07.01.2013, 16:22 | Сообщение # 9
|
Авторитет
Сообщений: 921
Статус: Offline
|
testing, Неа, если ты это пихнешь в cheat_generic.cpp , У тебя игра зависнет т.к этот воид будет вызываться всегда, пока cheat_state->_generic.flooder == 1
[url=http://vk.com/ipr9n][img]http://i.imgur.com/kaVwM9K.png[/img][/url][url=http://instagram.com/ipr9n][img]http://i.imgur.com/eNAwOKh.jpg[/img][/url]
|
|
|
|
TrueFalse |
Дата: Понедельник, 07.01.2013, 16:23 | Сообщение # 10
|
Боец
Сообщений: 161
Статус: Offline
|
pr9n, по-моему не только игра :DD
Мои работы: 1. Собейт SAMP-VL[MiniPrivate] - http://cheat-master.ru/forum/160-86302-1 2. [C++] /fkill (Fake Kill) - http://cheat-master.ru/forum/118-56909-1#409773 3. [C++] Skin Changer - http://cheat-master.ru/forum/118-56888-1 4. [C++] Задержка кода ( иной вариант ) - http://cheat-master.ru/forum/118-56904-1
|
|
|
|
alex3931 |
Дата: Понедельник, 07.01.2013, 16:24 | Сообщение # 11
|
Боец
Сообщений: 129
Статус: Offline
|
pr9n, vo vo нужно ставить в конце кода cheat_state->_generic.flooder =0; но это не удобно, лучше делай функции в dumb_menu.cpp
Пишу софт на заказ.Скайп sprilt
|
|
|
|
_AMG_ |
Дата: Понедельник, 07.01.2013, 16:36 | Сообщение # 12
|
Бывалый
Сообщений: 319
Статус: Offline
|
Цитата void cheat_handle_flooder () { traceLastFunc( "cheat_handle_flooder()" ); if ( KEY_PRESSED(set.key_flooder) ) { cheat_state->_generic.flooder ^= 1; }
if( cheat_state->_generic.flooder == 1 ) { static DWORD time = 0; if (GetTickCount() - 1000 > time) // время { say("/capture"); time = GetTickCount(); } return; } }
Юзайте GetTickCount, нах этот sleep
--MURDERED-- AMG CARTEL DOBRA Skype: murdered1017
|
|
|
|
pr9n |
Дата: Понедельник, 07.01.2013, 16:49 | Сообщение # 13
|
Авторитет
Сообщений: 921
Статус: Offline
|
alex3931, Охенно пофлудишь небось Один раз флуданет и выключится + зависнет на кол-во слипов, т.к все сделано в одном потоке.
[url=http://vk.com/ipr9n][img]http://i.imgur.com/kaVwM9K.png[/img][/url][url=http://instagram.com/ipr9n][img]http://i.imgur.com/eNAwOKh.jpg[/img][/url]
|
|
|
|
alex3931 |
Дата: Понедельник, 07.01.2013, 17:02 | Сообщение # 14
|
Боец
Сообщений: 129
Статус: Offline
|
pr9n, Цитата + зависнет на кол-во слипов :DDDD. Это да, но как она закончится можно включить заного:)
Пишу софт на заказ.Скайп sprilt
|
|
|
|
RedisKa |
Дата: Понедельник, 07.01.2013, 21:59 | Сообщение # 15
|
Бывалый
Сообщений: 332
Статус: Offline
|
_AMG_,
|
|
|
|