Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Без описания
007wan
Отправлено: 31 Марта, 2017 - 19:50:43
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




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

Есть 4 галки, назовем их так:галка1,галка2,галка3, а состояние галки назовем "крестиком"(что бы не повторялось типа, "в галке1 стоит галка")
суть:
расскажу на примере, если ставим на галку1 крестик, то все остальные галки будут обнулены(т.е галка 2 и галка3)или же если поставим крестик на галку2, то остальные буду обнулены, таким образом пользователю даем право поставить крестик в ЛЮБУЮ ОДНУ галку.


Если не понятно, то в качестве реального примера можно взять в программе KIBOR--->Настройки--->Запись действий. Там стоят 3 галки и можно поставить крест в одну из трех галок.
 
 Top
Kibor
Отправлено: 31 Марта, 2017 - 19:54:25
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




http://kibor-bot.com/forum/topic...m=15&topic=1
переношу в вопросы.
 
 Top
idcco
Отправлено: 31 Марта, 2017 - 21:43:42
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2017  
Репутация: 5




Ответ есть тут. Ищите переключатель галок.
 
 Top
007wan
Отправлено: 01 Апреля, 2017 - 10:32:34
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




 Kibor пишет:
http://kibor-bot.com/forum/topic...m=15&topic=1
переношу в вопросы.

Ну блин, не все же за оплату? вы же создатель бота должны же хоть 1 раз помочь, мне еще так и никто не помог за просто так.
(Добавление)
 Kibor пишет:
http://kibor-bot.com/forum/topic...m=15&topic=1
переношу в вопросы.

я так понял, что if (flag_button0[0]==1) flag_button1[1]==0;flag_button2[1]==0
 
 Top
Kibor
Отправлено: 01 Апреля, 2017 - 11:09:57
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Не все конечно за деньги. Этот раздел помощь. Тот заказы. Там за деньги. Тут вопросы.
Помощь сложно оказывать когда требуется писать код, а не помогать советом как написать..
idcco правильно дал ссылку. Так в примере реализовано это.

Вот таким планом это можно реализовать.
CODE:
int pos_size_check0[3][4];
string text_check0[3];
int flag_check0[3];

pos_size_check0[0][0]=20; pos_size_check0[0][1]=18; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=91; pos_size_check0[1][1]=18; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
pos_size_check0[2][0]=167; pos_size_check0[2][1]=18; pos_size_check0[2][2]=60; pos_size_check0[2][3]=20;
text_check0[0]="Галка 0"; text_check0[1]="Галка 1"; text_check0[2]="Галка 2";
flag_check0[0]=1; flag_check0[1]=0; flag_check0[2]=0;

//////////

createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
//////////

showdialog(0, "Диалог", 558, 234, 250, 90, 1, 1);
//////////
int t_flag_check0[3];
for (int n=0; n<3; n++)t_flag_check0[n]=flag_check0[n];
enabletimer(0);


loop() sleep(10);//Убрать после теста



CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
if (flag_check0[0]==1 && t_flag_check0[0]!=flag_check0[0])
{flag_check0[1]=0; flag_check0[2]=0; t_flag_check0[1]=0; t_flag_check0[2]=0; t_flag_check0[0]=flag_check0[0];}

if (flag_check0[1]==1 && t_flag_check0[1]!=flag_check0[1])
{flag_check0[0]=0; flag_check0[2]=0; t_flag_check0[0]=0; t_flag_check0[2]=0; t_flag_check0[1]=flag_check0[1];}

if (flag_check0[2]==1 && t_flag_check0[2]!=flag_check0[2]){
flag_check0[0]=0; flag_check0[1]=0; t_flag_check0[0]=0; t_flag_check0[1]=0; t_flag_check0[2]=flag_check0[2];}

