PDA

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


syne13
14.06.2011, 18:46
в общем написал вот такой макрос но он не хочет проверят сп и уж варпаться на локу точно не желает. познаний ещё не так много поэтому прошу помочь исправить ошибки.

automacro loc {
location not geffen

location not yuno_fild06
timeout 2
release warp
}


automacro lowsp {
location not yuno
location not xmas
location not rachel
sp <=22
timeout 2
call heal
}

macro heal {
pause 1
#do is @inventory(Butterfly Wing)
do tele
pause 2
do move 152 181
do talknpc 149 181 c r0 c n
release warp
}

automacro warp {
map <mapname>
inventory "Blue Gemstone" > 0
call {
do ai manual
pause 2
do move 152 181
$152 = @eval($::char->{pos}{x})
$181 = @eval($::char->{pos}{y})
do sl 27 @eval($x + @rand(-2, 2)) @eval($y + @rand(-3,-1))
pause 2
do warp 1
pause 2
release gotowarp
}
}

automacro gotowarp {
location yuno 152 181
call {
pause 1
do move @eval($.lastMatch1) @eval($.lastMatch2)
pause 1
do ai on
}
}

4epT
15.06.2011, 01:13
по синтаксису куча ошибок! позже напишу где именно
при загрузке бота у тебя в консоль должны плеваться ошибки в каких строчка ошибки!

syne13
15.06.2011, 01:30
ошибка только одна спамилась
cmpr: wrong # of arguments (674) <> <>

4epT
16.06.2011, 00:08
automacro loc {
location not geffen
location not yuno_fild06
timeout 2
release warp <<<<<<это строчка должна находиться в теле макроса, а не автомакроса!!!
}


automacro lowsp {
location not yuno
location not xmas
location not rachel
sp <=22 <<<<<<<<<< не уверен, но лучше сделать побел
timeout 2
call heal
}


automacro warp {
map <mapname> <<<<<< тут должно быть название карты
inventory "Blue Gemstone" > 0
call {
do ai manual
pause 2
do move 152 181
$152 = @eval($::char->{pos}{x}) <<<<<< не понимаю зачем это тут
$181 = @eval($::char->{pos}{y}) <<<<<< не понимаю зачем это тут
do sl 27 @eval($x + @rand(-2, 2)) @eval($y + @rand(-3,-1))
pause 2
do warp 1
pause 2
release gotowarp <<<<<<< автомакрос gotowarp нигде не закрывается, зачем его освобождать??
}
}


automacro gotowarp {
location yuno 152 181
call {
pause 1
do move @eval($.lastMatch1) @eval($.lastMatch2) <<<<<<<<<< при чём тут $.lastMatch••••••
pause 1
do ai on
}
}



в общем читай доку (http://ragbot.ru/wiki/%D0%9C%D0%B0%D0%BA%D1%80%D0%BE-%D0%BF%D0%BB%D0%B0%D0%B3%D0%B8%D0%BD)!!! зри примеры!

syne13
16.06.2011, 07:57
сделал немного по другому

4epT
18.06.2011, 11:01
а ты чего удалил результат свой? верни для истории

syne13
01.09.2011, 15:19
позабыл мальца об этой теме
для ако производных сдеал вот такую вещь
automacro warpvgostinke {
location alberta_in 18 188
run-once 1
call {
call warp
pause 5
release warpvgostinke
}
}


macro warp {
$x = @eval($::char->{pos}{x})
$y = @eval($::char->{pos}{y})
do sl 27 @eval($x + @random ("-1", "-1", "1", "1")) @eval($y + @random ("-1", "-1", "0", "1", "1"))
pause 2
do warp 1
pause 2
#release warpvgostinke
}

automacro gotowarp {
console /You opened Warp Portal on \((.*)\, (.*)\)/
exclusive 1
call {
pause 1
do ai manual
do move @eval($.lastMatch1) @eval($.lastMatch2)
pause 1
do ai on
pause 1
release warpvgostinke
}
}

для связки бот+бот там примерно тоже тока с запросом от чара!