sub AutoHeal() while uo.life>0 if uo.life<=uo.str-50 then UO.SetArm('CWeapon') UO.Exec("bandageself") wait(400) UO.Arm('CWeapon') wait(3000) endif wend end sub
Помогите вставить в этот автохил проверку на пойзон.. Тоесть Если мне нанесли дамаг он начинает хилится , если вдруг меня пойзонули то лечение бинтами он останавливает и кастует на себя Куре до, и потом опять продолжает хилится.. Наверно такое невозможно , но думаю дай попробую спросить..
sub AutoHeal() while not uo.Dead() if uo.life<=uo.str-50 then repeat UO.SetArm('CWeapon') UO.Exec("bandageself") wait(400) UO.Arm('CWeapon') uo.deletejournal() until uo.InJournal("You put") or uo.InJournal("You apply") wait(3000) if uo.Poisoned('self') then UO.Cast("Cure","self") wait(3000) endif wend end sub Проверьте пожалуста.. Как говорится первый блин
OmenSab пожалуйста пользуйся Codesweeper для табуляции строк и тегами [cоde][/cоde] при редактировании мессага.
OmenSab wrote: если вдруг меня пойзонули то лечение бинтами он останавливает и кастует на себя Куре до, и потом опять продолжает хилится
если так, то вставь проверку на пойзон внутрь самого цикла - получится такой алгоритм: если не отравлен - ничего кастовать не будет, а если отравлен - программа будет выполнять цикл кастования пока не вылечит отравление.
sub AutoHeal() WHILE not uo.Dead() If uo.life <= (uo.str-50) then
repeat while uo.Poisoned('self') ; условие цикла проверяет отравлен ли и если да то лечит. UO.Cast("Cure","self") wait(3000) wend
UO.SetArm('CWeapon') uo.disarm() ; если надо разоружиться чтоб юзать бинты UO.Exec("bandageself") wait(400) UO.Arm('CWeapon') until uo.life >= (uo.str-50) ; так надёжнее чем с журналом и журнал не надо будет ; удалять - вдруг понадобится. Значение подставь нужное.
UO.SetArm('CWeapon') uo.disarm() ; если надо разоружиться чтоб юзать бинты UO.Exec("bandageself") wait(400) UO.Arm('CWeapon')
вот этот блок сам по себе кривоват - перс будет постоянно шуршать: разоружился-вооружился, но я не знаю может быть тебе так нужно, в каких условиях это всё использоваться будет. Можно разоружение и вооружение вынести из цикла лечения, т.е. запомнил набор оружия, разоружился, пролечился (проверил на яд), вооружился:
If uo.life <= (uo.str-50) then UO.SetArm('CWeapon') uo.disarm() ; если надо разоружиться чтоб юзать бинты
Repeat ; цикл лечения while uo.Poisoned('self') ; условие цикла проверяет отравлен ли и если да то лечит. UO.Cast("Cure","self") wait(3000) wend UO.Exec("bandageself") wait(400) Until uo.life >= (uo.str-50) ; так надёжнее чем с журналом и журнал не надо будет ; удалять - вдруг понадобится. Значение подставь нужное.