Господа, возник вопрос по оптимизации. Просматривал скрипты с целью изучения логики их построения. В скрипте TromaL на кач в HuntersVillage проверка на смерть реализована таким образом:
Оффтоп
Код:
CharStatus(CHP,<=,0)
{
msg(Sdoh)
Set(FightStop)
delay(3000)
gohome()
DELAY(20000)
jmp(Start)
}
DELAY(60000)
Данный фрагмент кода повторяется более 50 раз, занимая более 80% тела скрипта. Предполагаю, что автор таким образом избавился от дополнительной проверки на наличие бафов, т.к. после 50+ ежеминутных проверок идет зачистка хвоста и тп в город.
Для себя постарался оптимизировать проверки на смерть/бафы, получилось таким образом:
Оффтоп
Код:
label(GeneralCheck)
Delay(60000)
Charstatus(CHP,<=,0) //Проверяем жив ли бот
{
MSG(Fatality)
Set(Fightstop)
Delay(3000)
gohome()
Delay(20000)
jmp(start)
}
CharBuffs([Id=4323]) //Проверяем наличие бафов
{
MSG(Out of Buff - ReBuff)
Set(RangeType,StartPos,100)
Set(FightStart)
Delay(30000)
Set(Fightstop)
UseItem(Scroll of Escape [id=736])
jmp(start)
}
jmp(GeneralCheck)
Корректен ли приведенный мной фрагмент? В данный момент, просто не имею возможности проверить
Стоит ли выдержать дополнительную паузу после проверки на наличие бафа и процедуры зачистки хвоста или это станет бесполезной потерей времени?
Оффтоп
Код:
CharBuffs([ID=4243]) //Проверяем наличие бафов
{
MSG(Out of Buff - ReBuff)
Delay(10000)
Set(RangeType,StartPos,100)
Set(FightStart)
Delay(30000)
Set(Fightstop)
UseItem(Scroll of Escape [id=736])
jmp(start)
}
Так же возник вопрос, как проверить наличие штрафа за смерть с целью изничтожить оный свитком снятия штрафа?