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

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

1. AdryV - 02 Апреля, 2019 - 17:31:09 - перейти к сообщению
1. -1.#IND00 FFF8000000000000
2. -1.#QNAN0 FFFF000000000000
3. 1.#SNAN0 7FF7000000000000
4. 1.#QNAN0 7FF8000000000000
5. 1.#QNAN0 7FFF000000000000
6. 1.#INF00 7FF0000000000000
7. -1.#INF00 FFF0000000000000

как избежать выше перечисленных ошибок.... дело в том что с игры иной раз считывает не верные данные и чаще всего вылетает -1.#QNAN0
думал делать проверку еще до конвертирования в самом чаре(куда считывает из памяти), но не могу придумать логику.... сильно большей разброс
как мне проверить....

как я понял это максимальное отрицательное значение
char p[4]={255, 255, 255, 254}//если p[3] 255 будет ошибка -1.#QNAN0
эт максимальное положительное
char p[4]={255, 255, 127, 127}//если p[2] 128 будет ошибка 1.#QNAN0

да и вообще почему бы эту проверку не добавить в codhexd
2. Kibor - 02 Апреля, 2019 - 18:03:21 - перейти к сообщению
Вот непонятно.
А что там считывается с памяти дробного, то что там не может представлять это дробное число?
Зачем считывать то, то не является дробным числом в дробь?
Считывайте так
CODE:
char p[4]={255, 255, 255, 255}
double a=codhexi(#p[0], 4);
messagebox (a);
3. AdryV - 02 Апреля, 2019 - 18:44:45 - перейти к сообщению
 Kibor пишет:
Вот непонятно.
А что там считывается с памяти дробного, то что там не может представлять это дробное число?

координаты XYZ персонажа/лута/мобов и дистанция, все это дробное флоат в CE
4. Kibor - 02 Апреля, 2019 - 18:53:54 - перейти к сообщению
Так посмотрите что вам покажет CE дробное когда там будет 255 255 255 255
5. AdryV - 02 Апреля, 2019 - 18:55:55 - перейти к сообщению
сецчас пока решил так делать.... но это мне кажется не правильным
CODE:
//char p[4]={255, 255, 255, 254}
char p[4]={255, 255, 127, 127}
double b;
int f;



f=codhexi(#p[0], 4);
if(f>-1 && f<=2139095039) {
b=codhexd(#p[0]);
messagebox (b);
}
messagebox (f);

(Добавление)
 Kibor пишет:
Так посмотрите что вам покажет CE дробное когда там будет 255 255 255 255

пишет nan
но он не крашится с крит ошибкой и не прекращает работу!!!!
6. Kibor - 03 Апреля, 2019 - 05:07:03 - перейти к сообщению
Дело в том, что игра не может хранить там такие значения дробные.
Иначе там бы не оказывались такие числа.
Ладно..
Можете сделать сами проверку.
То есть считывать сначала данные с помощью
double a=codhexi(#p[0], 4);
и если оно менее макс допустимого, то тогда уже конвертируйте в дробное с помощью codhexd
7. AdryV - 03 Апреля, 2019 - 05:41:06 - перейти к сообщению
ну хз после добавления проверки что выше я привел, за 6 часов в 10-ти окнах бота не было ошибки qnan0
хотя раньше бывало при таком количестве окно бота каждые 1-10 часов...
но начали появляться небольшие нюансы в проверке расстояния и прокладки маршрута
понаблюдаю если за 2-е суток не вылетит.... то хорошо... я вот не понимаю чель так тяжело добавить правила конвертирования что бы не вылетала ошибка и не критовал бот и не закрывался? или есть другие нюансы?
(Добавление)
 Kibor пишет:
Дело в том, что игра не может хранить там такие значения дробные.
Иначе там бы не оказывались такие числа.

это онлайн игра... дело в том что пока я получаю указатель на лут этот лут уже могут поднять и в итоге на том месте где должны были находиться координаты или дистанция до лута там уже может быть ffffffff
хотя я не исключаю что может быть гдето в коде есть ошибка что со временем както умудряется затирать чар массив куда считываю данные из памяти игры
8. Kibor - 03 Апреля, 2019 - 06:09:29 - перейти к сообщению
 AdryV пишет:
я вот не понимаю чель так тяжело добавить правила конвертирования что бы не вылетала ошибка и не критовал бот и не закрывался? или есть другие нюансы?

И?
Конечно есть.
Главный нюанс это то, что это ошибка, о которой надо оповестить пользователя.
Что бы он сделал выводы, что что то не правильно пихает в переменные.
Иначе что вместо этой ошибки записать? 0? -1? 952?
И пользователь не будет знать почему вообще скрипт не работает и не найдет причину.
А так он знает, что там недопустимое число о чем информируется и исправляет алгоритм.
9. AdryV - 03 Апреля, 2019 - 09:16:30 - перейти к сообщению
 Kibor пишет:
И пользователь не будет знать почему вообще скрипт не работает и не найдет причину.
А так он знает, что там недопустимое число о чем информируется и исправляет алгоритм.

ну как видите в моей ситуации это очень не удобно так как ошибка на каторую мне все равно!!!!!!!!! постоянно красуется.
пс... ни одно окно не умерло уже 10 часов
лан...
так как вы не видите смысла править или добавлять проверки..
прошу скажите: мой код нормальный или есть более оптимальный...? так как у меня бот рассчитан на скорость срабатывания. а так мне над 2 раза конвертировать чар в инт потом чар в доубле... потеря скорости при частом обращении будет заметна....
10. Kibor - 03 Апреля, 2019 - 15:08:13 - перейти к сообщению
 AdryV пишет:
ну как видите в моей ситуации это очень не удобно так как ошибка на каторую мне все равно!!!!!!!!! постоянно красуется.

Так что теперь? Всех без предупреждения оставить, потому что вам все равно?
 AdryV пишет:
так как у меня бот рассчитан на скорость срабатывания. а так мне над 2 раза конвертировать чар в инт потом чар в доубле... потеря скорости при частом обращении будет заметна....

Не думаю что потеря будет большая. Да и это проблема программиста. Это ваш алгоритм и задача.

Powered by ExBB FM 1.0 Final