Код: Выделить всё
macro plant {
[
do conf PlantX <х координата начала>
do conf PlantXd <написать то же что и выше>
do conf PlantY <у координата начала>
do conf PlantXf <х координата конца>
do conf PlantYf <у координата конца>
$x = @eval($::config{PlantX})
$y = @eval($::config{PlantY})
$xf = @eval($::config{PlantXf})
$yf = @eval($::config{PlantYf})
:checkcell
if ($y > $yf) goto twocheck
$bool = @eval($::field->isWalkable($x, $y))
if ($bool != 1) goto checkfailed
if ($y > $yf) goto twocheck
if ($x >= $xf) goto onecheck
$x = @eval($x + 1)
goto checkcell
:onecheck
$y = @eval($y + 1)
$x = @eval($::config{PlantXd})
goto checkcell
:twocheck
do conf PlantActivation 1
goto endcheck
:checkfailed
do conf PlantActivation 0
log ===== Cell $x $y can't be planted with mushroom!!! =====
:endcheck
]
}
automacro Cast {
eval $::config{PlantActivation} eq "1"
run-once 1
priority 2
call CastSpell
}
automacro SkillFail1 {
console /Skill Cultivation failed/
eval $::config{PlantActivation} eq "1"
priority 1
call CastSpell
}
automacro SkillFail2 {
console /Casting failed:/
eval $::config{PlantActivation} eq "1"
priority 1
call CastSpell
}
macro CastSpell {
[
log ||| @invamount(Mushroom Spore) spores left. |||
if (@invamount(Mushroom Spore) > 0) goto next
pause 2
do c Spores Ended :(
do conf PlantActivation 0
goto end
:next
$x = @eval($::config{PlantX})
$y = @eval($::config{PlantY})
$xf = @eval($::config{PlantXf})
$yf = @eval($::config{PlantYf})
if ($y > $yf) goto two
]
do move @eval($x + 1) @eval($y + 1)
do sl 491 $x $y 1
pause 1
[
if ($y > $yf) goto two
if ($x >= $xf) goto one
do conf PlantX @eval($x + 1)
goto end
:one
do conf PlantY @eval($y + 1)
do conf PlantX @eval($::config{PlantXd})
goto end
:two
do conf PlantActivation 0
:end
]
release Cast
}
Готовая и протестированная версия для засадки грибами прямоугольника от (х,у) до (х1,у1).
В конфиге должны быть рядки:
Код: Выделить всё
PlantX
PlantXd
PlantY
PlantXf
PlantYf
PlantActivation
Потом просто запускать макрос plant каждый раз как нужно будет засадить прямоугольник что вы указали.
UPDATE
Обновлено до версии 1.1.
1) Макрос оптимизирован.
2) Устранён глюк с остановкой макроса когда скил по какой-то причине сбивается.
3) Додана проверка на наличие сп. При отсутствии, сидим пока не станет хотя бы 100 (данное число указано в переменной $sptocon - измените если нужно).
Примечания:
Не вмонтирована проверка на перевес во время восстановления сп. Пока это не сделано старайтесь не быть нубами....
Добавлено спустя 18 часов 18 минут 56 секунд:
UPDATE
Обновлено до версии 1.2.
1) Теперь наш бот не идёт на одну и туже точку в отношении гриба, а меняет положение, что меньше его палит как бота.
2) Вмонтирована проверка на перевес 90%.
Примечания:
Проверка на перевес 50%, при восстановлении сп, пока ещё не вмонтирована. Ждите пока я не додумаюсь как это сделать.