Кибор » Кибор - Интегрированная среда разработки ботов » Отчет о ошибках » директива include выдаёт ошибку

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

1. konctantin777 - 13 Апреля, 2018 - 11:00:35 - перейти к сообщению
В визуальном редакторе сделал часть программы (3 картинки ищет). Подключил через директиву к основному коду- выдаёт ошибку, что имеются функции с одинаковыми именами findimage
2. Dantes3000 - 13 Апреля, 2018 - 12:08:05 - перейти к сообщению
какой код в инклуде? Покажи
3. konctantin777 - 13 Апреля, 2018 - 14:34:31 - перейти к сообщению
 Dantes3000 пишет:
какой код в инклуде? Покажи


int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int Image_0_KIB[12][14];
int Image_1_KIB[7][7];

start_();

m_KIB1: if (findimage_(#Image_0_KIB[0][0], 20, 0, 0, 1, 400, 100, 0, -1, 11, 88, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB3;
else goto m_KIB2;
m_KIB3: if (findimage_(#Image_1_KIB[0][0], 0, 0, 0, 0, 0, 0, 0, -1, 0, 100, 1, 0, 0, ex_KIB, ey_KIB, #sum_KIB, #x_KIB, #y_KIB)>0) goto m_KIB2;
else goto m_KIB1;
m_KIB2:




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


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




function load_image_()
{
loadimage (#Image_0_KIB[0][0], "D:\YandexDisk\Bot\KingsRoad\город_дырка_в_палатке.bmp"Подмигивание;
loadimage (#Image_1_KIB[0][0], "D:\YandexDisk\Bot\KingsRoad\карта_охотничья_тропа.bmp"Подмигивание;
}
(Добавление)
 Dantes3000 пишет:
какой код в инклуде? Покажи


Т.е. кибр же "графическое написание" программ. Что в визуальном редакторе делать, чтобы работало корректно ?
4. Dantes3000 - 13 Апреля, 2018 - 15:03:06 - перейти к сообщению
вообще какой-то код неправильный
 konctantin777 пишет:
{
getdisplay(col_KIB, ex_KIB, ey_KIB);
load_image_();
pause(1000);
}


в инклуде уже обьявлена функция findimage. Проследи за этим
(Добавление)
 konctantin777 пишет:
Что в визуальном редакторе делать, чтобы работало корректно ?

удали из инклуда функции, которые есть в коде из визуального редактора.
и почитай include
5. konctantin777 - 13 Апреля, 2018 - 15:12:16 - перейти к сообщению
Признаться не понял... В визуальном создаю программу- получаю код-сохраняю(подпрограмма, типа функции). В "главном" визуальном создаю блок кода и вписываю туда инклуд. Т.е. я думал, что этого достаточно. Нужно в полученном коде подпрограммы удалить все findimage ?

Код, кстати, скопировал из "получить код"
(Добавление)
Прочитал про нго не один раз )
6. Dantes3000 - 13 Апреля, 2018 - 16:16:33 - перейти к сообщению
если говорить по-простому, то у тебя ничего не получится.
Ты генерируешь код из визуального редактора, который состоит из...

CODE:
int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
...
start_();
function findimage_
function load_image
function start_


А в инклуде всё то же самое...Получается повторение переменных и функций.
Инклуд просто копирует свое содержимое в ту часть кода, где вызвали его.
7. konctantin777 - 13 Апреля, 2018 - 17:29:15 - перейти к сообщению
Тогда в инклуде из самого кода просто удалить все функции ? (переменные н нужны- только поиск картинок и переходы) ?
(Добавление)
или можно добавить в названии, например, "function findimage_выйти в город" ?
(Добавление)
...Изначально хватало и стандартной "функции", но когда уже готовую надо расширить, а места рядом нет, а перетаскивать кучу квадратиков куда нибудь в угол (не перетащить "функцию" вместе с содержимым) и запомнить все связи...
8. Dantes3000 - 13 Апреля, 2018 - 18:45:07 - перейти к сообщению
 konctantin777 пишет:
Тогда в инклуде из самого кода просто удалить все функции ?

При работе в визуальном редакторе и вставке такого же кода из визуального редактора - ничего не получится. Нужно переименовывать все переменные, загружать отдельно в них изображения, убирать все функции...Можешь не пытаться даже
9. konctantin777 - 14 Апреля, 2018 - 01:29:39 - перейти к сообщению
Понял. В визуальном. ничего такого не сделать. Спасибо !

Powered by ExBB FM 1.0 Final