Прошу помощи..

Ask for scripts here

Moderators: Murderator+, Murderator

Post Reply
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Прошу помощи..

Post 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


Помогите вставить в этот автохил проверку на пойзон.. Тоесть Если мне нанесли дамаг он начинает хилится , если вдруг меня пойзонули то лечение бинтами он останавливает и кастует на себя Куре до, и потом опять продолжает хилится..
Наверно такое невозможно , но думаю дай попробую спросить.. :lol:
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Re: Прошу помощи..

Post by OmenSab »

Забыл сказать , если необходимо до готов за энную сумму получить данный скрипт (WMR) :wink:
Несочтите за мажорство , просто реально нужен скрипт ...
Шард ДРВ :roll:
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Re: Прошу помощи..

Post by OmenSab »

Не понял , к чему ты это написал?
Mirage
Posts: 2802
Joined: 2009-05-28 09:58:28
Location: Иваново
Contact:

Re: Прошу помощи..

Post by Mirage »

OmenSab wrote:Не понял , к чему ты это написал?

if uo.Poisoned('self') then ...
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Re: Прошу помощи..

Post by OmenSab »

Мда.. вот если б в этом еще понимать бы :(
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Re: Прошу помощи..

Post 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
Проверьте пожалуста.. Как говорится первый блин 8)
Makarov
Posts: 62
Joined: 2010-04-07 14:43:26

Re: Прошу помощи..

Post 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
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Re: Прошу помощи..

Post by OmenSab »

Большущее спасибо! Все разьяснил 8) При возможности попробую скрипт :wink:
Makarov
Posts: 62
Joined: 2010-04-07 14:43:26

Re: Прошу помощи..

Post 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
OmenSab
Posts: 16
Joined: 2009-01-06 21:20:02

Re: Прошу помощи..

Post by OmenSab »

Я думаю пока буду первым вариантом пользоватся , т.к в бою лучше пускай шуршит..
Если будут возникать проблемы тогда , да уберу из цикла.
Post Reply