PDA

Просмотр полной версии : Взятие квеста через каждые 3 часа


Neonlight71
02.01.2016, 12:00
Всем привет. Ребят, кто подскажет как реализовать такую идею:
1) Бот берет квест в Едеме с доски 91-99
2) Идет его выполнять и по выполнению идет его сдавать
3) Потом 3-х часовой откат квеста. В это время бот качается на локации.
4) Спустя эти 3 часа бот снова идет к доске за квестом.

Пункты 1, 2, 4, знаю как сделать. Интересует именно пункт 3, как боту сказать чтобы он засекал отсчет 3 часа. Когда сдаешь квест в консоли и чару добавляется квест таймер (в консоле выглядит так: Добавлен квест: 91-99 Mission Board Timer) - Может к этому условию как прикрутить? Я не знаю, вобщем как ждать 3 часа ботом:(
Спасибо всем участникам заранее! :)

4epT
02.01.2016, 15:59
В пункте 2, а одном из последних макросов запиши значение текущего времени в конфиг, используя одну из специальных переменных:
$.time - current time as unix timestamp ("1131116304")
$.datetime - current date and time ("Fri Nov 4 15:59:36 2005")
$.hour - current hour time in 24h format
$.minute - current minute time

и создай макрос, который каждые 5 минут будет проверять разницу между текущим временем и сохранённым в конфиге.

Neonlight71
02.01.2016, 17:41
Я как раз сегодня смотрел на эти функции, но т.к. пользоваться ими не умею так и все :( Можно пример какой нибудь привести? Что нибудь простое, типо А спустя час сделает Б и так по кругу. Хоть буду знать от чего отталкиваться в синтаксисе.

4epT
03.01.2016, 22:41
в конфиг добавь строчку:
time 999999999

в макросы:
macro z {
log Текущее время: $.time
do conf time $.time
}
automacro aaa {
timeout 5
call {
$diff = @eval($.time - @config(time))
log Прошло $diff секунд
if ($diff < 30) stop
log ALARM прошло больше 30 секунд, можно проходить квест заного
}
}

запускай бота и дай команду: macro z

Neonlight71
04.01.2016, 13:58
в конфиг добавь строчку:
time 999999999

в макросы:
macro z {
log Текущее время: $.time
do conf time $.time
}
automacro aaa {
timeout 5
call {
$diff = @eval($.time - @config(time))
log Прошло $diff секунд
if ($diff < 30) stop
log ALARM прошло больше 30 секунд, можно проходить квест заного
}
}

запускай бота и дай команду: macro z
ЯХу! Пашет! Ура! Щас еще отшлифую до идеала свои макросы и будет огненно! Спасибо тебе добрый человек за помощь! С праздником! *bravo*

4epT
05.01.2016, 15:50
выкладывай, не стесняйся..

Neonlight71
05.01.2016, 16:43
Данные макросы позволяют качаться на поле ve_fild07 с точкой сохранения в Вейнсе.(Это под себя каждый делает локацию.) Выполнение квеста с доски 91-99 уровня на убийство 30 стапо, ожидание отката 3х часов, повторное взятие квеста. Макросы действую для пати, т.к. в моем случае качается пачка чаров.

В config.txt добавляем строку time 999999999
1) Первый макрос по слову в пати "goquest" пойдет на место сохранения (Вейнс в моем случае) (Два respawn'a это надо чтобы он шмотку переодел. Если у вас аксесс с Крими одетый сразу на каче, то можно и один respawn оставить). Подойдет к Эдему, портанется в него, зайдет на 2 этаж и возьмет квест на Стапо с доски. Выйдет обратно по пути взяв баф от VIP бафера на +7 к статам.
automacro Stapo1 {
party "goquest"
call {
do ai manual
pause 2
do respawn
pause 1
do respawn
pause 6
do move 203 122
pause 2
do talknpc 214 122 c r0
pause 10
do move 48 16
pause 5
do talknpc 48 177 c r2 r0 r0
pause 2
do move 47 161
pause 6
do move 35 16
pause 3
do talknpc 26 15 c
pause 3
do conf time $.time
do move 31 10
pause 10
do ai on
}
}

Далее бот ставите на место кача на Стапо (lockmap ve_fild07). Он начинает делать квест.

2) Второй макрос следит за выполнением квеста и когда в консоли проскочит уведомление что набито 30 из 30 мобов бот запустит макрос сдачи квеста, который похож на первый почти один в один. В конце этот макрос запишет время сдачи квеста в конфиг.
automacro stapoFIN {
console /.*(30/30).*/
call {
do ai manual
pause 2
do respawn
pause 1
do respawn
pause 6
do move 203 122
pause 2
do talknpc 214 122 r0
pause 10
do move 48 16
pause 5
do talknpc 48 177 c r2 r0
pause 2
do move 47 161
pause 6
do move 35 16
pause 3
do talknpc 26 15 c
pause 3
do move 31 10
do conf time $.time
pause 10
do ai on
}
}

3) Следующий макрос будет проверять каждые 10 минут разницу во времени, при этом персонаж должен находится на карте ve_fild07, чтобы при работе макросов на сдачу и взятие квеста они не перебили друг друга (У меня в таком случае макрос стопорится :( ) И если разница во между текущем временем и временем сдачи квеста будет больше чем 3 часа 5 минут, то бот даст команду в чат (goquest), запускающую макрос на взятие квеста и так далее по цепочке.

automacro aaa {
map ve_fild07
timeout 600
call {
$diff = @eval($.time - @config(time))
log Прошло $diff секунд
if ($diff < 11100) stop
log ALARM прошло больше 3 часов, можно проходить квест заново.
do p goquest
}
}


вот и все в целом.Может громоздко, но я просто хотел чтобы сдачу и взятие квеста бот делал по точкам координат, поэтому так много там команд move и пауз.
Спасибо за помощь гению 4epT!