1. strannik83 - 04 Декабря, 2016 - 07:33:09 - перейти к сообщению
Можно ли создать управляемый бот, с программой управления им (выбор вида ресурса для сбора, выбор вида войск для создания и т.д.).Чтоб действия бота можно было переключить из меню, не меняя что-то в самом боте.Может у кого есть какие идеи для управления ботом?
2. Kibor - 04 Декабря, 2016 - 07:37:05 - перейти к сообщению
3. strannik83 - 05 Декабря, 2016 - 01:10:50 - перейти к сообщению
Есть ли видео по созданию графической оболочки?
(Добавление)
Или визуальный редактор диалогов. Как привязать действия к созданным кнопкам ?
(Добавление)
strannik83 пишет:
Есть ли видео по созданию графической оболочки?
Или визуальный редактор диалогов. Как привязать действия к созданным кнопкам ?
4. AdryV - 05 Декабря, 2016 - 02:05:56 - перейти к сообщению
strannik83 пишет:
Есть ли видео по созданию графической оболочки?
нет
strannik83 пишет:
Или визуальный редактор диалогов.
есть
strannik83 пишет:
Как привязать действия к созданным кнопкам ?
смотрите в готовых скриптах, или Немодальные диалоговые окна для интерактивного управления скриптом
5. strannik83 - 05 Декабря, 2016 - 07:44:51 - перейти к сообщению
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);//Убрать после теста
(Добавление)
есть две функции на сбор дерева и на сбор еды . в визуальном редакторе диалогов две галки дерево и еда. как сделать чтоб по выборе галки выполнялась именно та функция ?
(Добавление)
как привязать галку к функции ?
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);//Убрать после теста
(Добавление)
есть две функции на сбор дерева и на сбор еды . в визуальном редакторе диалогов две галки дерево и еда. как сделать чтоб по выборе галки выполнялась именно та функция ?
(Добавление)
как привязать галку к функции ?
6. Kibor - 05 Декабря, 2016 - 08:09:30 - перейти к сообщению
Привязать так
И делается это в блоке кода.
CODE:
if (flag_check0[0]==1)на_сбор_еды ();
if (flag_check0[1]==1)на_сбор_дерева ();
if (flag_check0[1]==1)на_сбор_дерева ();
И делается это в блоке кода.
7. strannik83 - 05 Декабря, 2016 - 08:32:06 - перейти к сообщению
в блоке кода диалога ?
8. Kibor - 05 Декабря, 2016 - 08:48:33 - перейти к сообщению
Для начала немодальные окна не нужны тут. И они сложноваты.
реализовывать так
Создать отдельный блок кода в стороне
После блока старт создать блок кода в котором прописать
Потом создать 3 блока кода. Они не связаны с блоком старт никак
В первом прописать
во втором
в третьем
Теперь от этих трех блоков кода вести ветви к нужным реализациям бота. В зависимости от выбора меню будет работать та ветвь.
реализовывать так
Создать отдельный блок кода в стороне
Цитата:
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_выпадающий список
}
{
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;
if (getcontrol(COMBO_0)=="Выбор строки 2")goto b;
if (getcontrol(COMBO_0)=="Выбор строки 3")goto c;
Потом создать 3 блока кода. Они не связаны с блоком старт никак
В первом прописать
Цитата:
a:;
во втором
Цитата:
b:;
в третьем
Цитата:
c:;
Теперь от этих трех блоков кода вести ветви к нужным реализациям бота. В зависимости от выбора меню будет работать та ветвь.
9. AdryV - 05 Декабря, 2016 - 09:12:08 - перейти к сообщению
10. strannik83 - 05 Декабря, 2016 - 09:19:44 - перейти к сообщению
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
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