if (flag_check0[0]==0 && flag_check0[1]==0 && flag_check0[2]==0)
{
if (t_flag_check0[0]!=flag_check0[0]){flag_check0[0]=1;t_flag_check0[0]=flag_check0[0];}
if (t_flag_check0[1]!=flag_check0[1]){flag_check0[1]=1;t_flag_check0[1]=flag_check0[1];}
if (t_flag_check0[2]!=flag_check0[2]){flag_check0[2]=1;t_flag_check0[2]=flag_check0[2];}
}
}

(Добавление)
Ну а вообще для такого стоит использовать список..
 
 Top
idcco
Отправлено: 01 Апреля, 2017 - 11:44:53
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 67
Дата рег-ции: Март 2017  
Репутация: 5




CODE:
int x, y;

//объявляем галки
int pos_size_check[4][4];//4 галки
string text_check[4];
int flag_check[4];

//ставим позиции, размеры, названия галок, и флаги (показаны или нет)
pos_size_check[0][0]=10; pos_size_check[0][1]=10; pos_size_check[0][2]=50; pos_size_check[0][3]=20;
flag_check[0]=1;
text_check[0]="Check1";

pos_size_check[1][0]=60; pos_size_check[1][1]=10; pos_size_check[1][2]=50; pos_size_check[1][3]=20;
flag_check[1]=0;
text_check[1]="Check2";

pos_size_check[2][0]=110; pos_size_check[2][1]=10; pos_size_check[2][2]=50; pos_size_check[2][3]=20;
flag_check[2]=0;
text_check[2]="Check3";

pos_size_check[3][0]=160; pos_size_check[3][1]=10; pos_size_check[3][2]=50; pos_size_check[3][3]=20;
flag_check[3]=0;
text_check[3]="Check4";

//создаем диалог
createdialog(0, CHECK, #pos_size_check[0][0], #text_check[0], #flag_check[0]);
getdisplay(32, x, y);
showdialog(0, "4 галки", x/2-110, y/2-30, 220, 60, 1, 0);

//дублируем флаги для отслеживания
int t_flag_check[4];
for (int n=0; n<4; n++)
t_flag_check[n]=flag_check[n];
enabletimer(0);

//запускаем основной цикл
loop() sleep(20);

//прописываем принцип переключателя галок
function checker()
{
if (flag_check[0]==1 && t_flag_check[0]!=flag_check[0]) //если в галке 1 стоит крестик и он был изменен
{
flag_check[1]=0; //отключаем остальные
flag_check[2]=0;
flag_check[3]=0;
t_flag_check[1]=0; //фиксируем изменения в дублирующих переменных
t_flag_check[2]=0;
t_flag_check[3]=0;
t_flag_check[0]=flag_check[0];
}

if (flag_check[1]==1 && t_flag_check[1]!=flag_check[1]) // так для каждой
{
flag_check[0]=0;
flag_check[2]=0;
flag_check[3]=0;
t_flag_check[0]=0;
t_flag_check[2]=0;
t_flag_check[3]=0;
t_flag_check[1]=flag_check[1];
}

if (flag_check[2]==1 && t_flag_check[2]!=flag_check[2])
{
flag_check[0]=0;
flag_check[1]=0;
flag_check[3]=0;
t_flag_check[0]=0;
t_flag_check[1]=0;
t_flag_check[3]=0;
t_flag_check[2]=flag_check[2];
}

if (flag_check[3]==1 && t_flag_check[3]!=flag_check[3])
{
flag_check[0]=0;
flag_check[1]=0;
flag_check[2]=0;
t_flag_check[0]=0;
t_flag_check[1]=0;
t_flag_check[2]=0;
t_flag_check[3]=flag_check[3];
}

if (flag_check[0]==0 && flag_check[1]==0 && flag_check[2]==0 && flag_check[3]==0) // если все галки без крестиков
{
if (t_flag_check[0]!=flag_check[0]) //если крестик был убран из первой галки
{
flag_check[0]=1; //возвращаем и фиксируем в дублирующей переменной
t_flag_check[0]=flag_check[0];
}
if (t_flag_check[1]!=flag_check[1]) //так для каждой галки
{
flag_check[1]=1;
t_flag_check[1]=flag_check[1];
}
if (t_flag_check[2]!=flag_check[2])
{
flag_check[2]=1;
t_flag_check[2]=flag_check[2];
}
if (t_flag_check[2]!=flag_check[2])
{
flag_check[3]=1;
t_flag_check[3]=flag_check[3];
}
}
}

//отслеживаем события
CREATE_TIMER(0, 50)
{
//отслеживаем изменения галок
checker();
}

(Добавление)
Хах... То же самое почти )))
 
 Top
