Просмотр полной версии : тупит макрос на накопление сп
почему то макрос не завершается,не могу понять причину.
на месте координаты разумеется я поставил координаты))
automacro spnet {
run-once 1
sp < 20%
call {
do move координаты
call check_hp
}
}
macro check_hp {
if ($.sp == 100%) goto one
log сп ещё не восстановилось
pause 20
call check_hp
:one
log finish
goto end
:end
}
лог консоли приложи.
на хрена надо:
goto end
:end
вечное
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
видимо символ "%" лишний.. посмотри что показывает "$.sp"
то есть в if нельзя использовать % ?в гайде просто написано "$.sp - текущее СП"
текущее сп - это понятно, только ты уверен что там в процентах?
на условие "if (100 == 100%)" я бы тоже ответил нет ;)
пиши готовое решение
уезжал из города на недельку))
Короче,у меня получается так,при сп меньше 20% он идёт в указанную координату,садится и копит его.При накоплении он встает и идет по делам,но почему макрос не пишет [macro][log] finish только один раз,а пишет несколько.Может тут что-то неправильно?
ЛОГ:
You use Heal on yourself : 60 hp gained
[macro] automacro spnet triggered.
Calculating route to: идет на место где должен сидеть
You are sitting.
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] finish
You are standing.
[macro][log] finish
[macro][log] finish
Calculating lockMap route to: идет в место кача
МАКРОС:
automacro spnet {
run-once 1
sp < 20%
call {
do move координаты места восстановления сп
do sit
call check_hp
}
}
macro check_hp {
if ($.sp == 92) goto one
:two
log сп ещё не восстановилось
pause 20
call check_hp
:one
log finish
do stand
release spnet
goto end
:end
}
не знаю почему у тебя повторяются строчки.. У тебя в файле макросо больше никаких нету?
ты мне объясни зачем тебе 2 подряд строчки:
goto end
:end
не знаю почему у тебя повторяются строчки.. У тебя в файле макросо больше никаких нету?
нет,макросов больше нету
ты мне объясни зачем тебе 2 подряд строчки:
ну так то без разницы,убрал,но работает так же,выдает три строчки finish)))Ну вообще главное что работает.И написан вроде бы правильно,правда это мой первый)))
masterspirta
08.07.2009, 17:14
automacro spnet {
run-once 1
sp < 20%
call {
do move координаты места восстановления сп
do sit
call check_hp
}
}
macro check_hp {
if ($.sp == 92) goto one
:two
log сп ещё не восстановилось
pause 20
call check_hp
:one
log finish
do stand
release spnet
goto end
:end
}
У тебя 2 условия на сп==> теперь что из этого выходит
sp=32
сработал автомакрос, а в макросе условие ($.sp == 92) не сработало
но автомакрос перезагрузился, (call check_hp) отработает только позавершению текущего макроса, либо не отработает (2 макроса одновременно работать не могут)
Также не понял
goto end
:end
И
:two (goto two нет)
sp < 20%
if ($.sp == 92)
Совет не использовать в условиях равность при возможности измениния пораметра условия больше 2х значений!!!
Я бы сделал так:
---------------------------------------------------------------
automacro gorestoresp {
run-once 1
sp < 20%
call start }
macro start {
log start restore sp
do move координаты места восстановления сп
do ai off
do sit
release spnormaly
}
automacro spnormaly{
run-once 1
sp > 95%
call finish
}
macro finish {
do ai on
do stand
log finish restore sp
release gorestoresp
}
vBulletin® v3.8.11, Copyright ©2000-2024, vBulletin Solutions Inc. Перевод: zCarot