Просмотр полной версии : Смена локаций
Hoegarden
13.04.2008, 18:46
Подскажите, плиз, как сделать, чтобы бот поле продажи/смерти шел на одну из указанных локаций. Т.е. выбирал рандомно из массива локаций одну и шел туда.
Да, и еще было бы интересно рандомно менять нпс, которому продается шмот.
макрос, который ловит момент смерти, тебе поможет
Hoegarden
13.04.2008, 23:04
так мне не главное уловить этот момент, а главное - прописать эти локации, чтобы выбирались
Я делал так:
automacro ch_kac_noob {
console /^You have die/
class Novice
job < 10
call ch_kac_noobM
}
macro ch_kac_noobM {
if (@config(lockMap) == prt_fild06) goto mm1
if (@config(lockMap) == prt_fild08) goto mm2
goto end
:mm1
do conf lockMap prt_fild08
goto end
:mm2
do conf lockMap prt_fild06
:end
}
masterspirta
14.04.2008, 10:50
Можно сделать через рандом, рандомом выкидываем 3 числа, присваиваем переменной потом через теже ифы и метки готу, получаем рандомную локу.
Ну чот типа того:
automacro Yhvd {
console /.*/
call randomove
run-once 1
}
macro randomove {
$chislo = @random("1","2","3")
if (1 == $chislo) goto one
if (2 == $chislo) goto two
if (3 == $chislo) goto three
goto end
:one
do conf lockMap prontera
goto end
:two
do conf lockMap morroc
goto end
:three
do conf lockMap aldebaran
:end
release Yhvd
}
}
Исправил, работает, проверил
Можна ко все макросам
Hoegarden
15.04.2008, 20:52
Все, классно, способом vitt-а получилось!
Теперь при перевесе он у меня телепортиться в город, продает шмот и идет на другую карту.
Спасибо всем :)
Hoegarden
15.04.2008, 21:08
А через рэндом почему-то не получилось - и так и сяк пробовал.
masterspirta
16.04.2008, 08:16
исправил
Хмммм ... masterspirta, а как поставить тайм-аут, чтобы через определенный промежуток (опять же рандомный) бот переходил с выбранной локации на другую.
Пример своими словами:
Умер/Скинул все добро в кафру -> сработал макрос -> выбралась локация №1 -> гуляю какое-то время -> сработал макрос -> выбралась локация №n
где n - это любая локация из списка в макросе, хоть та же самая, на которой сейчас нахожусь.
Так же хотел спросить, что делать с lockMap в конфигах ? Удалить ?
Seo2Up, зачем удалят "lockMap"? для каких целей?
для твоих целей пригодится плагин: lockMap.pl (http://ragbot.ru/forum/showthread.php?t=5042)
Т.е. lockMap я вообще не трогаю. Если там прописано lockMap prt_fild08, по все равно приоритет будет отдаваться макросу ? Или мне необходимо прописать в lockMap локацию, где стоит кафра ?
Из вышесказанного у меня получилось:
automacro Yhvd {
console /.*/
call randomove
run-once 1
}
macro randomove {
$chislo = @random("1","2","3")
if (1 == $chislo) goto one
if (2 == $chislo) goto two
if (3 == $chislo) goto three
goto end
:one
do conf lockMap prontera {
timeout 1000
}
goto end
:two
do conf lockMap morroc{
timeout 1000
}
goto end
:three
do conf lockMap aldebaran{
timeout 1000
}
:end
release Yhvd
}
}
Не уверен, что это работает, т.к. сейчас сижу на работе, тут у меня под рукой бота нет.
Но вот в чем вопрос, если рассуждать логически, то если данная конструкция заработает, то что перезапустит макрос ?
Если я правильно понял, то goto - это метка, на которую стоит перейти после выполнения какого-нибудь пункта.
automacro Yhvd {
console /.*/
call randomove
run-once 1
}
:random
macro randomove {
$chislo = @random("1","2","3")
if (1 == $chislo) goto one
if (2 == $chislo) goto two
if (3 == $chislo) goto three
goto end
:one
do conf lockMap prontera {
timeout 1000
goto random
}
goto end
:two
do conf lockMap morroc{
timeout 1000
goto random
}
goto end
:three
do conf lockMap aldebaran{
timeout 1000
goto random
}
:end
release Yhvd
}
}
P.S. Здается мне, что ничего не заработает (((
Простите, если часто задаю глупые вопросы ...
Добавлено через 5 часов 5 минут
Только сейчас понял, что не надо все запихивать в макрос ...
в общем-то "lockMap" - это параметр конфига.. это карта на которуб бот пойдёт бить мобов..
макрос тебе нужен лишь для того-то чтобы изменять этот параметр в конфиге
т.е. если у тебя в конфиге (config.txt) было написано:
lockMap morroc
и если макрос выполнит команду:
do conf lockMap prontera
то у тебя в конфиге станет:
lockMap prontera
вот так вот естественно писать не правильно:
do conf lockMap prontera {
timeout 1000
goto random
}
Ааааа ... Все, понял. Макрос на повтор запускает команда release.
Исходя из этого, вариантautomacro Yhvd {
console /.*/
call randomove
run-once 1
}
macro randomove {
$chislo = @random("1","2","3")
if (1 == $chislo) goto one
if (2 == $chislo) goto two
if (3 == $chislo) goto three
goto end
:one
do conf lockMap prontera {
timeout 1000
}
goto end
:two
do conf lockMap morroc{
timeout 1000
}
goto end
:three
do conf lockMap aldebaran{
timeout 1000
}
:end
release Yhvd
}
}должен заработать.
Добавлено через 15 минут
Неа ... Не работает. Пишет:
[macro] randomove error: error in 3: cannot field label three
Если вставляю изначальный макрос:[macro] automacro Yhvd triggered.
Config 'lockMap' set to mjolnir_07 (was prontera)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to prt_fild00 (was prontera)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to prt_fild00 (was morroc)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to prt_fild00 (was morroc)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to mjolnir_07 (was morroc)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to prt_fild00 (was prontera)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to prt_fild00 (was morroc)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to mjolnir_06 (was morroc)
[macro] automacro Yhvd triggered.
Config 'lockMap' set to prt_fild00 (was aldebaran)В итоге бот как стоял нак одной карте, так и стоит ...
Seo2Up, для твоих целей макрос нафиг не нужен.. я же писал нужно использовать плагин
и нет такой команды в макросе: "timeout 1000" учи мат часть
Эх, не работает у меня данный макрос (((
Юзал макрос из вот этого поста (http://ragbot.ru/forum/showpost.php?p=19167&postcount=5). В итоге пот ходит лишь по той локации, которая прописана в конфигах ((( Макрос срабатывает, но выбирает одну лишь локацию, которая в конфигах (((
какой упёртый малый.. я же тебе сказал используй плагин а не макрос!!!
Да да, я такой ))) Все, понял )))
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc. Перевод: zCarot