PDA

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


FlashX
30.06.2009, 17:46
почему то макрос не завершается,не могу понять причину.
на месте координаты разумеется я поставил координаты))

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
}

4epT
30.06.2009, 21:04
лог консоли приложи.

на хрена надо:
goto end
:end

FlashX
30.06.2009, 21:46
вечное

[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось
[macro][log] сп ещё не восстановилось

4epT
30.06.2009, 22:36
видимо символ "%" лишний.. посмотри что показывает "$.sp"

FlashX
30.06.2009, 23:21
то есть в if нельзя использовать % ?в гайде просто написано "$.sp - текущее СП"

4epT
01.07.2009, 00:57
текущее сп - это понятно, только ты уверен что там в процентах?

на условие "if (100 == 100%)" я бы тоже ответил нет ;)

FlashX
01.07.2009, 01:23
а,всё :)понял,спасибо :)

4epT
01.07.2009, 18:39
пиши готовое решение

FlashX
06.07.2009, 17:06
пиши готовое решение
уезжал из города на недельку))

Короче,у меня получается так,при сп меньше 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
}

4epT
06.07.2009, 19:12
не знаю почему у тебя повторяются строчки.. У тебя в файле макросо больше никаких нету?

ты мне объясни зачем тебе 2 подряд строчки:
goto end
:end

FlashX
06.07.2009, 21:58
не знаю почему у тебя повторяются строчки.. У тебя в файле макросо больше никаких нету?

нет,макросов больше нету

ты мне объясни зачем тебе 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
}