PDA

Просмотр полной версии : run-once, release


Ramzei
24.05.2008, 14:53
Привет,

Раскажите про сабж - для чего, в каких случаях. Можно пример)
До конца не догоняю...

vitt
24.05.2008, 19:43
Синтаксис команд(отсюда (http://www.openkore.com/wiki/index.php/Macro_plugin_Russian)):

run-once (0 | 1)

Если установлена "1", то АМ закроется, пока его не включат (см. команду release).
Например, пусть АМ запускается, когда Ваш вес больше "1", т.е. он будет запускаться пока Вы находитесь в игре. OpenKore постоянно будет писать, что АМ запущен. Если Вы в тело АМ добавите строчку "run-once 1" (не важно в начале или в конце), то АМ выполнится 1 раз, после чего он "закроется".


release (<имя_автомакроса> | all)

Включает закрытый автомакрос (команда "run-once" закрывает автомакрос). Для включения всех автомакросов, используйте команду release all.
Объясню на примере:
automacro yo{
location prontera
call yoM
}
macro yoM{
log === Мы в пронте, топаем на 100 100 ===
do move 100 100
}
Когда мы в пронтере, то условие верно, и запускается автомакрос постоянно, и макрос постоянно перебивается(в этом примере это так), и бот не только не топает на нужные нам координаты, а вообще намертво подвисает, флудит в консоль вот так(успевает выполняться только первая строчка макроса, мы не видим строчки Calculating ...):
........
[macro] automacro yo triggered.
[macro][log] === Мы в пронте, топаем на 100 100 ===
[macro] automacro yo triggered.
[macro][log] === Мы в пронте, топаем на 100 100 ===
........

Если автомакрос заменить на такой:
automacro yo{
location prontera
call yoM
run-once 1
}
то автомакрос запустится один раз и больше запускаться не будет, и мы успешно потопаем на нужные нам координаты:
[macro] automacro yo triggered.
[macro][log] === Мы в пронте, топаем на 100 100 ===
Calculating route to: Prontera City(prontera): 100, 100


Если же нам надо опять включить этот выключенный автомакрос, то в макросе(не обязательно в этом) надо использовать команду
release yo
Скажем у нас бот настроен на локу prt_fild08(которая под Пронтой). Тогда вот пример, когда бот, как только будет оказываться в Пронте(скажем он сдох при каче, и сохранён в Пронте), будет топать сначала на координаты 100 100, а потом делать всё остальное(видно, что когда мы в пронте, релизим автомакрос relyo, а когда на prt_fild08, релизим yo - как бы крест-накрест).
automacro yo{
location prontera
call yoM
run-once 1
}
macro yoM{
log === Мы в пронте, топаем на 100 100 ===
release relyo
do move 100 100
}

auromacro relyo{
location prt_fild08
call relyoM
run-once 1
}
macro relyoM{
log === Включаем автомакрос yo ===
release yo
}