Сегодня было обновление программы, после этого любая ошибка в синтаксисе приводила вот к этому
ОшиПка1
После повторного запуска к этому
ОшиПка2
Ну да ладно не беда... была ещё вчера, после повторного запуска программы и устранения ошибки всё работало. Сейчас же после вышеуказанных ошибок не работает ни одни ранее написанный 100% работоспособный код. Чтобы избавиться от этого приходится перезагружать комп. И после перезагрузки всё о5 работает. Или я дурак или лыжи не едут... Объясните пожалуйста.
1. Keeper - 24 Августа, 2013 - 20:49:55 - перейти к сообщению
2. Kibor - 25 Августа, 2013 - 01:51:08 - перейти к сообщению
Что объяснить?
Мне нужен код при запуске которого выходит эта ошибка, так как я не знаю какой код считается рабочим....
Код должен быть полным без изменений с приложением используемых .bmp
Мне нужен код при запуске которого выходит эта ошибка, так как я не знаю какой код считается рабочим....
Код должен быть полным без изменений с приложением используемых .bmp
3. Keeper - 25 Августа, 2013 - 03:28:10 - перейти к сообщению
Kibor пишет:
Что объяснить?
Мне нужен код при запуске которого выходит эта ошибка, так как я не знаю какой код считается рабочим....
Код должен быть полным без изменений с приложением используемых .bmp
Мне нужен код при запуске которого выходит эта ошибка, так как я не знаю какой код считается рабочим....
Код должен быть полным без изменений с приложением используемых .bmp
int Box1[5][5],Box1X,Box1Y;
int Box2[5][5],Box2X,Box2Y;
int Box3[5][5],Box3X,Box3Y;
int RunLut,Wait;
..........................................
function Lut()
{
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box1X+2,Box1Y+2,w);mouse(LEFT);
sleep(rand(500,800));
}//if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
else
{
if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box2X+2,Box2Y+2,w);mouse(LEFT);
sleep(rand(500,800));
}//if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
else
{
if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box3X+2,Box3Y+2,w);mouse(LEFT);
sleep(rand(500,800));
}//if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
else
{
RunLut=0;
}//else
}//else
}//else
}//function Lut()
..........................................
Файлы картинок
Этот код рабочий.
(Добавление)
Kibor пишет:
Что объяснить?
Мне нужен код при запуске которого выходит эта ошибка, так как я не знаю какой код считается рабочим....
Код должен быть полным без изменений с приложением используемых .bmp
Мне нужен код при запуске которого выходит эта ошибка, так как я не знаю какой код считается рабочим....
Код должен быть полным без изменений с приложением используемых .bmp
Добавляю функцию:
int RD=300,Att;
....................................
function Moving()
{
if (Att==0 && RunLut==0) Wait++;
if (Wait>=rand(3,5))
{
x0=300;
y0=10;
Ang=rand(10,170);
mX=x0+sin(Ang)*RD;
mY=y0+cos(Ang)*RD;
mousemove(mX,mY,w);
Wait=0;
}
}
И код приведённый в прошлом посте перестаёт работать.
4. Kibor - 25 Августа, 2013 - 03:38:52 - перейти к сообщению
Keeper пишет:
int Box1[5][5],Box1X,Box1Y;
Keeper пишет:
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y
Ошибка. Допускается только одномерные массивы
int Box1[5][5],Box1X[1],Box1Y[1];
if (findimage(1,#Box1[0][0],0,#Box1X[0],#Box1Y[0],
mousemove(Box1X[0]+2,Box1Y[0]+2,w)
Сканирование экрана и поиск изображений
Ошибка работы с памятью. Так и есть из за ошибок в fingimage
5. Keeper - 25 Августа, 2013 - 03:49:46 - перейти к сообщению
Kibor пишет:
Keeper пишет:
int Box1[5][5],Box1X,Box1Y;
Keeper пишет:
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y
Ошибка. Допускается только одномерные массивы
int Box1[5][5],Box1X[1],Box1Y[1];
if (findimage(1,#Box1[0][0],0,#Box1X[0],#Box1Y[0],
mousemove(Box1X[0]+2,Box1Y[0]+2,w)
Сканирование экрана и поиск изображений
Да вот тут вы не правы!
Я нашёл ошибку, если её можно таковой назвать
Описываю:
После написания функции Moving() я объявил переменную int RD=300; после чего запустил код, спустя несколько секунд остановил его по нажатию Ctrl+Shift+Z, вместе с тем нажатие Ctrl+Z отменяет последнее действие в программе, уж не знаю каким образом это происходит, но переменная int RD=300; которую я объявил сразу перед запуском кода исчезла, вот и ошибка!
Объявил переменную заново, теперь выше приведённые мой функции работают!
6. Kibor - 25 Августа, 2013 - 03:59:08 - перейти к сообщению
Еп... Подзабыл устройство своей функции . Да, там нет ошибки.
Можно и так.
Да, есть такая проблема... Возникает при неоднократном нажатие на Ctrl+Shift+Z...
Надо поправить..
Можно и так.
Да, есть такая проблема... Возникает при неоднократном нажатие на Ctrl+Shift+Z...
Надо поправить..
7. Keeper - 25 Августа, 2013 - 04:43:05 - перейти к сообщению
Kibor пишет:
Еп... Подзабыл устройство своей функции . Да, там нет ошибки.
Можно и так.
Да, есть такая проблема... Возникает при неоднократном нажатие на Ctrl+Shift+Z...
Надо поправить..
Можно и так.
Да, есть такая проблема... Возникает при неоднократном нажатие на Ctrl+Shift+Z...
Надо поправить..
Да, было бы замечательно, а то вот столкнулся и понять не мог в чем дело
В любом случае, спасибо за помощь
8. Kibor - 25 Августа, 2013 - 09:51:41 - перейти к сообщению
Запретил сочетание Ctrl+Z... Теперь не отменится...
Приведенный код можно представить проще...
function Lut()
{
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box1X+2,Box1Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box2X+2,Box2Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box3X+2,Box3Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
RunLut=0;
}//function Lut()
function Lut()
{
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box1X+2,Box1Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box2X+2,Box2Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box3X+2,Box3Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
RunLut=0;
}//function Lut()
9. Keeper - 25 Августа, 2013 - 10:12:50 - перейти к сообщению
Kibor пишет:
Запретил сочетание Ctrl+Z... Теперь не отменится...
Приведенный код можно представить проще...
function Lut()
{
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box1X+2,Box1Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box2X+2,Box2Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box3X+2,Box3Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
RunLut=0;
}//function Lut()
function Lut()
{
if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box1X+2,Box1Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box1[0][0],0,#Box1X,#Box1Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box2X+2,Box2Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box2[0][0],0,#Box2X,#Box2Y,0,0,w.widthclient,w.heightclient,w)==1)
if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
{
RunLut=1;Wait=0;
mousemove(Box3X+2,Box3Y+2,w);mouse(LEFT);
sleep(rand(500,800));
return;
}//if (findimage(1,#Box3[0][0],0,#Box3X,#Box3Y,0,0,w.widthclient,w.heightclient,w)==1)
RunLut=0;
}//function Lut()
За запрет сочетания Ctrl+Z спасибо
А насчёт кода, я так сделал изначально. но мне важна очерёдность, объясняю почему. Пока я не реализовал расчет расстояния и времени потраченного для прохождения до найденной цели, в этом упрощённом коде персонаж будет метаться между лутом как дурной.(sleep(статическое_значение) - не вариант) Так вот эта очерёдность сбора, с помощью if else, даёт относительную упорядоченность в сборе. Код я позже перепишу, когда реализую расчёт времени и расстояния. Да и переменной RunLut должно присваиваться значение 0 если не найден ни один ящик и значение 1 если найден хоть один(Надеюсь временная замена переменной типа boolean )
10. Keeper - 25 Августа, 2013 - 17:49:20 - перейти к сообщению
Извиняюсь за вчерашний пост, пургу написал, return не заметил