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

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

21. Kibor - 06 Августа, 2018 - 09:09:23 - перейти к сообщению
Помню какой то эмулятор не поддавался программному перемещению. Какой не помню.
22. vikkuzz - 06 Августа, 2018 - 09:24:33 - перейти к сообщению
да,все,понял. добавил клик мышкой перед установкой параметров окна - заработало.
(Добавление)
теперь вопрос такой.... если я писал бота с применением поиска по цвету в определенных координатах при одном положении окна клиента,то если я сейчас изменю расположение окна ,все координаты придется переписывать? или это можно задать программно. смещение координат на определенное расстояние.
23. Kibor - 06 Августа, 2018 - 09:48:57 - перейти к сообщению
Если работа на экране, то надо запомнить координаты окна при которых писался бот и после каждого запуска устанавливать скриптом окно в те координаты.
окно лучше располагать в левом верхнем углу.
24. vikkuzz - 06 Августа, 2018 - 10:00:17 - перейти к сообщению
 Kibor пишет:
Если работа на экране, то надо запомнить координаты окна при которых писался бот и после каждого запуска устанавливать скриптом окно в те координаты.
окно лучше располагать в левом верхнем углу.


вот,я так и делал. проблема в том,что я писал бота на старой версии блюстакса. и когда я через moveclient двигал в х=0 у=0, то рамки блюстакса выходили за край экрана и таким образом экранные и клиентские координаты совпадали. потом я скачал нокс. и обнаружил,что когда его сдвигает в угол, рамки не выходят за край,и получается сдвиг в координатах. потом скачал новый блюстакс, и у него так же. только верхняя шапка у него еще шире и сдвиг еще больше. эти рамки не уходят за край экрана, потому что это видимо запрещено в этих версиях нокса и блюстакса,т.к. просто мышкой их тоже нельзя туда сдвинуть. потому, я думаю, что нужно просто сдвинуть настройки первоначальной установки окна клиента,чтобы все рамки влазили, и тогда бот будет работать на этих эмуляторах. но тогда мне надо переписать координаты. другого пути не вижу.
25. Kibor - 06 Августа, 2018 - 10:14:57 - перейти к сообщению
Если пишется через виз редактор, то надо править руками.
Если пишется кодом, то все координаты я привязываю к левому верхнему углу окна.
То есть при запуске определяется положение окна и координаты идут так примерно
mouse(LEFT, XWin+200, YWin+100);

Поэтому в виз редакторе надо изначально устанавливать положение окна скриптом, что б постоянно в одном был месте.
26. vikkuzz - 06 Августа, 2018 - 10:24:49 - перейти к сообщению
к сожаленью, кодить я еще не умею.. ладно,значит придется заморочиться. первый блин комом.
27. vikkuzz - 09 Августа, 2018 - 02:28:50 - перейти к сообщению
я так понимаю,когда в виз.редакторе используешь блоки, а потом генерируешь код, то он генерируется по шаблонам этих блоков. мне интересно можно ли сделать так,чтоб при выполнении одного условия, шаблон findheapcolor
CODE:
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)
{
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;

был стандартным,а при не выполнении условия, использовался аналогичный шаблон,но со сдвигом в координатах поиска на заданную величину? это бы позволило не переписывать все координаты,а использовать сдвиг в шаблоне. интересует изменение xs, ys, xf, yf. если я в шаблоне напишу xs+50,например,это же будет неправильно?как это можно сделать? где-то задать xs=xs+50?
28. Zireael - 09 Августа, 2018 - 02:39:52 - перейти к сообщению
 Цитата:
где-то задать xs=xs+50?

В блоке кода.
29. vikkuzz - 09 Августа, 2018 - 02:43:57 - перейти к сообщению
вот так?
CODE:
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)
{
ys=ys+30;
yf=yf+30;
и т.д.
}
30. Zireael - 09 Августа, 2018 - 03:18:05 - перейти к сообщению
В блоке старт добавляете переменные xs=100, ys=100, xf=500, yf=500, т. е. с начальными координатами поиска.
В блоке findheapcolor, зона поиска, указываете эти переменные.
От блока findheapcolor переход при правда (т. е. дальнейшие действия) и при неправда к блоку кода, в котором ys=ys+30; и остальные переменные. Переход обратно к блоку findheapcolor.

Powered by ExBB FM 1.0 Final