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

Страниц (3): « 1 [2] 3 »
 

11. Kibor - 19 Января, 2019 - 06:27:55 - перейти к сообщению
Правильно.
А если нет галки закрывается последний открытый и все.
12. Budni - 19 Января, 2019 - 06:28:59 - перейти к сообщению
 Kibor пишет:
Честно говоря вообще не понятна задача.
 Budni пишет:
одновременно запускать несколько ботов

Где запускать?
Что бы они одновременно работали в разных окнах, или выполняли разные задачи одновременно в одном?

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

Скрипты работают на одном указатели задачи разные.
1ый. Скрипт авто лечение
2ой. Скрипт отвечает за запуск игры в случае дисконекта (тут выход за пределы игрового окна, скрипт работает с экраном)
3ий. Скрипт отвечает за передвижение по карте
4ый. Скрипт отвечает за поиск и убийства моба
5ый. Скрипт отвечает за продажу лута
6ой. За то чтобы сообщения в чат писать.
7ой и так далее.

собственно хотелось бы интерфес сделать, через который можно их запускать сразу или по очереди. Вариант от Zireael меня устраивает но вот пока не получается так сделать.
(Добавление)
 Kibor пишет:
Правильно.
А если нет галки закрывается последний открытый и все.

а как сделать чтобы блокнот (в дальнейшем скрипт) не открывался повторно при стоящей галочки? И закрывался когда она убирается?
13. Kibor - 19 Января, 2019 - 06:33:12 - перейти к сообщению
Но не одновременно же?
Это проверять можно по ходу выполнения бота в цикле. Если надо сделать какое то действие - выполняем эти функции.
Или в таймере.
К примеру во время работы основного бота в таймере проверяется значок чата.
Если есть - отвечать.
14. Budni - 19 Января, 2019 - 06:38:02 - перейти к сообщению
 Kibor пишет:
Но не одновременно же?
Это проверять можно по ходу выполнения бота в цикле. Если надо сделать какое то действие - выполняем эти функции.
Или в таймере.
К примеру во время работы основного бота в таймере проверяется значок чата.
Если есть - отвечать.

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

Так же в таймере не получилось одновременно искать моба и применять лечение. Когда запущено 2 скрипта в эксе проблем таких нет
15. Kibor - 19 Января, 2019 - 06:47:38 - перейти к сообщению
Я это делаю в таймерах и все хорошо.
Конечно в виз редакторе сложно. Там можно привязаться в самом редакторе только к окну одному.
Ну если ответить на вопрос как синхронизировать несколько EXE собранных в кибор работающих одновременно, то
Обмен данными между программами и скриптами. Управление другой программой
То есть при выполнение работы одной программой запрещать другим работать.
Проверку буфера можно в таймере сделать.
Если в буфере есть знак запрета, то делать в таймере замкнутый цикл, пока программа которая записала в буфер запрет не запишет разрешение.
16. Budni - 19 Января, 2019 - 07:00:20 - перейти к сообщению
 Kibor пишет:

То есть при выполнение работы одной программой запрещать другим работать..

Вот хотелось бы чтобы была возможность одновременной работы.
В этом примере
CODE:
start ("C:\notepad.exe" ); // открыть блокнот
sleep(2000); // ждать 2 секунды
win w=window (-1, "Notepad", -1); // получить указатель
sendmessage(WM_CLOSE, 0, 0, w); // закрыть блокнот

Можно сделать так чтобы блокнот не открывался заново когда стоит галочка в диалоговом окне?
17. Kibor - 19 Января, 2019 - 07:08:22 - перейти к сообщению
 Budni пишет:
Можно сделать так чтобы блокнот не открывался заново когда стоит галочка в диалоговом окне?


CODE:
int pos_size_check0[3][4];
string text_check0[3];
int flag_check0[3];

