ivantu |
Отправлено: 20 Марта, 2018 - 08:09:49
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Здравствуйте, уважаемые знатоки, подскажите как реализовать кнопку запуска бота,
Которая запускала бы основной цикл бота, и приостанавливала бы его при повторном нажатии на нее, перебрал уже все что смог придумать мозг кипит...
CODE:// Осн цикл
starting:
if (flag_button0[0]>0)
{
start_battle();
auto_battle();
victory_battle();
repeat_battle();
sleep(50);
}
else goto starting;
sleep(50);
goto starting;
CODE:
CREATE_TIMER(0, 50)//выполнение таймера через 50 мсек.
{
if (flag_button0[0]>0)
{
flag_button0[0]=0;
textout(1,100,50, format(flag_button0[0]), 1);
}
}
|
|
|
Kibor |
Отправлено: 20 Марта, 2018 - 08:34:24
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Останавливает в любой позиции работы и продолжением с позиции остановки.
CODE:int START=0;
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=28; pos_size_button0[0][1]=68; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="Кнопка 0";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 281, 157, 163, 133, 1, 1);
//////////
enabletimer(0);
while(START==0)sleep(100);
loop()
{
beep(1200, 200);
sleep(10);//Убрать после теста
}
CREATE_TIMER(0, 50)//Номер таймера, выполнение таймера через мсек.
{
E:;
if (flag_button0[0]>0)
{
flag_button0[0]=0;
if (START==1)START=0;
else START=1;
}
if(START==0){sleep(100); goto E;}
}
|
|
|
ivantu |
Отправлено: 20 Марта, 2018 - 08:53:04
|
Эксперт
Покинул форум
Сообщений всего: 732
Дата рег-ции: Нояб. 2013
Репутация: 14
|
Все просто супер, как и хотел, сейчас еще текст кнопочки сделаю меняющийся, и все как задумано будет ))
(Добавление)
Как всегда возникают трудности на ровном месте, что не так почему не меняет надписи?
CODE:
CREATE_TIMER(0, 50)// Создаем таймер
{
start_button:;
textout(1,100,50, format(start_status), 1);
if (flag_button0[0]>0)
{
flag_button0[0]=0;
if (start_status==1)start_status=0;
else start_status=1;
}
if(start_status==0){sleep(100); goto start_button;}
}
CREATE_TIMER(1, 200)//Создаем второй т,к, первый полностью занят циклом кнопки
{
if(flag_check0[0]==1)sell_rune=1;
else sell_rune=0;
if (start_status==1)text_button0[0]="Стоп";
if (start_status==0)text_button0[0]="Запустить";
}
(Отредактировано автором: 20 Марта, 2018 - 09:09:19) |
|
|
Kibor |
Отправлено: 20 Марта, 2018 - 09:16:38
|
Эксперт
Покинул форум
Сообщений всего: 8218
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Этот код не рабочий.
выкладывайте запускаемый код, а не отрезок.
CODE:int START=0;
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=28; pos_size_button0[0][1]=68; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="пуск";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 281, 157, 163, 133, 1, 1);
//////////
enabletimer(0);
while(START==0)sleep(100);
loop()
{
beep(1200, 200);
sleep(10);//Убрать после теста
}
CREATE_TIMER(0, 50)//Номер таймера, выполнение таймера через мсек.
{
E:;
if (flag_button0[0]>0)
{
flag_button0[0]=0;
if (START==1){START=0; text_button0[0]="пуск";}
else {START=1; text_button0[0]="стоп";}
}
if(START==0){sleep(100); goto E;}
}
|
|
|
dulger |
Отправлено: 28 Марта, 2018 - 23:31:55
|
Участник
Покинул форум
Сообщений всего: 70
Дата рег-ции: Февр. 2017
Репутация: 0
|
Kibor пишет: Этот код не рабочий.
выкладывайте запускаемый код, а не отрезок.
CODE:int START=0;
int pos_size_button0[1][4];
string text_button0[1];
int flag_button0[1];
pos_size_button0[0][0]=28; pos_size_button0[0][1]=68; pos_size_button0[0][2]=100; pos_size_button0[0][3]=20;
text_button0[0]="пуск";
//////////
createdialog(0, BUTTON, #pos_size_button0[0][0], #text_button0[0], #flag_button0[0]);
//////////
showdialog(0, "Диалог", 281, 157, 163, 133, 1, 1);
//////////
enabletimer(0);
while(START==0)sleep(100);
loop()
{
beep(1200, 200);
sleep(10);//Убрать после теста
}
CREATE_TIMER(0, 50)//Номер таймера, выполнение таймера через мсек.
{
E:;
if (flag_button0[0]>0)
{
flag_button0[0]=0;
if (START==1){START=0; text_button0[0]="пуск";}
else {START=1; text_button0[0]="стоп";}
}
if(START==0){sleep(100); goto E;}
}
Как раз хотел себе такое сделать. Спасибо за реализацию, но тут есть одно но. Спустя примерно пару минут кнопка "стоп" сменяется на кнопку "пуск" и скрипт встаёт на паузу, после чего нужно опять нажимать на "пуск" что бы скрипт продолжил свою работу. И так по кругу. В чём может быть проблема? |
|
|
|