HELP Остановка макросов Во время Вылетов

Общие вопросы по OpenKore обсуждаются здесь. Можно сказать, что это - основной раздел форума.
Возник вопрос? Вам сюда.

Модератор: 4epT

Правила форума
Все вопросы по OK не касающиеся плагинов и макросов публикуются в этом разделе.
Перед тем как что то писать, пожалуйста, удостоверьтесь что данная тема не поднималась, вы полностью изучили мануалы по конфигурационным файлам бота и не нашли там решения.
Аватара пользователя
z-0091
Грамотный
Сообщения: 216
Зарегистрирован: Сб дек 06, 2008 1:00 pm
Сервер RO:: LaGGeme
Откуда: Самара-большой и красивый город

HELP Остановка макросов Во время Вылетов

Сообщение z-0091 »

Трубуеться сделать автомакрос, преостанавливаюший работу ранее запушеного макроса во время дисконекта, и возобновляюший его. НА форуме нашел какое то подобие. У меня получилось что то типо этого.

Код: Выделить всё

automacro DisconnectedFromMapServerNoob {
	console /Disconnected from Map Server/
	exclusive 1
	call DFMSN
}
macro DFMSN {
	pause 1
	do reload macro
release all
	do reload conf
	#do relog 10#
	pause 20
macro stop
  $ch = @config (macrEro)
call foo$ch
}
automacro TheNpcDidntRespondNoob {
	console /The NPC did not respond/
	exclusive 1
	call TNDR
}
macro TNDR {
	pause 1
	do reload macro
release all
	do reload conf
	do relog 20
	pause 20
  $ch = @config (macrEro)
call foo$ch
}

automacro TheNpcDidntRespondNoo {
	console /Timeout on Account Server/
        console /Timeout on Map Server/
	exclusive 1
	call TNDRN
}
macro TNDRN {
	pause 1
	do reload macro
release all
	do reload conf
	do relog 20
	pause 20
  $ch = @config (macrEro)
call foo$ch
}

automacro TheNpcDidntRespondNo {
	console /Error: The server still recognizes your Last connection/
	exclusive 1
	call TNDR
}
macro TNDR {
	pause 1
	do reload macro
release all
	do reload conf
	do relog 20
	pause 20
  $ch = @config (macrEro)
call foo$ch
}


но работает это криво. Расмотрим ситуацию. Дисконект-> Падает сервер -> не входим в течении 20сек то макрос начинает работу. В итоге лажа. Еше, нужно как то остановить работающий макрос. do macro stop кора не принемает не в какую. Вобшем ХЗ что делать. Какие есть мысли?
Нужен макрос но не хватает моЗга? Хочешь хорошо настроенного бота но ЛенЬ? Я Готов помочь тебе за Сущие копейки xD.
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: HELP Остановка макросов Во время Вылетов

Сообщение EternalHarvest »

Может, сделать поддержку этого на уровне макро-плагина? С возможностью задания флага "приостановить выполнение при дисконнекте" для отдельных макросов?
Аватара пользователя
z-0091
Грамотный
Сообщения: 216
Зарегистрирован: Сб дек 06, 2008 1:00 pm
Сервер RO:: LaGGeme
Откуда: Самара-большой и красивый город

Re: HELP Остановка макросов Во время Вылетов

Сообщение z-0091 »

EternalHarvest
Я тебя не очень понял, приведи пример
Нужен макрос но не хватает моЗга? Хочешь хорошо настроенного бота но ЛенЬ? Я Готов помочь тебе за Сущие копейки xD.
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: HELP Остановка макросов Во время Вылетов

Сообщение EternalHarvest »

Предлагаю включить в макро-плагин что-то вроде такого:

Macro::Script::next

Код: Выделить всё

+	if ($self->{pauseOnDc} && $conState != 5) {
+		return ""
+	}
	if (defined $self->{subcall}) {
...
		} elsif ($var eq 'orphan' && $val =~ /^(?:terminate|reregister(?:_safe)?)$/) {
			$self->{orphan} = $val
+		} elsif ($var eq 'pauseOnDc' && $val =~ /^[01]$/) {
+			$self->{pauseOnDc} = $val

Код: Выделить всё

macro test {
	set pauseOnDc 1
	log 1
	log 2
	log 3
	log 4
	log 5
	do relog 10
	log 6
	log 7
	log 8
	log 9
	log 0
}
Аватара пользователя
z-0091
Грамотный
Сообщения: 216
Зарегистрирован: Сб дек 06, 2008 1:00 pm
Сервер RO:: LaGGeme
Откуда: Самара-большой и красивый город

Re: HELP Остановка макросов Во время Вылетов

Сообщение z-0091 »

обьясни как это работает. и что дает
Нужен макрос но не хватает моЗга? Хочешь хорошо настроенного бота но ЛенЬ? Я Готов помочь тебе за Сущие копейки xD.
Аватара пользователя
[GM]#05
Профессионал
Сообщения: 593
Зарегистрирован: Пт фев 09, 2007 8:44 pm
Сервер RO:: rRO

Re: HELP Остановка макросов Во время Вылетов

Сообщение [GM]#05 »

Он тебе пример привел наглядный, что же может быть непонятного)
Пробуй.
EternalHarvest
Разработчик
Сообщения: 819
Зарегистрирован: Пн окт 27, 2008 9:49 pm

Re: HELP Остановка макросов Во время Вылетов

Сообщение EternalHarvest »

Добавляем флаг pauseOnDc (пауза при дисконнекте) - для этого редактируем макро-плагин.
Устанавливается командой "set pauseOnDc 1" в (не авто-) макросе.
Если он установлен в 1 - то этот макрос будет исполняться только когда бот в игре, иначе приостанавливаться.
Ответить