dialog(); // диалог
createdialog(0, CHECK, #pos_size_check0[0][0], #text_check0[0], #flag_check0[0]);
showdialog(0, "Диалог", 500, 300, 160, 160, 1, 1);

loop()
{
func1(); // вызов функции
func2(); // вызов функции
func3(); // вызов функции
sleep(200);
}

function func1()
{
if(flag_check0[0]) // если стоит галка0
{
textbkcolor(255, 65280);
textout(0, 200, 300, "func1 выполняется", 1);
if (window (-1, "Notepad", -1)==0)
{
start ("C:\notepad.exe" ); // открыть блокнот
sleep(2000); // ждать 2 секунды
win w=window (-1, "Notepad", -1); // получить указатель
}
}
else
{
sendmessage(WM_CLOSE, 0, 0, w); // закрыть блокнот
textbkcolor(255, 16777215);
textout(0, 200, 300, "func1 не выполняется", 1);
}
}

function func2()
{
if(flag_check0[1]) // если стоит галка1
{
textbkcolor(255, 65280);
textout(1, 200, 320, "func2 выполняется", 1);
}
else
{
textbkcolor(255, 16777215);
textout(1, 200, 320, "func2 не выполняется", 1);
}
}

function func3()
{
if(flag_check0[2]) // если стоит галка2
{
textbkcolor(255, 65280);
textout(2, 200, 340, "func3 выполняется", 1);
}
else
{
textbkcolor(255, 16777215);
textout(2, 200, 340, "func3 не выполняется", 1);
}
}

function dialog()
{
pos_size_check0[0][0]=17; pos_size_check0[0][1]=20; pos_size_check0[0][2]=60; pos_size_check0[0][3]=20;
pos_size_check0[1][0]=19; pos_size_check0[1][1]=50; pos_size_check0[1][2]=60; pos_size_check0[1][3]=20;
pos_size_check0[2][0]=18; pos_size_check0[2][1]=81; 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]=1;
}
18. Budni - 19 Января, 2019 - 07:12:53 - перейти к сообщению
Отлично, то что надо) Костыль конечно и я так понимаю на сервер не загрузить такое. Но главное работает, спасибо!
19. Budni - 19 Января, 2019 - 12:44:35 - перейти к сообщению
Kibor , можете сказать в чем тут ошибка? Почему пишет что "Повторение метки q7" хотя она не повторяется?

CODE:
int color_KIB_8[6], sum_color_KIB_8[6];
color_KIB_8[0]=16432562; color_KIB_8[1]=9459791; color_KIB_8[2]=12678005; color_KIB_8[3]=16432562; color_KIB_8[4]=12485763; color_KIB_8[5]=10052185;
sum_color_KIB_8[0]=1; sum_color_KIB_8[1]=1; sum_color_KIB_8[2]=1; sum_color_KIB_8[3]=1; sum_color_KIB_8[4]=1; sum_color_KIB_8[5]=1;
int color_KIB_7[2], sum_color_KIB_7[2];
color_KIB_7[0]=7816247; color_KIB_7[1]=8472634;
sum_color_KIB_7[0]=1; sum_color_KIB_7[1]=1;
int color_KIB_6[1], sum_color_KIB_6[1];
color_KIB_6[0]=16776960;
sum_color_KIB_6[0]=2;
int color_KIB_5[2], sum_color_KIB_5[2];
color_KIB_5[0]=7816247; color_KIB_5[1]=8472634;
sum_color_KIB_5[0]=1; sum_color_KIB_5[1]=1;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int sx_KIB, sy_KIB;

start_();


