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

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

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

> Без описания
Dantes3000
Отправлено: 05 Апреля, 2024 - 12:04:36
Post Id



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


Покинул форум
Сообщений всего: 1465
Дата рег-ции: Июнь 2016  
Репутация: 58




У меня есть 2 довольно старых бота, в первом баг заметил давно, а сегодня увидел это во втором с хорошим примером.

Суть в том, что иногда при передаче значения в функцию (не переменная, а напрямую), это значние может или обнулится или замениться предыдущим.

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

Функция вызывается периодически, баг повторяется очень редко. У меня вчера был первый раз за несколько месяцев работы бота.

Что это может быть и как исправить?



Нажмите для увеличения



CODE:


external(INT, "cfg", "GetPrivateProfileStringA", "kernel32.dll");
external(INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");
char c[256];
string put="d:/file.ini"; //путь к ini
int wait_before_cancel_exchange_sec=11;





save_var (0, put, #wait_before_cancel_exchange_sec, #c[0], "wait_before_cancel_exchange_sec", cfg("settings", "wait_before_cancel_exchange_sec", 0, address(#c[0]), sizearray(c), put));



function save_var(int show_msgbox, string path_cfg, int #var, char #ch, string err, int ret)
{
if(ret<1)
{
WritePrivateProfileString ("settings", err, format(var), path_cfg);
return 0;
}

string rez[1];
//int k = regexsearch(1, #rez[0], format(#ch[0]), "\d+");
int k = regexsearch(1, #rez[0], format(#ch[0]), "(?<!\d)-?\d*[.,]?\d+");
var=formatsn(rez[0]);
}


(Отредактировано автором: 05 Апреля, 2024 - 12:09:55)

 
 Top
Zireael
Отправлено: 05 Апреля, 2024 - 12:12:48
Post Id



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


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




Попробуйте сначала вызывать cfg, потом в save_var передать результат.
 
 Top
Dantes3000
Отправлено: 05 Апреля, 2024 - 12:14:04
Post Id



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


Покинул форум
Сообщений всего: 1465
Дата рег-ции: Июнь 2016  
Репутация: 58




И главная пробелма в том, что в price_one_pack записалось 50, а должно было быть 18000
Я просрал туеву хучу бабла)
(Добавление)
 Zireael пишет:
Попробуйте сначала вызывать cfg, потом в save_var передать результат.


Это не связано с cfg. В первом боте такая же проблема с обычной функцией происходит
 
 Top
Zireael
Отправлено: 05 Апреля, 2024 - 12:25:01
Post Id



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


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




 Цитата:
Это не связано с cfg. В первом боте такая же проблема с обычной функцией происходит

Имелось ввиду не использовать вложенный вызов функций.
 
 Top
Dantes3000
Отправлено: 05 Апреля, 2024 - 13:37:34
Post Id



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


Покинул форум
Сообщений всего: 1465
Дата рег-ции: Июнь 2016  
Репутация: 58




Zireael , этот вложенный вызов просто возвращает код ошибки или успеха. А проблема в 5-ом параметре, который строка.

Вот пример или первого бота, пришлось костыли писать, возвращать -2 если второй параметр пришел пустым. В коде нигде нет пустого параметра, всегда что-то передаю, но ошибка случается.


Нажмите для увеличения
 
 Top
Kibor
Отправлено: 05 Апреля, 2024 - 14:17:15
Post Id



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


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




Если функция что то возвращает, она Должна возвращать в Любом случае.
А не Тут возвращает, а тут нет.
Поэтому такое поведение.
 
 Top
Dantes3000
Отправлено: 05 Апреля, 2024 - 18:00:12
Post Id



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


Покинул форум
Сообщений всего: 1465
Дата рег-ции: Июнь 2016  
Репутация: 58




 Kibor пишет:
Если функция что то возвращает, она Должна возвращать в Любом случае.
А не Тут возвращает, а тут нет.
Поэтому такое поведение.


Ничего не понял, но очень интересно. Можно подробнее?
 
 Top
Dantes3000
Отправлено: 18 Апреля, 2024 - 10:25:17
Post Id



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


Покинул форум
Сообщений всего: 1465
Дата рег-ции: Июнь 2016  
Репутация: 58




Kibor , Добавил я return в функции. Всё равно через какое-то время глюки



Нажмите для увеличения
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Отчет о ошибках »


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




Powered by