AdryV |
Отправлено: 05 Декабря, 2016 - 10:05:56
|
Специалист
Покинул форум
Сообщений всего: 449
Дата рег-ции: Май 2016
Репутация: 11
|
strannik83 пишет: Есть ли видео по созданию графической оболочки?
нет
strannik83 пишет: Или визуальный редактор диалогов.
есть
strannik83 пишет: Как привязать действия к созданным кнопкам ?
смотрите в готовых скриптах, или Немодальные диалоговые окна для интерактивного управления скриптом |
|
|
strannik83 |
Отправлено: 05 Декабря, 2016 - 15:44:51
|
Прохожий
Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2016
Репутация: 0
|
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[69][65];
int Image_1_KIB[44][51];
start_();
function start_()
{
load_image_();
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}
function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, w_KIB); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, w_KIB); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){sendmouse(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==2){sendmouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==3){sendmouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==4){sendmousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==5){sendmousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==6){sendmousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==7){sendmouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==8){sendmouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==9){sendmouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==10){sendmousemove(xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
return sumKIB;
}
function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Program Files (x86)\Kibor3\дерево\28.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Program Files (x86)\Kibor3\Image_на дерево.bmp");
}
function на сбор еды ()
{
m_KIB1: findimage_(#Image_0_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
exit_KIB:;
}
function на сбор дерева ()
{
m_KIB1: findimage_(#Image_1_KIB[0][0], 0, 2000, 330, 1, 2, 3, 33, -1, 25, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB);
exit_KIB:;
}
int pos_size_check0[2][4];
string text_check0[2];
int flag_check0[2];
pos_size_check0[0][0]=35; pos_size_check0[0][1]=18; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=148; pos_size_check0[1][1]=18; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
text_check0[0]="дерево"; text_check0[1]="еда";
flag_check0[0]=0; flag_check0[1]=0;
//////////
createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
//////////
showdialog(0, "Диалог", 835, 390, 250, 300, 1, 1);
//////////
loop() sleep(10);//Убрать после теста
(Добавление)
есть две функции на сбор дерева и на сбор еды . в визуальном редакторе диалогов две галки дерево и еда. как сделать чтоб по выборе галки выполнялась именно та функция ?
(Добавление)
как привязать галку к функции ? |
|
|
Kibor |
Отправлено: 05 Декабря, 2016 - 16:48:33
|
Эксперт
Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Для начала немодальные окна не нужны тут. И они сложноваты.
реализовывать так
Создать отдельный блок кода в стороне
Цитата: CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список
}
После блока старт создать блок кода в котором прописать
Цитата: if (getcontrol(COMBO_0)=="Выбор строки 1")goto a;
if (getcontrol(COMBO_0)=="Выбор строки 2")goto b;
if (getcontrol(COMBO_0)=="Выбор строки 3")goto c;
Потом создать 3 блока кода. Они не связаны с блоком старт никак
В первом прописать
Цитата: a:;
во втором
Цитата: b:;
в третьем
Цитата: c:;
Теперь от этих трех блоков кода вести ветви к нужным реализациям бота. В зависимости от выбора меню будет работать та ветвь. |
|
|
strannik83 |
Отправлено: 05 Декабря, 2016 - 17:19:44
|
Прохожий
Покинул форум
Сообщений всего: 19
Дата рег-ции: Нояб. 2016
Репутация: 0
|
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[29][23];
int Image_1_KIB[32][25];
int Image_2_KIB[71][22];
start_();
goto m_KIB2;
m_KIB6: findimage_(#Image_0_KIB[0][0], 0, 0, 22, 1, 2, 2, 22, -1, 14, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB); goto exit_KIB;
m_KIB1: CREATE_INTERFACE
{
DIALOG "Название окна" 237 180 //РазмерX РазмерY
BUTTONSCRIPT "Запустить" 125 121 100 25 //ПозицияX ПозицияY РазмерX РазмерY
//Добавление контролов управления ......
COMBO_0 0 /*Начальный выбор*/ "Выбор строки 1" | "Выбор строки 2" | "Выбор строки 3" 10 40 212 200 //ПозицияX ПозицияY РазмерX РазмерY_выпадающий список goto exit_KIB;
m_KIB3: a:;
findimage_(#Image_1_KIB[0][0], 0, 1000, 12, 1, 2, 2, 12, -1, 15, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB); goto exit_KIB;
m_KIB5: c:;
findimage_(#Image_2_KIB[0][0], 0, 1000, 3, 1, 3, 3, 3, -1, 15, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB); goto exit_KIB;
m_KIB4: b:; goto m_KIB6;
m_KIB2: if (getcontrol(COMBO_0)=="Выбор строки 1")goto a;
if (getcontrol(COMBO_0)=="Выбор строки 2")goto b;
if (getcontrol(COMBO_0)=="Выбор строки 3")goto c;
exit_KIB:;
function start_()
{
load_image_();
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(1, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}
function findimage_(int #Image, int t, int p1, int p2, int m, int xm, int ym, int p3, int fon, int r, int p, int k, int xs, int ys, int xf, int yf, int#sum, int#x, int#y)
{
int timKIB, sumKIB, xKIB, yKIB;
pause(p1);
sumKIB=0;
if (t!=1) timKIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, w_KIB); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], xs, ys, xf, yf, r, r, r, r, r, r, p, 1, w_KIB); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-timKIB<t){sleep(20); goto a;}
return 0;
e: sumKIB=sum; xKIB=x[0]; yKIB=y[0];
pause(p2);
if (m==1){sendmouse(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==2){sendmouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==3){sendmouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==4){sendmousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==5){sendmousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==6){sendmousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==7){sendmouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==8){sendmouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==9){sendmouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
if (m==10){sendmousemove(xs+xKIB+xm, ys+yKIB+ym, w_KIB); pause(p3);}
return sumKIB;
}
function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Program Files (x86)\Kibor3\калькулятор\кнопка2.bmp");
loadimage (#Image_1_KIB[0][0], "C:\Program Files (x86)\Kibor3\калькулятор\кнопка 1.bmp");
loadimage (#Image_2_KIB[0][0], "C:\Program Files (x86)\Kibor3\2.bmp");
}
на примере калькулятора ,три варианта нажимания кнопки . при старте выдает ошибку CREATE_INTERFACE |
|
|
|