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

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

1. koba - 01 Сентября, 2021 - 13:36:01 - перейти к сообщению
Ставлю рандомную паузу в блоке кода к пример pause(rand(900000, 3600000)); т.е. рамки от 15мин до 1ч
так оно всегда срабатывает только на минимальном значении 15мин.
В чем причина?
2. Dantes3000 - 01 Сентября, 2021 - 14:37:08 - перейти к сообщению
Вообще в с++ максимальное значение рандомного числа в rand() - 32767.
В киборе как-то иначе, но тоже есть ограничения.

лучше так, будет то же самое

pause(rand(15, 59)+60000+rand(0, 60000));
3. koba - 01 Сентября, 2021 - 15:00:49 - перейти к сообщению
 Dantes3000 пишет:
Вообще в с++ максимальное значение рандомного числа в rand() - 32767.
В киборе как-то иначе, но тоже есть ограничения.

лучше так, будет то же самое

pause(rand(15, 59)+60000+rand(0, 60000));


Да мне надо от 15мин, а тут 1мин.
а как бы еще каким возможно способом сделать рандом от 15мин до 1ч?
(Добавление)
Короче так сделал:
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
pause(rand(15, 59)+60000+rand(0, 60000));
тестирую)
4. Zireael - 01 Сентября, 2021 - 17:51:59 - перейти к сообщению
CODE:
int timeout = rand(15, 59)*60000 + rand(0, 60)*1000;
messagebox(timeout);
pause(timeout);

Так более наглядно:
CODE:
int timeout = rand(15, 59)*60000 + rand(0, 60)*1000;
//messagebox(timeout);
int t = gettime() + timeout;
looptime(timeout)
{
int min = (t - gettime()) / 60000;
int sec = ((t - gettime()) - min * 60000) / 1000;
textout(0, 0, 0, "Осталось: "+format(min)+" минут "+format(sec)+" секунд", 1);
sleep(10);
}
5. Dantes3000 - 02 Сентября, 2021 - 02:33:47 - перейти к сообщению
 koba пишет:
Да мне надо от 15мин, а тут 1мин.

вместо первого плюса надо * поставить
6. koba - 02 Сентября, 2021 - 05:26:25 - перейти к сообщению
 Zireael пишет:
CODE:
int timeout = rand(15, 59)*60000 + rand(0, 60)*1000;
messagebox(timeout);
pause(timeout);


Как всегда все четко и работает,
по месаджу видно что рандом работает как надо и совпадает.
Круто
(Добавление)
 Dantes3000 пишет:
 koba пишет:
Да мне надо от 15мин, а тут 1мин.

вместо первого плюса надо * поставить

всего-навсего)

Powered by ExBB FM 1.0 Final