Page 1 of 1
Прошу помощи..
Posted: 2011-01-24 14:26:05
by OmenSab
Уважаемые скриптеры.. Помогите с доработкой скрипта на автохил..
Сам скрипт-
Code: Select all
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
Помогите вставить в этот автохил проверку на пойзон.. Тоесть Если мне нанесли дамаг он начинает хилится , если вдруг меня пойзонули то лечение бинтами он останавливает и кастует на себя Куре до, и потом опять продолжает хилится..
Наверно такое невозможно , но думаю дай попробую спросить..

Re: Прошу помощи..
Posted: 2011-01-24 16:44:40
by OmenSab
Забыл сказать , если необходимо до готов за энную сумму получить данный скрипт (WMR)

Несочтите за мажорство , просто реально нужен скрипт ...
Шард ДРВ

Re: Прошу помощи..
Posted: 2011-01-24 20:12:35
by Makarov
Re: Прошу помощи..
Posted: 2011-01-24 21:37:47
by OmenSab
Не понял , к чему ты это написал?
Re: Прошу помощи..
Posted: 2011-01-24 22:55:58
by Mirage
OmenSab wrote:Не понял , к чему ты это написал?
if uo.Poisoned('self') then ...
Re: Прошу помощи..
Posted: 2011-01-25 09:02:10
by OmenSab
Мда.. вот если б в этом еще понимать бы

Re: Прошу помощи..
Posted: 2011-01-25 09:24:28
by Mirage
Re: Прошу помощи..
Posted: 2011-01-25 09:50:13
by OmenSab
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
Проверьте пожалуста.. Как говорится первый блин

Re: Прошу помощи..
Posted: 2011-01-25 12:22:11
by Makarov
OmenSab пожалуйста пользуйся
Codesweeper для табуляции строк и тегами
[cоde][/cоde] при редактировании мессага.
OmenSab wrote: если вдруг меня пойзонули то лечение бинтами он останавливает и кастует на себя Куре до, и потом опять продолжает хилится
если так, то вставь проверку на пойзон внутрь самого цикла - получится такой алгоритм: если не отравлен - ничего кастовать не будет, а если отравлен - программа будет выполнять цикл кастования пока не вылечит отравление.
Code: Select all
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) ; так надёжнее чем с журналом и журнал не надо будет
; удалять - вдруг понадобится. Значение подставь нужное.
Endif
wait(3000)
WEND
end sub
Re: Прошу помощи..
Posted: 2011-01-25 12:38:26
by OmenSab
Большущее спасибо! Все разьяснил

При возможности попробую скрипт

Re: Прошу помощи..
Posted: 2011-01-25 12:51:36
by Makarov
Code: Select all
UO.SetArm('CWeapon')
uo.disarm() ; если надо разоружиться чтоб юзать бинты
UO.Exec("bandageself")
wait(400)
UO.Arm('CWeapon')
вот этот блок сам по себе кривоват - перс будет постоянно шуршать: разоружился-вооружился, но я не знаю может быть тебе так нужно, в каких условиях это всё использоваться будет. Можно разоружение и вооружение вынести из цикла лечения, т.е. запомнил набор оружия, разоружился, пролечился (проверил на яд), вооружился:
Code: Select all
sub AutoHeal()
WHILE not uo.Dead()
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) ; так надёжнее чем с журналом и журнал не надо будет
; удалять - вдруг понадобится. Значение подставь нужное.
UO.Arm('CWeapon')
Endif
wait(3000)
WEND
end sub
Re: Прошу помощи..
Posted: 2011-01-25 12:55:12
by OmenSab
Я думаю пока буду первым вариантом пользоватся , т.к в бою лучше пускай шуршит..
Если будут возникать проблемы тогда , да уберу из цикла.