Страница 1 из 16

принудительная синхронизация / проблемы синхронизации / PP

Добавлено: Пт дек 08, 2006 5:52 am
kLabMouse
И Так.
В связи с проблемами для Офф Сервера связвніми с Лагами а так-же ищезновениями некоторых пакетов Предлагаю зделать макрос который будет принудительно синхронизировать БОТа с Сервером.
Ключевые слова
Attacking:
Teleporting...
You attack
You are sitting.
You are standing.

Идея Состоит в том что-бы поставить некое значение A = 1 если в консоли пишет Attacking:
В Случае если в консоле При A = 1 написало Teleporting... или You attack то ставим значение A = 0.
В Ином случае если A = 1 и в консоли написало You are sitting. или You are standing. Принудительно синхронизировать вызвав команду соответвенную процедуру с Send.pm и поставить A = 0.

Кто Хорошо Знает Макро Команды. Попрошу зделать что нибудь подобное. :)
Многие ВАМ Будут ООчень Благодарны

Добавлено: Пт дек 08, 2006 10:39 am
piroJOKE
Погоди, еще раз и медленно. В каких именно случаях возникает в этом необходимость?

ЗЫ: Иными словами - покажите лог консоли с "плохим поведением" бота!

Добавлено: Пт дек 08, 2006 11:48 am
¤Seii¤
Target died
Attacking: xxx
You are sitting
You are sitting
You are sitting
You are sitting
You are sitting
You are sitting
You are sitting

:wink:

Добавлено: Пт дек 08, 2006 12:13 pm
piroJOKE
Ну... раз такая пьянка... ага.. нам надо отловить несколько сообщений sittind/standing подряд, что-ли?

ЗЫ: Да нет.... "вы гоните", господа! Ну... тут все пишут, что... "он по 5 минут стоит втыкает". Но это же не может быть! Маскимум 12 секунд - таков период синхронизации. Как он может стоять больше этого срока?!

ЗЗЫ:

doCommand (......) { <--- тут вставить посылку синхро;
timeout 5
}

Ы? Почему нет?

Добавлено: Пт дек 08, 2006 12:19 pm
ravenclaw_
piroJOKE писал(а):Ну... раз такая пьянка... ага.. нам надо отловить несколько сообщений sittind/standing подряд, что-ли?

ЗЫ: Да нет.... "вы гоните", господа! Ну... тут все пишут, что... "он по 5 минут стоит втыкает". Но это же не может быть! Маскимум 12 секунд - таков период синхронизации. Как он может стоять больше этого срока?!
Не, тупит бот как раз секунд 10-15, но для печального исхода этого вполне хватает :)
Да, имеет смысл отлавливать два таких сообщения подряд.
Желательно чтобы опционально срабатывало и на 1 сообщение "о посидеть"...

Добавлено: Пт дек 08, 2006 12:45 pm
piroJOKE
Блин, у меня почему-то eval-ом не отсылается синхро! :shock: %)
Остальное безобразие работает, например фрагмент с форума О.К.:

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

eval sendForgeItem(\$remote_socket, 505)

Добавлено: Пт дек 08, 2006 12:51 pm
demm
automacro Sync1 {
var a == 0
console /Attacking:/
call {
$a = 1
}
}

automacro SyncA0 {
var a == 1
console /You attack/
call {
$a = 0
}
}

automacro SyncT0 {
var a == 1
console /Teleporting.../
call {
$a = 0
}
}

automacro SyncSit {
var a == 1
console /You are standing./
call {
#Вместо этой строчки надо както вызвать sendSync из Send.pm
$a = 0
}
}

automacro SyncStand{
var a == 1
console /You are sitting./
call {
#Вместо этой строчки надо както вызвать sendSync из Send.pm
$a = 0
}
}
Что-то типа того...
Чуть подправте и вызовите sendSync и должно заработать...
Почему, то если запишу так:
automacro SyncSit {
var a == 1
console /You are standing./, /You are Sitting./
call {
#Вместо этой строчки надо както вызвать sendSync из Send.pm
$a = 0
}
}
то не срабатывает. Поэтому разбил на отдельные аутомакросы.

