PDA

Просмотр полной версии : Смена локаций


Hoegarden
13.04.2008, 18:46
Подскажите, плиз, как сделать, чтобы бот поле продажи/смерти шел на одну из указанных локаций. Т.е. выбирал рандомно из массива локаций одну и шел туда.
Да, и еще было бы интересно рандомно менять нпс, которому продается шмот.

Gans
13.04.2008, 20:08
макрос, который ловит момент смерти, тебе поможет

Hoegarden
13.04.2008, 23:04
так мне не главное уловить этот момент, а главное - прописать эти локации, чтобы выбирались

vitt
14.04.2008, 00:13
Я делал так:
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
исправил

Seo2Up
27.11.2009, 01:35
Хмммм ... masterspirta, а как поставить тайм-аут, чтобы через определенный промежуток (опять же рандомный) бот переходил с выбранной локации на другую.

Пример своими словами:

Умер/Скинул все добро в кафру -> сработал макрос -> выбралась локация №1 -> гуляю какое-то время -> сработал макрос -> выбралась локация №n

где n - это любая локация из списка в макросе, хоть та же самая, на которой сейчас нахожусь.

Так же хотел спросить, что делать с lockMap в конфигах ? Удалить ?

4epT
27.11.2009, 13:25
Seo2Up, зачем удалят "lockMap"? для каких целей?
для твоих целей пригодится плагин: lockMap.pl (http://ragbot.ru/forum/showthread.php?t=5042)

Seo2Up
27.11.2009, 20:22
Т.е. 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 минут
Только сейчас понял, что не надо все запихивать в макрос ...

4epT
30.11.2009, 23:42
в общем-то "lockMap" - это параметр конфига.. это карта на которуб бот пойдёт бить мобов..

макрос тебе нужен лишь для того-то чтобы изменять этот параметр в конфиге

т.е. если у тебя в конфиге (config.txt) было написано:
lockMap morroc

и если макрос выполнит команду:
do conf lockMap prontera

то у тебя в конфиге станет:
lockMap prontera

вот так вот естественно писать не правильно:
do conf lockMap prontera {
timeout 1000
goto random
}

Seo2Up
01.12.2009, 01:12
Ааааа ... Все, понял. Макрос на повтор запускает команда 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)В итоге бот как стоял нак одной карте, так и стоит ...

4epT
01.12.2009, 19:58
Seo2Up, для твоих целей макрос нафиг не нужен.. я же писал нужно использовать плагин

и нет такой команды в макросе: "timeout 1000" учи мат часть

Seo2Up
13.12.2009, 01:12
Эх, не работает у меня данный макрос (((

Юзал макрос из вот этого поста (http://ragbot.ru/forum/showpost.php?p=19167&postcount=5). В итоге пот ходит лишь по той локации, которая прописана в конфигах ((( Макрос срабатывает, но выбирает одну лишь локацию, которая в конфигах (((

4epT
13.12.2009, 16:06
какой упёртый малый.. я же тебе сказал используй плагин а не макрос!!!

Seo2Up
13.12.2009, 22:33
Да да, я такой ))) Все, понял )))