goto m_KIB2;
m_KIB14: findheapcolor_(10, 5, 11, 12, 3000, 0, 0, 0, 0, 0, -1, 0, 0, 500, -1, -1, 0, 1, 94, 227, 733, 506, 6, 3, #sum_KIB, #x_KIB, #y_KIB, #color_KIB_8[0], #sum_color_KIB_8[0]); goto exit_KIB;
m_KIB3: messagebox("Yes");
goto exit_KIB;
m_KIB4: g3:
right();
goto exit_KIB;
m_KIB5: g1:
bot();
goto exit_KIB;
m_KIB6: g2:
top();
goto exit_KIB;
m_KIB7: messagebox("no");
goto exit_KIB;
m_KIB8: g6:
luse();
goto exit_KIB;
m_KIB9: g4:
left();
goto exit_KIB;
m_KIB10: g5:
next();
goto exit_KIB;
m_KIB11: g8:
lool();
goto exit_KIB;
m_KIB12: g7:
non();
goto exit_KIB;
m_KIB13: g7:
low();
goto exit_KIB;
m_KIB2: vib:
string vibor;
loadsymbolbase("C:\Users\budni\Desktop\Bot`s\kibor_set\basetext.sib");

readtext(EN, #vibor, 8, 1, -1, -1, -1, -1, -1, 0, -1, 18, 29, 86, 42, -1);

if (vibor=="bot"){goto g1;}
if (vibor=="top"){goto g2;}
if (vibor=="right"){goto g3;}
if (vibor=="left"){goto g4;}
if (vibor=="next"){goto g5;}
if (vibor=="luse"){goto g6;}
if (vibor=="low"){goto g7;}
if (vibor=="non"){goto g8;}
if (vibor=="lool"){goto g9;}

exit_KIB:;


function start_()
{
pause(1000);
w_KIB=window ( -1);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
sx_KIB=w_KIB.leftclient; sy_KIB=w_KIB.topclient;
}


function mouse_(int p1, int m, int xm, int ym, int p2)
{
xm=xm+sx_KIB; ym=ym+sy_KIB;
pause(p1);
if (m==1) mouse(LEFT, xm, ym);
if (m==2) mouse(MIDDLE, xm, ym);
if (m==3) mouse(RIGHT, xm, ym);
if (m==4) mousedown(LEFT, xm, ym);
if (m==5) mousedown(MIDDLE, xm, ym);
if (m==6) mousedown(RIGHT, xm, ym);
if (m==7) mouseup(LEFT, xm, ym);
if (m==8) mouseup(MIDDLE, xm, ym);
if (m==9) mouseup(RIGHT, xm, ym);
if (m==10) mousedbl(LEFT, xm, ym);
if (m==11) mousedbl(MIDDLE, xm, ym);
if (m==12) mousedbl(RIGHT, xm, ym);
if (m==13) mousemove(xm, ym);
pause(p2);
}


function findheapcolor_(int onx, int ony, int oox, int ooy, int t, int p1, int p2, int m, int xm, int ym, int mov_m, int mov_x, int mov_y, int p3, int wait, int cycle, int r, int k, int xs, int ys, int xf, int yf, int all_col, int min_col, int#sum, int#x, int#y, int#color, int#sum_color)
{
xs=xs+sx_KIB; ys=ys+sy_KIB; xf=xf+sx_KIB; yf=yf+sy_KIB;
int timKIB, sumKIB, xKIB, yKIB, tx, ty, tcycle=0;
sty: pause(p1);
sumKIB=0;
if (t!=0) timKIB=gettime();
a: if (r!=0){sum=findheapcolor(k, #color[0], #sum_color[0], all_col, min_col, #x[0], #y[0], onx, ony, oox, ooy, xs, ys, xf, yf, r, r, r, r, r, r, -1); if (sum>0) goto e;};
else {sum=findheapcolor(k, #color[0], #sum_color[0], all_col, min_col, #x[0], #y[0], onx, ony, oox, ooy, xs, ys, xf, yf, -1); 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){mouse(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==2){mouse(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==3){mouse(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==4){mousedown(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==5){mousedown(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==6){mousedown(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==7){mouseup(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==8){mouseup(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==9){mouseup(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==10){mousedbl(LEFT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==11){mousedbl(MIDDLE, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==12){mousedbl(RIGHT, xs+xKIB+xm, ys+yKIB+ym); goto hy;}
if (m==13)mousemove(xs+xKIB+xm, ys+yKIB+ym);
hy: if (mov_m==1)mousemove(mov_x, mov_y);
if (m>0 && m<14)pause(p3);
if (wait!=-1)
{
for (int ttim=gettime(); gettime()-ttim<wait; sleep(20))
{
if (r!=0){if (findheapcolor(1, #color[0], #sum_color[0], all_col, min_col, #tx, #ty, onx, ony, oox, ooy, xs, ys, xf, yf, r, r, r, r, r, r, -1)==0)return sumKIB;}
else {if (findheapcolor(1, #color[0], #sum_color[0], all_col, min_col, #tx, #ty, onx, ony, oox, ooy, xs, ys, xf, yf, -1)==0)return sumKIB;}
}
if (tcycle<cycle){tcycle++; goto sty;}
return 0;
}
return sumKIB;
}


function top()
{


}


function bot()
{


}


function left()
{


}


function right()
{


}


function next()
{


}


function luse()
{


}


function low()
{


}


function non()
{


}


function lool()
{


}


function 4()
{



}


function bot2()
{
goto exit_KIB;
m_KIB1:

sleep(500);

goto m_KIB2;
m_KIB4: findheapcolor_(9, 6, 25, 22, 3000, 0, 0, 1, 10, 10, 1, 300, 300, 0, 7000, 1, 10, 1, 9, 205, 799, 515, 2, 2, #sum_KIB, #x_KIB, #y_KIB, #color_KIB_7[0], #sum_color_KIB_7[0]); goto exit_KIB;
m_KIB3: findheapcolor_(1, 7, 103, 12, 3000, 0, 0, 0, 0, 0, -1, 0, 0, 500, -1, -1, 0, 1, 20, 582, 218, 595, 1, 1, #sum_KIB, #x_KIB, #y_KIB, #color_KIB_6[0], #sum_color_KIB_6[0]); goto exit_KIB;
m_KIB2: findheapcolor_(9, 6, 25, 22, 3000, 0, 0, 1, 10, 10, -1, 0, 0, 0, -1, -1, 10, 1, 9, 205, 799, 515, 2, 2, #sum_KIB, #x_KIB, #y_KIB, #color_KIB_5[0], #sum_color_KIB_5[0]);
exit_KIB:;
}


function logout()
{



mouse_(0, 1, 413, 408, 0);
}

20. Zireael - 19 Января, 2019 - 12:54:40 - перейти к сообщению
 Цитата:
Почему пишет что "Повторение метки q7" хотя она не повторяется?

 Цитата:
m_KIB12: g7:
non();
goto exit_KIB;
m_KIB13: g7:

В редакторе есть поиск.

Powered by ExBB FM 1.0 Final