007wan
Отправлено: 01 Апреля, 2017 - 16:29:19
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1838
Дата рег-ции: Март 2017  
Репутация: -2




 Kibor пишет:
Не все конечно за деньги. Этот раздел помощь. Тот заказы. Там за деньги. Тут вопросы.
Помощь сложно оказывать когда требуется писать код, а не помогать советом как написать..
idcco правильно дал ссылку. Так в примере реализовано это.

Вот таким планом это можно реализовать.
CODE:
int pos_size_check0[3][4];
string text_check0[3];
int flag_check0[3];

pos_size_check0[0][0]=20; pos_size_check0[0][1]=18; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=91; pos_size_check0[1][1]=18; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
pos_size_check0[2][0]=167; pos_size_check0[2][1]=18; pos_size_check0[2][2]=60; pos_size_check0[2][3]=20;
text_check0[0]="Галка 0"; text_check0[1]="Галка 1"; text_check0[2]="Галка 2";
flag_check0[0]=1; flag_check0[1]=0; flag_check0[2]=0;

//////////

createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
//////////

showdialog(0, "Диалог", 558, 234, 250, 90, 1, 1);
//////////
int t_flag_check0[3];
for (int n=0; n<3; n++)t_flag_check0[n]=flag_check0[n];
enabletimer(0);


loop() sleep(10);//Убрать после теста



CREATE_TIMER(0, 100)//Номер таймера, выполнение таймера через мсек.
{
if (flag_check0[0]==1 && t_flag_check0[0]!=flag_check0[0])
{flag_check0[1]=0; flag_check0[2]=0; t_flag_check0[1]=0; t_flag_check0[2]=0; t_flag_check0[0]=flag_check0[0];}

if (flag_check0[1]==1 && t_flag_check0[1]!=flag_check0[1])
{flag_check0[0]=0; flag_check0[2]=0; t_flag_check0[0]=0; t_flag_check0[2]=0; t_flag_check0[1]=flag_check0[1];}

if (flag_check0[2]==1 && t_flag_check0[2]!=flag_check0[2]){
flag_check0[0]=0; flag_check0[1]=0; t_flag_check0[0]=0; t_flag_check0[1]=0; t_flag_check0[2]=flag_check0[2];}

if (flag_check0[0]==0 && flag_check0[1]==0 && flag_check0[2]==0)
{
if (t_flag_check0[0]!=flag_check0[0]){flag_check0[0]=1;t_flag_check0[0]=flag_check0[0];}
if (t_flag_check0[1]!=flag_check0[1]){flag_check0[1]=1;t_flag_check0[1]=flag_check0[1];}
if (t_flag_check0[2]!=flag_check0[2]){flag_check0[2]=1;t_flag_check0[2]=flag_check0[2];}
}
}

(Добавление)
Ну а вообще для такого стоит использовать список..




[size=24][/size]Спасибо вам большое, буду знать
(Добавление)
 Kibor пишет:
Ну а вообще для такого стоит использовать список..


Список знаю как но у меня уже бот со списком и там 4-5 строки в списке, это не совсем красиво, да и еще не могли бы вы объяснить как сделать, что бы было 2 кнопки и одна работала с одним скриптом, другая с другим скриптом, и они не зависели друг от друга?

(Отредактировано автором: 01 Апреля, 2017 - 16:30:19)

 
 Top
Kibor
Отправлено: 01 Апреля, 2017 - 16:39:46
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8095
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Да просто нужные контролы отслеживать в своей ветке работы ОДНОГО сткрипта.
А одно окно на два скрипта юзать не получится.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by