Как задать рандомное время в файле timeouts.txt, например время перезахода(reconnecting time) не 30 секунд, а, например, 10 - 30 секунд?
Буду очень благодарен.
Неплохая идея...
Проблема в том, что пока Kore не залогинилась на map-сервер, у нее отключена вся игровая логика (ai), и поэтому макросы не работают.
Следовательно, надо ковырять исходники.
Смотрим, какое сообщени выводится на экран при релогине: "Relogging in 30 seconds...", ищем по исходникам "Relogging in".
Вот оно, в misc.pm:
sub relog {
my $timeout = (shift || 5);
my $silent = shift;
$net->setState(1);
undef $conState_tries;
$timeout_ex{'master'}{'time'} = time;
$timeout_ex{'master'}{'timeout'} = $timeout;
$net->serverDisconnect();
message TF("Relogging in %d seconds...\n", $timeout), "connection" unless $silent;
}
Можно было бы просто дописать туда еще дополнительный случайный период времени, но это кривизна.
Поэтому, ищем места, где вызывается эта функция, т.е., строки, содержащие "relog(".
Я нашел что-то похожее в Receive.pm:
my $master = $masterServer;
error TF("Connect failed, something is wrong with the login settings:\n" .
"version: %s\n" .
"master_version: %s\n" .
"serverType: %s\n", $master->{version}, $master->{master_version}, $config{serverType}), "connection";
relog(30);
Вот оно: relog(30); окей, просто добавим туда случайность: relog(30+rand(20)).
Таким образом мы получим перелогинивалие со случайным интервалом через время от (30) до (30 + 20 сек).
ЗЫ: Насчет "очень благодарен" - кошелек WMR у миня в профиле. ^____^
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc. Перевод: zCarot