Yoko
http://forum.yoko.com.ua/

Прошу помощи..
http://forum.yoko.com.ua/viewtopic.php?f=17&t=16154
Page 1 of 1

Author:  OmenSab [ 2011-01-24 14:26:05 ]
Post subject:  Прошу помощи..

Уважаемые скриптеры.. Помогите с доработкой скрипта на автохил..
Сам скрипт-

Code:
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:

Author:  OmenSab [ 2011-01-24 16:44:40 ]
Post subject:  Re: Прошу помощи..

Забыл сказать , если необходимо до готов за энную сумму получить данный скрипт (WMR) :wink:
Несочтите за мажорство , просто реально нужен скрипт ...
Шард ДРВ :roll:

Author:  Makarov [ 2011-01-24 20:12:35 ]
Post subject:  Re: Прошу помощи..

http://yoko.com.ua/help/help.php?lang=rus&a=item&item=Poisoned
http://yoko.com.ua/help/help.php?lang=rus&a=item&item=cast

Author:  OmenSab [ 2011-01-24 21:37:47 ]
Post subject:  Re: Прошу помощи..

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

Author:  Mirage [ 2011-01-24 22:55:58 ]
Post subject:  Re: Прошу помощи..

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

if uo.Poisoned('self') then ...

Author:  OmenSab [ 2011-01-25 09:02:10 ]
Post subject:  Re: Прошу помощи..

Мда.. вот если б в этом еще понимать бы :(

Author:  Mirage [ 2011-01-25 09:24:28 ]
Post subject:  Re: Прошу помощи..

Тогда вам сюда. :wink:

Author:  OmenSab [ 2011-01-25 09:50:13 ]
Post subject:  Re: Прошу помощи..

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)

Author:  Makarov [ 2011-01-25 12:22:11 ]
Post subject:  Re: Прошу помощи..

OmenSab пожалуйста пользуйся Codesweeper для табуляции строк и тегами [cоde][/cоde] при редактировании мессага.

OmenSab wrote:
если вдруг меня пойзонули то лечение бинтами он останавливает и кастует на себя Куре до, и потом опять продолжает хилится

если так, то вставь проверку на пойзон внутрь самого цикла - получится такой алгоритм: если не отравлен - ничего кастовать не будет, а если отравлен - программа будет выполнять цикл кастования пока не вылечит отравление.

Code:
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

Author:  OmenSab [ 2011-01-25 12:38:26 ]
Post subject:  Re: Прошу помощи..

Большущее спасибо! Все разьяснил 8) При возможности попробую скрипт :wink:

Author:  Makarov [ 2011-01-25 12:51:36 ]
Post subject:  Re: Прошу помощи..

Code:
        UO.SetArm('CWeapon')
        uo.disarm() ; если надо разоружиться чтоб юзать бинты
        UO.Exec("bandageself")
        wait(400)
        UO.Arm('CWeapon')

вот этот блок сам по себе кривоват - перс будет постоянно шуршать: разоружился-вооружился, но я не знаю может быть тебе так нужно, в каких условиях это всё использоваться будет. Можно разоружение и вооружение вынести из цикла лечения, т.е. запомнил набор оружия, разоружился, пролечился (проверил на яд), вооружился:

Code:
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

Author:  OmenSab [ 2011-01-25 12:55:12 ]
Post subject:  Re: Прошу помощи..

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

Page 1 of 1 All times are UTC+02:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/