Budni |
Отправлено: 19 Января, 2019 - 14:28:59
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Kibor пишет: Честно говоря вообще не понятна задача.
Budni пишет: одновременно запускать несколько ботов
Где запускать?
Что бы они одновременно работали в разных окнах, или выполняли разные задачи одновременно в одном?
Код визуального редактора не предназначен для ручной корректировки. Можно, но для этого надо знать что делаете. А в этом случае лучше писать кодом.
Скрипты работают на одном указатели задачи разные.
1ый. Скрипт авто лечение
2ой. Скрипт отвечает за запуск игры в случае дисконекта (тут выход за пределы игрового окна, скрипт работает с экраном)
3ий. Скрипт отвечает за передвижение по карте
4ый. Скрипт отвечает за поиск и убийства моба
5ый. Скрипт отвечает за продажу лута
6ой. За то чтобы сообщения в чат писать.
7ой и так далее.
собственно хотелось бы интерфес сделать, через который можно их запускать сразу или по очереди. Вариант от Zireael меня устраивает но вот пока не получается так сделать.
(Добавление)
Kibor пишет: Правильно.
А если нет галки закрывается последний открытый и все.
а как сделать чтобы блокнот (в дальнейшем скрипт) не открывался повторно при стоящей галочки? И закрывался когда она убирается? |
|
|
Budni |
Отправлено: 19 Января, 2019 - 14:38:02
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Kibor пишет: Но не одновременно же?
Это проверять можно по ходу выполнения бота в цикле. Если надо сделать какое то действие - выполняем эти функции.
Или в таймере.
К примеру во время работы основного бота в таймере проверяется значок чата.
Если есть - отвечать.
С таймерами пробывал, но что то не пошло, например при дисконете мне нужно из указателя перейти в экранные координаты.
Так же в таймере не получилось одновременно искать моба и применять лечение. Когда запущено 2 скрипта в эксе проблем таких нет(Отредактировано автором: 19 Января, 2019 - 14:40:44) |
|
|
Budni |
Отправлено: 19 Января, 2019 - 15:00:20
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
Kibor пишет:
То есть при выполнение работы одной программой запрещать другим работать..
Вот хотелось бы чтобы была возможность одновременной работы.
В этом примере CODE:start ("C:\notepad.exe" ); // открыть блокнот
sleep(2000); // ждать 2 секунды
win w=window (-1, "Notepad", -1); // получить указатель
sendmessage(WM_CLOSE, 0, 0, w); // закрыть блокнот
Можно сделать так чтобы блокнот не открывался заново когда стоит галочка в диалоговом окне? |
|
|
Kibor |
Отправлено: 19 Января, 2019 - 15:08:22
|
Эксперт
Покинул форум
Сообщений всего: 8219
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
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;
} |
|
|
Budni |
Отправлено: 19 Января, 2019 - 20:44:35
|
Специалист
Покинул форум
Сообщений всего: 419
Дата рег-ции: Март 2018
Репутация: 2
|
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);
}
(Отредактировано автором: 19 Января, 2019 - 20:45:09) |
|
|
Zireael |
Отправлено: 19 Января, 2019 - 20:54:40
|
Эксперт
Покинул форум
Сообщений всего: 4466
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: Почему пишет что "Повторение метки q7" хотя она не повторяется?
Цитата: m_KIB12: g7:
non();
goto exit_KIB;
m_KIB13: g7:
В редакторе есть поиск. |
|
|
|