Добавлено: Пт дек 08, 2006 12:55 pm
piroJOKE
Я ему пишу...

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

automacro testing {
	timeout 5
	call {
		do eval sendSync(\$remote_socket,0)
	}
}
А оно мне...
[macro] automacro testing triggered.
Can't call method "version" on unblessed reference at
D:/!/!!!!test!!!!/193SVN5168/src/Network/Send.pm line 2698.

[macro] automacro testing triggered.
Can't call method "version" on unblessed reference at
D:/!/!!!!test!!!!/193SVN5168/src/Network/Send.pm line 2698.

[macro] automacro testing triggered.
....
...непонятно, что это значит! :cry:

Добавлено: Пт дек 08, 2006 1:06 pm
demm
Тут ты темку апнул, похоже что в этом и загвоздка.

Блин, в интернет-експлорере %20 - означает пробел, нельзя-ли в перле вместо скобок, тоже какой-то символ поставить, может тогда заработает?
Пример из ИЕ (ro-fan.ru/Open Kore/):
ro-fan.ru/Open%20Kore/
перечитал твое сообщение выше, понял что глаза мои меня подводят... оказывается фордже у тебя работает, а я прочел что не работает.

Добавлено: Пт дек 08, 2006 1:08 pm
piroJOKE
Не уверен. Остальные функции вызываюццо успешно, например выше было eval sendForgeItem(\$remote_socket, 505).

Добавлено: Пт дек 08, 2006 4:06 pm
kLabMouse
piroJOKE

Можна доделать в Макро отдельную команду Sync
или Вызвать всё что нуно так
Network::Send::sendSync(\$remote_socket,0)

Короче хз, думать нуно

Добавлено: Пт дек 08, 2006 4:41 pm
piroJOKE
kLabMouse писал(а):Вызвать всё что нуно так
Network::Send::sendSync(\$remote_socket,0)
Ноль эффекта:

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

		do eval Network::Send::sendSync(\$remote_socket,0) 
Can't call method "version" on unblessed reference at
D:/!/!!!!test!!!!/193SVN5168/src/Network/Send.pm line 2698.
[macro] automacro testing triggered.
Can't call method "version" on unblessed reference at
D:/!/!!!!test!!!!/193SVN5168/src/Network/Send.pm line 2698.
[macro] automacro testing triggered.
...

Добавлено: Пт дек 08, 2006 4:47 pm
piroJOKE
И ваще... грязные извращенцы делают так, это команда... timeout ai_sync 3 :shock:

Добавлено: Пт дек 08, 2006 5:10 pm
DInvalid
Господа, вы уверены что это связано с лагами?

У меня на версии SVN 5157 все равботало, а вот после обновления
начались интересные глюки:

[Dec 8 17:01:26 2006.20] Attacking: Monster Willow (1)
[Dec 8 17:01:32 2006.60] Target died
[Dec 8 17:01:32 2006.18] [17:01:32] Exp gained: 3/2 (0.51%/0.00%)
[Dec 8 17:01:34 2006.34] Attacking: Monster Willow (0)
[Dec 8 17:01:37 2006.45] You are standing.
[Dec 8 17:01:38 2006.46] You are standing.
[Dec 8 17:01:39 2006.63] You are standing.
[Dec 8 17:01:40 2006.49] You are standing.
[Dec 8 17:01:40 2006.82] Target died
[Dec 8 17:01:41 2006.45] [17:01:41] Exp gained: 5/4 (0.85%/0.00%)
[Dec 8 17:01:42 2006.60] Attacking: Monster Willow (1)
[Dec 8 17:01:44 2006.77] You are standing.
[Dec 8 17:01:47 2006.60] You are standing.
[Dec 8 17:01:48 2006.76] You are standing.
[Dec 8 17:01:49 2006.92] You are standing.


Откуда тут standing? Он что вместо атаки начинает подавать команду встать? Предварительно не сев?


-_-

Добавлено: Пт дек 08, 2006 6:18 pm
piroJOKE
Плз, у кого это всё время - вот такое безобразие - посмотрите со стороны, с другого чара, как это выглядит?