Эксперт
Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
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_() |