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

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

1. AdryV - 28 Января, 2018 - 00:00:30 - перейти к сообщению

я так понимаю что ошибка находится в массиве double в котором записано значение -1 но о чем говорится дальше не понимаю
2. Kibor - 28 Января, 2018 - 02:35:36 - перейти к сообщению
3. AdryV - 28 Января, 2018 - 13:22:40 - перейти к сообщению
 Kibor пишет:
1.#qnan0 error

не особо понял о чем горит эта ошибка
1, значение изменилось во время вычисления
2, умножение на 0
но чет не особо понял смысла...
в скрипт перед формулой добавил кучу проверок что бы все значения были больше нуля данных которые могут изменяться
к примеру огрызок:
CODE:
if(mob_kordX[k]>0 && mob_kordY[k]>0 && mob_kordZ[k]>0)
{
if(pers_kordX>0 && pers_kordY>0 && pers_kordZ>0)
{
mob_dist[k]=sqrt((pers_kordX-mob_kordX[k])*(pers_kordX-mob_kordX[k])+
(pers_kordY-mob_kordY[k])*(pers_kordY-mob_kordY[k])+
(pers_kordZ-mob_kordZ[k])*(pers_kordZ-mob_kordZ[k]));
}
else
{
mob_dist[k]=-2;
}
}
else
{
mob_dist[k]=-2;
}

потом код который использует эти данные
CODE:
if(mob_dist[yy]<=max_mob_dist && mob_dist[yy]>=min_mob_dist)
{
if(mob_dist[yy]<posl_dist)
{
posl_dist=mob_dist[yy];
tt=yy;
}
}

все данные считываются с памяти игры их там цикл от 100 до 300 значения может меняться но не больше 300... массивы все выделены по 300.
в итоге я предполагаю что ошибки из-за умножения на 0 не может быть
но по первой ошибке не могу понят как такое может произойти так как скрипт выполняется последовательно тоисть
тоисть сначала с памяти считываются данные pers_kordX и тд
потом уже считываются данные mob_kordX[k] и тд и производится вычисления

ошибки не должно быть так как все данные проверенны перед вычислением....
какая еще может быть ошибка?

ПС....
раньше когда эту всю кашу использовал в одном таймере все работало нормально
но в основном коде эта ошибка( не постоянно но выскакивает то через 1 мин то сразу то через 1 час
4. Kibor - 28 Января, 2018 - 14:33:20 - перейти к сообщению
Эту ошибку генерирует не Кибор.
Он просто вывел строку в которой вместо ожидаемого числа находится код ошибки.
5. AdryV - 18 Февраля, 2018 - 07:07:21 - перейти к сообщению
в общем разобрался в чем была ошибка
все проблема заключалась в том что у меня были в таймере вызываемые функции которые считывали координаты и вычисляли радиус, и в основном коде был вычисление радиуса и дистанции, в итоге когда код выполнялся видимо он прерывался на расчете дистанции для срабатывания таймера и переменные как бы портились... из-за этого вылетала ошибка...
в этом то и была загвоздка из-за чего старый код который работал в таймере не выдавал ошибки а когда перенес половину в основной код то полетели ошибки
мало ли кому то поможет)
6. Kibor - 18 Февраля, 2018 - 10:43:16 - перейти к сообщению
С таймерами надо быть аккуратным.
Я всегда делаю для них отдельные переменные и даже отдельные функции.

Powered by ExBB FM 1.0 Final