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

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

1. Ramzass - 28 Марта, 2016 - 05:37:45 - перейти к сообщению
Доброго дня. Подскажите как можно сделать что бы один скрипт мог в процессе работы передавать управление другому скрипту и при этом сам останавливался.
Пример:
есть скрипт
CODE:
a.txt:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB, tim_KIB;
int Image_0_KIB[5][6];
int i=0;
start_();
i++;
.
function start_()
{
}

function load_image_()
{
}

function findimage_
{
}

и есть b.txt:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB, tim_KIB;
int Image_0_KIB[5][6];
int i=0;
start_();
i--;
.
function start_()
{
}

function load_image_()
{
}

function findimage_
{
}

Как в процессе работы запущенного скрипта а.txt при нужном условии запустить b.txt (а.txt прекращает работу) без сбора их в отдельные экзешники, именно скриптами.

И можно ли выносить часть скрипта в отдельный файл и брать из него указанные в нем функции(Например вынести функции формируемые графическим редактором типа mouse_, load_image_, findimage_ в отдельный файл функций и брать выполнение этих функций их этого файла). Тоесть возможно ли создавать свои функции вне текущего скрипта и выполнять их без создании dll
2. Kibor - 28 Марта, 2016 - 06:08:29 - перейти к сообщению
 Ramzass пишет:
можно ли выносить часть скрипта в отдельный файл и брать из него указанные в нем функции(Например вынести функции формируемые графическим редактором типа mouse_, load_image_, findimage_ в отдельный файл функций и брать выполнение этих функций их этого файла). Тоесть возможно ли создавать свои функции вне текущего скрипта и выполнять их без создании dll

да.
include

 Ramzass пишет:
Как в процессе работы запущенного скрипта а.txt при нужном условии запустить b.txt (а.txt прекращает работу) без сбора их в отдельные экзешники, именно скриптами.


пример ниже.

это в файл подключаемый liba.txt
в него перенести переменные (с обоих проектов, но что бы не повторялись),
сами функции (с обоих проектов, но что бы не повторялись) и вызов функции start_();
CODE:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB, tim_KIB;
int Image_0_KIB[30][42];

start_();

function start_()
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}

function key_(int k, int m, int p1, int p2)
{
pause(p1);
if (m==1) key(k);
if (m==2) keydown(k);
if (m==3) keyup(k);
pause(p2);
}

function mouse_(int p1, int m, int xm, int ym, int p2)
{
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) mousemove(xm, ym);
pause(p2);
}


function load_image_()
{
loadimage (#Image_0_KIB[0][0], "C:\Image_0.bmp");
}


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#sum, int#x, int#y)
{
pause(p1);
sum_KIB=0;
if (t!=1) tim_KIB=gettime();
a: if (r==0 && p==100){sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], 0, 0, ex_KIB, ey_KIB, -1); if (sum>0) goto e;}
else {sum=findimage(k, #Image[0][0], fon, #x[0], #y[0], 0, 0, ex_KIB, ey_KIB, r, r, r, r, r, r, p, 1, -1); if (sum>0) goto e;}
if (t==0) return 0;
if (gettime()-tim_KIB<t){sleep(20); goto a;}
return 0;
e: sum_KIB=sum; x_KIB=x[0]; y_KIB=y[0];
pause(p2);
if (m==1){mouse(LEFT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==2){mouse(MIDDLE, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==3){mouse(RIGHT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==4){mousedown(LEFT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==5){mousedown(MIDDLE, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==6){mousedown(RIGHT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==7){mouseup(LEFT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==8){mouseup(MIDDLE, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==9){mouseup(RIGHT, x_KIB+xm, y_KIB+ym); pause(p3);}
if (m==10){mousemove(x_KIB+xm, y_KIB+ym); pause(p3);}
return sum_KIB;
}


это пример как оформить сам проект.
саму логику оформляем в функции как тут.
CODE:
#include "C:\Program Files (x86)\Kibor\liba.txt"// подключаем наш код с нашими функциями

aaaaa();




function aaaaa()//это первый проект
{
loop()
{
if (findimage_(#Image_0_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 0, 100, 1, #sum_KIB, #x_KIB, #y_KIB)>0)
{
bbbbb();//идем к второму проекту
return;//выходим
}
mouse_(0, 1, 0, 0, 0);
}
}


function bbbbb()//это второй проект
{
key_(65, 1, 0, 0);
mouse_(0, 1, 0, 0, 0);
}


но.. единственное что надо, это переменные в которые грузим изображение переименовать в одном проекте. что б не повторялись. и руками совместить их загруз в функции function load_image_()
3. Ramzass - 28 Марта, 2016 - 07:46:45 - перейти к сообщению
Спасибо большое, перевариваю.

Powered by ExBB FM 1.0 Final