Святой Инквизитор
16.01.2009, 01:28
macro plant {
[
do conf PlantX <х координата начала>
do conf PlantXd <написать то же что и выше>
do conf PlantY <у координата начала>
do conf PlantXf <х координата конца>
do conf PlantYf <у координата конца>
do conf PlantActivation 1
]
}
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 Споры кончились (
log ===== Mushroom 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})
$sptocon = 100
if ($y > $yf) goto two
if ($.sp >= 10) goto cast
]
do sit
:restoresp
log ===== Current sp - $.sp ! Sitting to restore till $sptocon ! =====
pause 10
if ($.sp < $sptocon) goto restoresp
do stand
:cast
do move @eval($x + 1) @eval($y + 1)
do sl 491 $x $y 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 под себя (помним что начальные координаты должны быть меньше конечных).
Потом просто запускать макрос plant каждый раз как нужно будет засадить прямоугольник что вы указали.
От меня в коллекцию ;)
UPDATE
Обновлено до версии 1.1.
1) Макрос оптимизирован.
2) Устранён глюк с остановкой макроса когда скил по какой-то причине сбивается.
3) Додана проверка на наличие сп. При отсутствии, сидим пока не станет хотя бы 100 (данное число указано в переменной $sptocon - измените если нужно).
Примечания:
Не вмонтирована проверка на перевес во время восстановления сп. Пока это не сделано старайтесь не быть нубами....
[
do conf PlantX <х координата начала>
do conf PlantXd <написать то же что и выше>
do conf PlantY <у координата начала>
do conf PlantXf <х координата конца>
do conf PlantYf <у координата конца>
do conf PlantActivation 1
]
}
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 Споры кончились (
log ===== Mushroom 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})
$sptocon = 100
if ($y > $yf) goto two
if ($.sp >= 10) goto cast
]
do sit
:restoresp
log ===== Current sp - $.sp ! Sitting to restore till $sptocon ! =====
pause 10
if ($.sp < $sptocon) goto restoresp
do stand
:cast
do move @eval($x + 1) @eval($y + 1)
do sl 491 $x $y 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 под себя (помним что начальные координаты должны быть меньше конечных).
Потом просто запускать макрос plant каждый раз как нужно будет засадить прямоугольник что вы указали.
От меня в коллекцию ;)
UPDATE
Обновлено до версии 1.1.
1) Макрос оптимизирован.
2) Устранён глюк с остановкой макроса когда скил по какой-то причине сбивается.
3) Додана проверка на наличие сп. При отсутствии, сидим пока не станет хотя бы 100 (данное число указано в переменной $sptocon - измените если нужно).
Примечания:
Не вмонтирована проверка на перевес во время восстановления сп. Пока это не сделано старайтесь не быть нубами....