Zireael |
Отправлено: 19 Ноября, 2022 - 21:12:27
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: не понимаю, как передать в функцию.
В справке по function есть пример как передавать указатели.
CODE:int X,Y;
int ГЛОТ[23][10];loadimage(#ГЛОТ[0][0],"D:\2\ГЛУТ.bmp");
ris(#ГЛОТ[0][0]);
function ris(int #Z)
{
if(findimage(1,#Z[0][0],0,#X,#Y,0,0,1900,1700,-1)>0)
{messagebox("ВИЖУ");}
} |
|
|
Val_027 |
Отправлено: 21 Ноября, 2022 - 11:04:33
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
int sb;
fim(#ГЛТ[0][0]);
if(sb>0) {Txt("ВИЖУ РАБОТАЮ");sleep(1800);}
if(sb==0){Txt("НЕ ВИЖУ ПРОПУСКАЮ ");sleep(1800);}
function fim(int #bmp)
{rep:
sb=findimage(1,#bmp[0][0],0,#X,#Y,0,0,1900,1700,-1);
if(sb>0){m(X,Y+4);sleep(800);} // ESC
else{loop(){Txt("1/esc?"); // КЛ1 ПОВТОРИТЬ ПОИСК esc ВЫХОД
if(getkeystate 49){Tcl(1);goto rep;}
if(getkeystate 27){goto aut;}sleep(99);}}
aut:Tcl(1);} // ВЫХОД И ЧИСТКА Txt
можно ли тут что то сократить ? ну если не лень....
m(X,Y+4);Tcl(1);Txt("1/esc?");это функции |
|
|
Val_027 |
Отправлено: 05 Декабря, 2022 - 20:23:32
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
Val_027 пишет: Подскажите плиз ...
fsm(#bmp[0][0],x,y);
function fsm (int #bmp,int x,int y)
{
if(findimage(1,#bmp[0][0],0,#X,#Y,0,0,1900,1700,-1)==0)
{
mouse(LEFT,x,y); // НЕ ВИЖУ ТЫКАЮ
}
}
как сделать передаваемой в функцию ==0 >0 <0 в зависимости от необходимости ??? |
|
|
Zireael |
Отправлено: 06 Декабря, 2022 - 01:56:04
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: как сделать передаваемой в функцию ==0 >0 <0 в зависимости от необходимости ???
CODE:fsm(10, 7, 0); // сложить
fsm(10, 7, 1); // вычесть
fsm(10, 7, 2); // умножить
fsm(10, 7, 3); // разделить
function fsm (int x,int y, int action)
{
if(action==0)messagebox(x+y);
if(action==1)messagebox(x-y);
if(action==2)messagebox(x*y);
if(action==3)messagebox(x/y);
} |
|
|
Val_027 |
Отправлено: 06 Декабря, 2022 - 08:40:59
|
Участник
Покинул форум
Сообщений всего: 114
Дата рег-ции: Февр. 2020
Репутация: 0
|
Zireael пишет: function fsm (int x,int y, int action)
{if(action==0)messagebox(x+y);
К сожалению не совсем то, нет универсальности /все делается в функции/
а надо чтоб именно передать в функцию прибавить ли. отнять ли. больше. меньше...
fsm(#bmp[0][0],x,y,c>0);
fsm(#bmp[0][0],x,y,c==0);
fsm(#bmp[0][0],x,y,c>=0);
fsm(#bmp[0][0],x,y,c<0); // В ОСНОВНОМ теле с разными параметрами вызывать функцию ???
function fsm (int #bmp,int x,int y,int c)
{if(findimage(1,#bmp[0][0],0,#X,#Y,0,0,1900,1700,-1)c)
{БОЛЬШЕ НУЛЯ;}}
НО ЕСЛИ ТАК НЕЛЬЗЯ, ТО ВПОЛНЕ ГОДНЫЙ ВАРИАНТ СПАСИБО !!! |
|
|
Zireael |
Отправлено: 18 Февраля, 2023 - 22:45:54
|
Эксперт
Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017
Репутация: 585
|
Цитата: gk(49){тут тело скрипта;} // если кл 1 нажата то выполняется в скобках скрипт .....
CODE:loop()
{
if(gk(49))
{
messagebox("тут тело скрипта");
}
sleep(10);
}
function gk (int x)
{
return getkeystate (x);
} |
|
|
|