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

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

1. Baltazar - 14 Июля, 2020 - 19:25:00 - перейти к сообщению
В окне нужно найти картинки city.bmp их может быть от 0 до 10 в разных строчках и проверить есть ли у каждой из этих картинок в той же строчке картинка zashita.bmp если хотя бы в 1 случае zashita.bmp отсутствует то код продолжится иначе нужно зациклить.

Вот код


 Цитата:
win wg=window ("Бла-бла - Google Chrome", "Chrome_WidgetWin_1", -1);
if (wg==0){messagebox ("error wg");}
win w=window ("Chrome Legacy Window", "Chrome_RenderWidgetHostHWND", wg);
if (w==0){messagebox ("error w");}
activate(wg);
pause(1000);

wg.widthclient = (1024);
wg.heightclient = (768);
moveclient(wg);
if (wg==0){messagebox ("error moveclient");}

pause(1000);

int city[100][100];
loadimage (#city[0][0], pathfolder()+"city.bmp");

int city_x[23], city_y[20];
CITY:;
int kol_city = findimage(-1, #city[0][0], -1, #city_x[0], #city_y[0], 0, 0, w.widthclient, w.heightclient, 5, 5, 5, 5, 5, 5, 95, 1, w);
if (kol_city == 0)
{
//messagebox ("Невижу Город");
sendmouse(LEFT, rand (951, 1009), rand (85, 100), w);
pause(rand (30000, 60000));
goto CITY;
}

int zashita[150][35];
loadimage (#zashita[0][0], pathfolder()+"zashita.bmp");

int zashita_x, zashita_y;

for (int n=0; n < kol_city; n++)
{
if(findimage(1, #zashita[0][0], -1, #zashita_x, #zashita_y, 0, city_y[n] - 10, w.widthclient, 40, 5, 5, 5, 5, 5, 5, 95, 1, w)==1) // ПОСЛЕ ЭТОЙ СТРОКИ ВЫСКАКИВАЕТ "Out of Memory"
{
messagebox ("+ 1 к защите Есть");
}
else
{
goto BAT;
}
}

goto CITY;

BAT:;
messagebox ("Нашол Город без +1 к защите");



Вот что пишет отладчик с включенной галочкой "Сканировать значения переменных"


 Цитата:
win wg = window ( " Бла бла - Google Chrome " , " Chrome_WidgetWin_1 " , - 1 )
if ( wg == 0 )
win w = window ( " Chrome Legacy Window " , " Chrome_RenderWidgetHostHWND " , wg )
if ( w == 0 )
activate ( wg )
wg.widthclient = ( 1024 )
wg.heightclient = ( 768 )
moveclient ( wg )
if ( wg == 0 )
pause ( 1000 )
loadimage ( # city'-842150451' [ 0 ] [ 0 ] , pathfolder ( ) + " city.bmp " )
int kol_city = findimage ( -1 , # city'14737634' [ 0 ] [ 0 ] , - 1 , # city_x'-842150451' [ 0 ] , # city_y'-842150451' [ 0 ] , 0 , 0 , w.widthclient'1219' , w.heightclient'652' , 5 , 5 , 5 , 5 , 5 , 5 , 95 , 1 , w )
if ( kol_city'1' == 0 )
loadimage ( # zashita'-842150451' [ 0 ] [ 0 ] , pathfolder ( ) + " zashita.bmp " )
for ( int n = 0 ; n'-842150451' < kol_city'1' ; n'-842150451' ++ ) // ЗДЕСЬ Я ПРИСВАИВАЮ ЗНАЧЕНИЕ n = 0 А В СЛЕДУЮЩЕЙ ИНСТРУКЦИИ ОНО МАГИЧЕСКИМ ОБРАЗОМ СТАНОВИТСЯ n'-842150451'
if ( findimage ( 1 , # zashita'14737634' [ 0 ] [ 0 ] , - 1 , # zashita_x'-842150451' , # zashita_y'-842150451' , 0 , city_y'135' [ n'0' ] - 10 , w.widthclient'1219' , 40 , 5 , 5 , 5 , 5 , 5 , 5 , 95 , 1 , w ) == 1 )



Подскажите пожалуйста
1.Почему n меняет значение, хотя в следующей строчке оно опять равно 0 "city_y'135' [ n'0' ]",
2.Почему вместо координат переменные "zashita_x" и "zashita_y" выдают это же значение, хотя city_y выдал верные координаты
3.Что исправить в коде чтобы не выскакивала ошибка "Out of memory"
Заранее большое спасибо.
2. Kibor - 15 Июля, 2020 - 01:32:26 - перейти к сообщению
 Baltazar пишет:
1.Почему n меняет значение, хотя в следующей строчке оно опять равно 0 "city_y'135' [ n'0' ]",
2.Почему вместо координат переменные "zashita_x" и "zashita_y" выдают это же значение, хотя city_y выдал верные координаты
3.Что исправить в коде чтобы не выскакивала ошибка "Out of memory"
Заранее большое спасибо.


1 ?
Почему n меняет тут значение?
CODE:
int kol_city=1;
for (int n=0; n < kol_city; n++)
{

}

У вас в отладчике kol_city=1. И n = 0 соответственно. Что не верно?

2 ...
Какие? Там ничего не выдает. Там значение мусора который находится в переменных zashita_x, zashita_y ДО записи в них координат функцией findimage

3 ...
Отладчик ясно показал ошибку
 Цитата:
if ( findimage ( 1 , # zashita'14737634' [ 0 ] [ 0 ] , - 1 , # zashita_x'-842150451' , # zashita_y'-842150451' , 0 , city_y'135' [ n'0' ] - 10 , w.widthclient'1219' , 40 , 5 , 5 , 5 , 5 , 5 , 5 , 95 , 1 , w ) == 1 )

Что соответствует зоне поиска
0, 125, 1219, 40
в которой конец зоны по Y меньше начала зоны по Y
Из за этого Out of memory
3. Baltazar - 15 Июля, 2020 - 08:03:55 - перейти к сообщению
Ой. Я почему то думал что в значениях 0, 125, 1219, 40 последние 2 цифры указывают не на конец зоны поиска а на ширину и высоту. Спасибо большое что поправили.

Powered by ExBB FM 1.0 Final