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

Макрос после еквипа вещи - зависает

Добавлено: Вс дек 10, 2006 12:57 pm
demm
Или руки у меня кривые, Или опять что-то с макросами...
Если еквипить через макрос, то он виснет после первой вещи которую нацепил.
Т.е. макрос цепляет вещь и начинает просто думать что сделать ему дальше... и думает до бесконечности или пока не скажешь ему macro stop

Пример:
macro eq {
log start eq
do eq @inventory (Novice Guard)
log end eq
}
Получаем зависон после еквипа, лог "end eq" не выводится:
macro eq
[macro][log] start
You equip Novice Guard (18) - Shield (type 32)
Кора 1.9.3.

Добавлено: Вс дек 10, 2006 2:31 pm
piroJOKE
Вообще-то так не бывает. О_о
Единственное где у меня зависали макросы, это были игрища с релогином... (do relog ###). Там тогда где-то что-то инициализовалось заново и всё вклякало.

Добавлено: Вс дек 10, 2006 3:07 pm
demm
а вот у меня бывает ^_^
похоже я единственный такой ^_^
ну не может он одеть больше одной вещей и всё...
первую одевает и висит...
Кора качалась отсюда...

Добавлено: Вс дек 10, 2006 3:23 pm
piroJOKE
Хм... А цепочка uneq / eq ? (Это бред, но интересно попробовать)

Добавлено: Вс дек 10, 2006 4:43 pm
demm
снимает, одевает... виснет...
macro eq {
do uneq @inventory (Novice Guard)
do eq @inventory (Novice Guard)
log end
}
Одевает, ничего не снимает... висит..
macro eq {
do eq @inventory (Novice Guard)
do uneq @inventory (Novice Guard)
log end
}

Добавлено: Вс дек 10, 2006 4:58 pm
piroJOKE
ЭЭэ, погоди-погоди...

А как насчет цепочки

...
eq .......
c Хелло пацанята!
move x y
}

Если это сработает, то причем тут eq вообще? :(

Добавлено: Вс дек 10, 2006 5:08 pm
kLabMouse
demm
Здесь Лучше Поигратся "eval"'ом. А лечше всего не забывать про "do"

Добавлено: Вс дек 10, 2006 5:25 pm
piroJOKE
Оффтопик: Ггг, программерам писать макросы доктора не рекомендуют. :lol:

Добавлено: Вс дек 10, 2006 5:27 pm
kLabMouse
piroJOKE
Оффтоп. Уху. Програмера ОТ НИХ ТУПЕЮТ.
Вот я За год роботы с SmarteScript отупел совсем. Теперь пол часа думаю и вспоминаю синтаксис языка.

Добавлено: Вс дек 10, 2006 5:31 pm
demm
piroJOKE
в самом первом сообщении смотри, после еквипа лог не выводится...

kLabMouse
а с do что у меня не так?

Добавлено: Вс дек 10, 2006 5:33 pm
kLabMouse
demm
Как видиш. Запара именно в строчке
eq @inventory (Novice Guard)

Добавлено: Вс дек 10, 2006 5:34 pm
demm
так do - то стоит...

Добавлено: Вс дек 10, 2006 5:39 pm
piroJOKE
Слушай, так это ж старый синтаксис; это было надо, когда Kore понимал только eq ## (число). А теперь ты просто можешь написать...

do eq Novice Guard

... и всё.

Добавлено: Вс дек 10, 2006 5:49 pm
demm
пробовал я это...
что я только не перепробовал...
У меня новис одеться сам не может Т_Т

Сам макрос:
macro eq {
log start
do uneq Novice Guard
do eq Novice Guard
do uneq Novice Guard
log end
}


вот что получается при "macro_orphans reregister_safe"
macro eq
[macro][log] start
You unequip Novice Guard (33) - Shield
You equip Novice Guard (33) - Shield (type 32) # тут висим
ai clear #вводим ручками
AI sequences cleared
[macro] orphaned macro!
found an active macro 'eq' but no 'macro' record in ai queue
using method 'reregister_safe' to solve this problem

[macro][log] end
You unequip Novice Guard (33) - Shield
и при "macro_orphans reregister"
macro eq
[macro][log] start
You unequip Novice Guard (33) - Shield
You equip Novice Guard (33) - Shield (type 32) # тут висим
ai clear #вводим ручками
AI sequences cleared
[macro] orphaned macro!
found an active macro 'eq' but no 'macro' record in ai queue
using method 'reregister' to solve this problem

You unequip Novice Guard (33) - Shield
[macro][log] end

Добавлено: Вс дек 10, 2006 5:52 pm
kLabMouse
Ну. Здесь Один Выход.... eval