Кибор » Кибор - Интегрированная среда разработки ботов » Отчет о ошибках » Debug Assertion Failed!

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

21. Zireael - 04 Августа, 2020 - 05:10:06 - перейти к сообщению
 Цитата:
А как и куда можно скинуть и визуал файл и текстовый?

На любой файлообменник, тут дать ссылку.
22. sedoi - 04 Августа, 2020 - 05:18:09 - перейти к сообщению
 Zireael пишет:
 Цитата:
А как и куда можно скинуть и визуал файл и текстовый?

На любой файлообменник, тут дать ссылку.

(для просмотра ссылки Вам необходимо авторизоваться) сюда залил и текстовый и vc файл, сбои в функциях бой(); и титаны(); останавливается на этой картинке отладчик #Image_55_KIB[0][0] или на этой #Image_26_KIB[0][0]
23. Kibor - 04 Августа, 2020 - 05:53:49 - перейти к сообщению
Что вообще пишет отладчик?
Галка сканировать значение переменных должна включена быть
24. sedoi - 04 Августа, 2020 - 05:58:08 - перейти к сообщению
 Kibor пишет:
Что вообще пишет отладчик?
Галка сканировать значение переменных должна включена быть


Выскакивает окно с ошибкой и отладчик останавливается на по картинке #Image_55_KIB[0][0]
в переменных стоят цифры указанные в визуале, паузы размер экрана.
25. Zireael - 04 Августа, 2020 - 05:58:21 - перейти к сообщению
Возможная причина:
Из функции титаны() вызывается бой(), а из бой() вызывается титаны(). В итоге скрипт не вернувшись из бой() в титаны() заново её выполняет. Это рекурсивный вызов функции, к чему приводит в киборе трудно сказать.
26. sedoi - 04 Августа, 2020 - 06:04:30 - перейти к сообщению
 Zireael пишет:
Возможная причина:
Из функции титаны() вызывается бой(), а из бой() вызывается титаны(). В итоге скрипт не вернувшись из бой() в титаны() заново её выполняет. Это рекурсивный вызов функции, к чему приводит в киборе трудно сказать.


так это и есть работа программы, она находит нужную локацию и заходит туда переходя на ручной режим, после чего возвращается снова в функцию бой, опять на поиск врага, как это может нарушить работу программы? ни в этом ли заключается суть функции? что бы ее можно было бы вызвать сколь угодно раз из любого места.
27. Kibor - 04 Августа, 2020 - 06:10:31 - перейти к сообщению
 Zireael пишет:
Из функции титаны() вызывается бой(), а из бой() вызывается титаны(). В итоге скрипт не вернувшись из бой() в титаны() заново её выполняет. Это рекурсивный вызов функции, к чему приводит в киборе трудно сказать.


К вылету..
Видно что работает
CODE:
бой();


function бой()
{
messagebox (1);
титаны();
}

function титаны()
{
messagebox (2);
бой();
}


А так вылетает
Что то переполняется. Посмотрю
CODE:
бой();


function бой()
{
//messagebox (1);
титаны();
}

function титаны()
{
//messagebox (2);
бой();
}
28. sedoi - 04 Августа, 2020 - 06:11:36 - перейти к сообщению
 sedoi пишет:
 Zireael пишет:
Возможная причина:
Из функции титаны() вызывается бой(), а из бой() вызывается титаны(). В итоге скрипт не вернувшись из бой() в титаны() заново её выполняет. Это рекурсивный вызов функции, к чему приводит в киборе трудно сказать.


так это и есть работа программы, она находит нужную локацию и заходит туда переходя на ручной режим, после чего возвращается снова в функцию бой, опять на поиск врага, как это может нарушить работу программы? ни в этом ли заключается суть функции? что бы ее можно было бы вызвать сколь угодно раз из любого места.
функция бой отработала и перешла на проверку чекбокса, если он включен идет по переходу на проверку карт, а если не включен то идет по переходу на титаны, заходит в титаны и уже в функции титаны ищет врага и уж потом идет на функцию бой, рекурсия это если бы я вызывал с функции бой() функцию бой() а если есть выход в функцию титанов то это скорее уже цикл но не рекурсия, и даже в этом случае не должно быть ошибки, просто не было бы выхода из программы, был бы своего рода замкнутый цикл, на сколько я понимаю.
29. Zireael - 04 Августа, 2020 - 06:19:14 - перейти к сообщению
В вашем случае вместо вызова функции титаны() из бой(), надо return;. Бот вернётся в титаны() и можно снова вызывать бой().
30. sedoi - 04 Августа, 2020 - 06:23:58 - перейти к сообщению
 Zireael пишет:
В вашем случае вместо вызова функции титаны() из бой(), надо return;. Бот вернётся в титаны() и можно снова вызывать бой().

return; нужен перед проверкой условия

return;
if(e==1) {проверка_карт();}
else {титаны();}
я правильно понял?

Powered by ExBB FM 1.0 Final