Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Кнопка паузы

Страниц (1): [1]
 

1. ivantu - 20 Марта, 2018 - 01:09:49 - перейти к сообщению
Здравствуйте, уважаемые знатоки, подскажите как реализовать кнопку запуска бота,

Которая запускала бы основной цикл бота, и приостанавливала бы его при повторном нажатии на нее, перебрал уже все что смог придумать мозг кипит...

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);
}
}
2. Kibor - 20 Марта, 2018 - 01:34:24 - перейти к сообщению
Останавливает в любой позиции работы и продолжением с позиции остановки.

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;}
}

3. ivantu - 20 Марта, 2018 - 01:39:34 - перейти к сообщению
Огромное спасибо, за такую реализацию! Сам бы никогда не додумался... ( Не понял
4. Kibor - 20 Марта, 2018 - 01:40:10 - перейти к сообщению
Подправил немного только что..
5. ivantu - 20 Марта, 2018 - 01:53:04 - перейти к сообщению
Все просто супер, как и хотел, сейчас еще текст кнопочки сделаю меняющийся, и все как задумано будет )) Ламер
(Добавление)
Как всегда возникают трудности на ровном месте, что не так почему не меняет надписи?

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]="Запустить";
}

6. Kibor - 20 Марта, 2018 - 02:16:38 - перейти к сообщению
Этот код не рабочий.
выкладывайте запускаемый код, а не отрезок.
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;}
}
7. ivantu - 20 Марта, 2018 - 02:31:46 - перейти к сообщению
Извиняюсь за не полный код, просто использую #include собирать рабочий код воедино сложно, Ваш код полностью рабочий, спасибо за помощь.
8. dulger - 28 Марта, 2018 - 15:31:55 - перейти к сообщению
 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;}
}


Как раз хотел себе такое сделать. Спасибо за реализацию, но тут есть одно но. Спустя примерно пару минут кнопка "стоп" сменяется на кнопку "пуск" и скрипт встаёт на паузу, после чего нужно опять нажимать на "пуск" что бы скрипт продолжил свою работу. И так по кругу. В чём может быть проблема?

Powered by ExBB FM 1.0 Final