rofan

Клуб любителей пляски с бубном вокруг Openkore
Текущее время: Ср сен 08, 2010 4:56 pm


Часовой пояс: UTC + 3 часа


Правила форума


В форуме макросы "Макросы" разрешено только задавать вопросы по уже существующим макросам и просить помощь по недоработанным своим. При этом таким считается тот макрос который готов не менее чем на 2/3.
Если вы хотите попросить участников сообщества написать вам макрос, это можно сделать в разделе "сервис", либо поискать уже готовые макросы тут или в сборке с ботом тут.



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Сделать relog если бот завис
СообщениеДобавлено: Вт янв 19, 2010 12:32 pm 
Не в сети
Грамотный

Зарегистрирован: Сб окт 04, 2008 3:57 pm
Сообщения: 201
Вообщем иногда сталкиваюсь с такой проблемой что при выполнении макроса бот иногда глючит(когда ответ от сервера идет долго, а бот базарит каждую секунду, тоесть получается что диалог с разговором не появился а бот уже начинает говорить), и после такого сбивания условия следуйщих макросов не выполняются и бот просто стоит на одном месте нифига не делая. Чтоб он опять заработал как надо нужно релогнутся.

Сообственно в этом и проблема, как сделать что если бот ничего не делает в течении 5 минут он перелогинивался?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Вт янв 19, 2010 3:24 pm 
В сети
Грамотный

Зарегистрирован: Ср авг 29, 2007 12:45 pm
Сообщения: 282
(когда ответ от сервера идет долго, а бот базарит каждую секунду, тоесть получается что диалог с разговором не появился а бот уже начинает говорить)

попробуй ставить паузы между разговорами, например
do talknpc 123 45 w2 c w2 r0 w4
где w2 - подождать 2 секунды.

или
do talk cont
pause 3
do talk resp 3
pause 3
и т.д.

_________________
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Вт янв 19, 2010 8:05 pm 
Не в сети
Грамотный

Зарегистрирован: Сб окт 04, 2008 3:57 pm
Сообщения: 201
у меня идет так как ты пишеш

do talk cont
pause 3
do talk resp 3
pause 3

только пауза 1 секунду, которой вполне хватает когда сервер не лагает. ставить 2 секи или 3 не выход, так как увеличит время выполнений макроса в 2 раза, да и виснет оно давольно таки редко, но обидно когда бот глюканет и простоит всю ноч впустую на одном месте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Вт янв 19, 2010 8:54 pm 
В сети
Грамотный

Зарегистрирован: Ср авг 29, 2007 12:45 pm
Сообщения: 282
Ну, тебе решать, что лучше - в два раза замедлить базар с нпц или оставить как есть и наутро видеть всю ночь простоявшего бота.

По-идее, опенкора не посылает следующий пакет - продолжение разговора, пока не получит от неписи соответсвующее сообщение.

В твоем случае, если хочется и быстро и чтоб работало мона попробовать сделать так:

automacro a1 {
console /Первая фраза неписи/
call {
do talk cont
}
}

automacro a2 {
console /Непись продолжает нести чушь/
call {
do talk cont
}
}

_________________
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Ср янв 20, 2010 11:38 am 
Не в сети
Грамотный

Зарегистрирован: Сб окт 04, 2008 3:57 pm
Сообщения: 201
скорее всего так и прийдется делать, при хорошем пинге и пол секунды паузы хватает.
а если так, бот обычно когда втыкает то садится через некоторое время.


automacro а {
console /ю ар ситинг/
call {
do pause 500 (к примеру)
do relog
}
}

можно ли както отменить этот релог если бот к примеру встал и начал дальше выполнять макрос?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Ср янв 20, 2010 12:04 pm 
В сети
Грамотный

Зарегистрирован: Ср авг 29, 2007 12:45 pm
Сообщения: 282
Слушай, а что мы паримся? Если он у тебя садится, если что-то пошло не так в макросах, так и делай свой макрос... Разве что небольшое дополнение к твоему макросу:

automacro а {
console /ю ар ситинг/
call {
do pause 500 (к примеру)
if (@eval($::char->{sitting}) != 1) goto notrelog
do relog
:notrelog
}
}

Попробуй, я не могу сейчас проверить этот макрос.

_________________
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Ср янв 20, 2010 3:10 pm 
Не в сети
Грамотный

Зарегистрирован: Сб окт 04, 2008 3:57 pm
Сообщения: 201
do pause 500 (к примеру)
if (@eval($::char->{sitting}) != 1) goto notrelog
do relog
:notrelog

вопрос по этому

бот сел пошол таймер, если прошло 500сек идет проверка сидит бот или нет. как я понял если чар все еще сидит то он не перелогинится if (@eval($::char->{sitting}) != 1) goto notrelog, или эта 1 указывает чтото другое? надо ее менять на 0? с этими переменными не очень дружу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Ср янв 20, 2010 7:01 pm 
В сети
Грамотный

Зарегистрирован: Ср авг 29, 2007 12:45 pm
Сообщения: 282
Приветствую.
Сначала вопрос - ты это проверял? Работает?
А теперь про твой вопрос. Оператор if в макросах очень интересно устроен. Если условие в скобках верно, то выполняется команда goto и далее макрос продолжается с указанной метки. Если условие в скобках не верно (ложно), то выполняется следующая после оператора if строка макроса.
В данном случае следует читать так: Если чар не (!= 1) сидит (sitting), то команду релог - do relog, проскочить (перепрыгнуть на метку :notrelog). Вот и всё.

if (@eval($::char->{sitting}) != 1) goto notrelog
do relog
:notrelog

_________________
# Гурнин: Неплохо! Пришло время научить вас умению 'Скидка', но мы займемся этим позже.
русская вики по OpenKore, редактор макросов с подсветкой и справкой по Ctrl+F1
openkore.collectskin.com - всегда свежая svn-версия OpenKore!
Видео-гайд по установке и настройке OpenKore


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Сделать relog если бот завис
СообщениеДобавлено: Пт фев 05, 2010 12:32 pm 
Не в сети
Грамотный

Зарегистрирован: Сб окт 04, 2008 3:57 pm
Сообщения: 201
спасибо буду пробовать


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти: