Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

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

> Описание: Поялвляется ошибка
Kensi
Отправлено: 24 Октября, 2018 - 11:27:10
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




Пишу бота, во время работы которого появляется ошибка out of memory -
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]
Затем выполнение скрипта прекращается, а завершить работу через crtl shift z не получается. закрываю его с панели задач. После чего появляется эта ошибка -
[img](для просмотра ссылки Вам необходимо авторизоваться) /img]. Все библиотеки c++ стоят. оперативы 8 гигов. win 10.
В чем может быть проблема? Если надо кину код функции, во время работы которой возникает ошибка. Или дело в чем то другом?
 
 Top
Zireael
Отправлено: 24 Октября, 2018 - 11:32:22
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Если надо кину код функции

Надо.
 
 Top
Kensi
Отправлено: 24 Октября, 2018 - 11:40:15
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




 Zireael пишет:
 Цитата:
Если надо кину код функции

Надо.


CODE:
function фазаБоя2(){

m6: pause(1000);
readtext(NUM, #phaseNum, 23, 3, -1, -1, -1, -1, -1, 0, -1, 1321, 97, 1344, 132, -1);

if (phaseNum == '2'){

pause(200);
mouse(LEFT,106, 254);
pause(200);

int i = 0;

m10: readtext(MARK, #textMark, 20, 3, -1, -1, -1, -1, -1, 0, -1, winArrayTopX[i], winArrayTopY[i], winArrayBottomX[i], winArrayBottomY[i], -1);
if (textMark == '!')){
goto m13;
}else{
readtext (RU, #defeatWord, 40, 3, -1, -1, -1, #Color_Text_Defeat[0], #Color_Fon_Defeat[0], 5, -1, defeatArrayTopX[i], defeatArrayTopY[i], defeatArrayBottomX[i], defeatArrayBottomY[i], -1);
if(defeatWord == 'поражение'){
goto m13;
} else {
readtext (EN, #myName, 36, 3, -1, -1, -1, -1, -1, 0, 99, flagArrayTopX[i], flagArrayTopY[i], flagArrayBottomX[i], flagArrayBottomY[i], -1);
if(myName == 'Panteon'){
goto m8;
} else {
mouse(LEFT, enemiesArrayX[i]+rand(-50, 50), enemiesArrayY[i]+rand(-20, 20));
pause(1500);
readtext(NUM, #enemyPowerSTR, 40, 3, -1, -1, -1, #color_text_KIB_9[0], #color_fon_KIB_9[0], 5, -1, 1032, 451, 1261, 493, -1);
enemyPowerNUM = formatsn(del_space(enemyPowerSTR));

if (enemyPowerNUM + 30000 < записьМоейМощи()){
pause(200);
mouse(LEFT, 1345+rand(0, 50), 837+rand(0, 15));
pause(10000);

m7: readtext(RU, #homeBtn, 40, 3, -1, -1, -1, #color_text_KIB_13[0], #color_fon_KIB_13[0], 5, -1, 893, 893, 1000, 937, -1);
if(homeBtn == 'домо'){
mouse(LEFT, 957+rand(-10, 10), 912+rand(-10, 10));
} else {
pause(1000);
goto m7;
}
} else {
m13:;
i++;
mouse(LEFT, 106, 254);
goto m10;
}
}
}
}


m8: int j = 14;
m9: readtext(MARK, #textMark, 20, 3, -1, -1, -1, -1, -1, 0, -1, winArrayTopX[j], winArrayTopY[j], winArrayBottomX[j], winArrayBottomY[j], -1);
if (textMark == '!'){
goto m11;
}else{
readtext (RU, #defeatWord, 40, 3, -1, -1, -1, #Color_Text_Defeat[0], #Color_Fon_Defeat[0], 5, -1, defeatArrayTopX[j], defeatArrayTopY[j], defeatArrayBottomX[j], defeatArrayBottomY[j], -1);
if(defeatWord == 'поражение'){
goto m11;
} else {
readtext (EN, #myName, 36, 3, -1, -1, -1, -1, -1, 0, 99, flagArrayTopX[j], flagArrayTopY[j], flagArrayBottomX[j], flagArrayBottomY[j], -1);
if(myName == 'Panteon'){
goto m11;
} else {
mouse(LEFT, enemiesArrayX[i]+rand(-50, 50), enemiesArrayY[i]+rand(-20, 20));
pause(1500);

readtext(NUM, #enemyPowerSTR, 40, 3, -1, -1, -1, #color_text_KIB_9[0], #color_fon_KIB_9[0], 5, -1, 1032, 451, 1261, 493, -1);
enemyPowerNUM = formatsn(del_space(enemyPowerSTR));

if (enemyPowerNUM + 30000 < записьМоейМощи()){
pause(200);
mouse(LEFT, 1345+rand(0, 50), 837+rand(0, 15));
pause(10000);

m12: readtext(RU, #homeBtn, 40, 3, -1, -1, -1, #color_text_KIB_13[0], #color_fon_KIB_13[0], 5, -1, 893, 893, 1000, 937, -1);
if(homeBtn == 'домо'){
mouse(LEFT, 957+rand(-10, 10), 912+rand(-10, 10));
} else{
pause(1000);
goto m12;
}
} else {
m11:;
j--;
mouse(LEFT, 106, 254);
goto m9;
}
}
}
}

} else goto m6;


}


функции, которые используются в процессе работы

CODE:
function записьМоейМощи(){

readtext(NUM, #myPowerSTR, 40, 3, -1, -1, -1, #color_text_KIB_10[0], #color_fon_KIB_10[0], 5, -1, 552, 451, 825, 493, -1);
myPowerNUM = formatsn(del_space(myPowerSTR));
return myPowerNUM;

}


CODE:
function del_space(string t){
int aw=size(t);
char a[50];
strcpy(#a[0], t);
t="";
for (int n=0; n<aw; n++){
if (a[n]!=' ')t=t+a[n];
}
return t;
}
 
 Top
Kibor
Отправлено: 24 Октября, 2018 - 11:57:09
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Цитата:
defeatWord == 'поражение'


CODE:
defeatWord == "поражение"
(для просмотра ссылки Вам необходимо авторизоваться)
 
 Top
Kensi
Отправлено: 24 Октября, 2018 - 12:09:09
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




[quote=Kibor]
 Цитата:
defeatWord == 'поражение'


CODE:
defeatWord == "поражение"
(для просмотра ссылки Вам необходимо авторизоваться) /quote]

нужно заменить одинарные на двойные во всем коде? потому что у меня везде до этого стоят одинарные в подобных условиях, а ошибка возникает тут.

Заменил, ошибка остается.
(Добавление)
[quote=Kensi]
 Kibor пишет:
 Цитата:
defeatWord == 'поражение'


CODE:
defeatWord == "поражение"
(для просмотра ссылки Вам необходимо авторизоваться) /quote]

нужно заменить одинарные на двойные во всем коде? потому что у меня везде до этого стоят одинарные в подобных условиях, а ошибка возникает тут.

Заменил, ошибка остается.


также я правильно понял, что
CODE:
phaseNum == '2'

в таких сеста надо сделать
CODE:
phaseNum == \'2\'

?

(Отредактировано автором: 24 Октября, 2018 - 12:23:07)

 
 Top
Zireael
Отправлено: 24 Октября, 2018 - 12:55:51
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




Если сравнивается 1 символ, то можно в одинарных и двойных кавычках: '2' или "2"
Если несколько символов, то в двойных "123".

Выводите действия в textout или пишите в файл, тогда будет понятно в каком месте ошибка.
Строить логику на goto это не очень правильно. Трудно отследить что за чем выполнятется.
 Цитата:
winArrayTopX[i]

Переменная i++ увеличивается, при этом нигде нет проверки что не вышли за пределы массива.
 
 Top
Kensi
Отправлено: 24 Октября, 2018 - 13:08:47
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 14
Дата рег-ции: Окт. 2018  
Репутация: 0




 Zireael пишет:
Если сравнивается 1 символ, то можно в одинарных и двойных кавычках: '2' или "2"
Если несколько символов, то в двойных "123".

Выводите действия в textout или пишите в файл, тогда будет понятно в каком месте ошибка.
Строить логику на goto это не очень правильно. Трудно отследить что за чем выполнятется.
 Цитата:
winArrayTopX[i]

Переменная i++ увеличивается, при этом нигде нет проверки что не вышли за пределы массива.

спасибо, тоже решил так сделать, но я выводил messagebox. нашел проблемное место, щас буду разбираться с этим
 
 Top
Zireael
Отправлено: 25 Октября, 2018 - 02:11:47
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4461
Дата рег-ции: Нояб. 2017  
Репутация: 585




Можно заменить это:
CODE:
function del_space(string t){
int aw=size(t);
char a[50];
strcpy(#a[0], t);
t="";
for (int n=0; n<aw; n++){
if (a[n]!=' ')t=t+a[n];
}
return t;
}

На это:
CODE:
function del_space(string t)
{
regexreplace(-1, #t, t, " ", "");
return t;
}


Для примера:
CODE:
string s="1 2 3";
messagebox(s); // с пробелами
s=del_space(s);
messagebox(s); // без пробелов

function del_space(string t)
{
regexreplace(-1, #t, t, " ", "");
return t;
}
 
 Top
Kibor
Отправлено: 25 Октября, 2018 - 02:22:50
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




out of memory в основном появляется если не правильно указана область в которой что то ищем или делаем.

Пример
CODE:
int Image_0[5][5];
loadimage (#Image_0[0][0], "C:\Image_0.bmp");
int PosX_0[512];int PosY_0[512];

findimage(-1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 100, 50, 90, 200, -1);


100, 50, 90, 200 неправильная зона.
По x координата конца зоны меньше начала.
Скрипт выдаст out of memory
Проверяйте эти все
defeatArrayTopX[j], defeatArrayTopY[j], defeatArrayBottomX[j], defeatArrayBottomY[j]
и тд.
Что в них и не выходит ли j за массив не известно.
 
 Top
Almighty
Отправлено: 25 Октября, 2018 - 10:59:02
Post Id



Пользователь
Участник


Покинул форум
Сообщений всего: 64
Дата рег-ции: Июнь 2018  
Откуда: Kyiv
Репутация: 2




Добрый день.
Тоже появляется данная ошибка после пару часов работы скрипта.
Появиться она может, когда "ей удобно", так как в 99% нажимает на изображения, а иногда на нем выдает данную ошибку. Весь код делал через визуальный редактор, только 2 блока есть с кодом, который я вписывал.
КОД
Может ли быть проблема именно с выделением памяти? Ее не хваткой, так как через часа,два работы бота оперативы выделяется для работы Кибор превышает 1.5гб ?
Подскажите, как можно автоматически выделять и очищать оперативную память ддя работы собраного exe ?
 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by