Page 1 of 1

Нужна не большая помощь в скрипте

Posted: 2014-04-28 02:27:32
by lamersz
Помогите люди добрые в чем проблема реколится без остановки после физла

Code: Select all

sub RecallRune()
   Terminate()
   uo.PlayWav(DisturbingSound)
   uo.UseType('0x0F0E','0x0631')
   wait(100)
   repeat
      uo.WaitTargetObject('0x418D0000')
      uo.Exec('warmode 0')
      uo.usetype('0x1F4C')
      wait(1800)
   until not uo.InJournal('spell fizzles')
   repeat
      uo.DeleteJournal()
      uo.WaitTargetObject('Rune')
      wait(100)
      uo.Cast('Mark')
      if uo.InJournal('mana for this spell') then
         ManaUp('Bottle')
         wait(100)
      end if
      wait(3000)
   until not uo.InJournal('The spell fizzles.')
   if uo.Life<uo.STR then
      LifeUp('Bottle')
      wait(100)
   end if
   if CycleScript==1 then
      uo.Exec('exec DangerWait')
   end if
   if CycleScript==0 then
      uo.Exec('exec ExitUO')
   end if
end sub

Re: Нужна не большая помощь в скрипте

Posted: 2014-04-28 02:41:31
by Incorrect User

Code: Select all

   repeat
      uo.WaitTargetObject('0x418D0000')
      uo.Exec('warmode 0')
      uo.usetype('0x1F4C')
      wait(1800)
   until not uo.InJournal('spell fizzles')

Если есть сообщение физла то будет крутить по кругу без конца, так как очистки журнала в цикле нет.

Re: Нужна не большая помощь в скрипте

Posted: 2014-04-28 03:12:36
by lamersz
Incorrect User wrote:

Code: Select all

   repeat
      uo.WaitTargetObject('0x418D0000')
      uo.Exec('warmode 0')
      uo.usetype('0x1F4C')
      wait(1800)
   until not uo.InJournal('spell fizzles')

Если есть сообщение физла то будет крутить по кругу без конца, так как очистки журнала в цикле нет.


спасибо

Re: Нужна не большая помощь в скрипте

Posted: 2014-04-28 04:51:05
by lamersz

Code: Select all

sub ControlOfDanger()
   var Time,danger,Space
   Time=Time()
   Space=' '
   while 1
      uo.DeleteJournal()
      while not uo.InJournal(':')
         wait(100)
      wend
      danger=uo.GetNotoriety(uo.JournalSerial(0))
     
      if PhysicalDanger==1 then
         if uo.InJournal('spirit') then
            uo.TextOpen()
            uo.TextPrint('Был вырублен Ент ' +Space +Time)
            uo.Exec('exec RecallRune')
         end if
         
         if uo.InJournal('attacking you') then
            uo.GetStatus('uo.JournalSerial(0)')
            uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
            uo.TextOpen()
            uo.TextPrint('Вы были атакованы - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
            uo.Exec('exec RecallRune')
         end if
       end if

     
      if SeenDanger==1 then
         if Danger==6 and UO.JournalSerial(0) <> UO.GetSerial() then
            uo.GetStatus('uo.JournalSerial(0)')
            uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
            uo.TextOpen()
            uo.TextPrint('Рядом оказался ПК - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
            uo.Exec('exec RecallRune')
         end if
         
         if Danger==4 and UO.JournalSerial(0) <> UO.GetSerial() then
            uo.GetStatus('uo.JournalSerial(0)')
            uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
            uo.TextOpen()
            uo.TextPrint('Рядом оказался криминал - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
            uo.Exec('exec RecallRune')
         end if
         
         if RecallFromAll==1 then
            if Danger==1 and UO.JournalSerial(0) <> UO.GetSerial() then
               uo.GetStatus('uo.JournalSerial(0)')
               uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
               uo.TextOpen()
               uo.TextPrint('Рядом оказался чар - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
               uo.Exec('exec RecallRune')
            end if
         end if
      end if
   wend
end sub

помогите ще пожалуйста доделать,как сюда добавить рекол если в журнале будет чар кидать из инвиза In Ex Grav ставлю за место attacking you не помогает дело в этом ? while not uo.InJournal(':') как исправить что бы работало и то и другое..или что добавить, и реально еще исправить if RecallFromAll сделать исключение и вписать некоторые ники ? заранее большое спасибо

Re: Нужна не большая помощь в скрипте

Posted: 2014-04-28 06:06:18
by Mirage

Code: Select all

         if uo.InJournal('attacking you|In Por Ylem|An Mani|Vas Flam|In Nox|Des Sanct|In Flam Grav|Ort Grav|In Jux Hur Ylem|Por Corp Wis|An Ex Por|Corp Por|Vas Ort Flam|In Ex Grav|Vas Flam|Kal Vas Xen|Ort Rel|Ort Sanct|Flam Kal Des Ylem|In Vas Por') then
            uo.GetStatus('uo.JournalSerial(0)')
            uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
            uo.TextOpen()
            uo.TextPrint('Вы были атакованы - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
            uo.Exec('exec RecallRune')
         end if

Регистр букв обязательно сверь. Если на сервере маленькие а тут заглавные работать не будет.

Re: Нужна не большая помощь в скрипте

Posted: 2014-04-28 06:37:07
by lamersz
Mirage wrote:

Code: Select all

         if uo.InJournal('attacking you|In Por Ylem|An Mani|Vas Flam|In Nox|Des Sanct|In Flam Grav|Ort Grav|In Jux Hur Ylem|Por Corp Wis|An Ex Por|Corp Por|Vas Ort Flam|In Ex Grav|Vas Flam|Kal Vas Xen|Ort Rel|Ort Sanct|Flam Kal Des Ylem|In Vas Por') then
            uo.GetStatus('uo.JournalSerial(0)')
            uo.SetGlobal('name',uo.GetName(uo.JournalSerial(0)))
            uo.TextOpen()
            uo.TextPrint('Вы были атакованы - '+uo.GetName(uo.JournalSerial(0)) +Space +Time)
            uo.Exec('exec RecallRune')
         end if

Регистр букв обязательно сверь. Если на сервере маленькие а тут заглавные работать не будет.


насчет букв это понятно,ваш вариант не работает...он работает но только когда чар виден а я прошу что бы если человек будет из инвиза кастовать оно работало

Code: Select all

sub AttackEnts()
   uo.DeleteJournal()
   var Enemy='0x00000000'
   repeat
      if uo.InJournal('attacking you') or uo.InJournal('In Ex Grav') or uo.InJournal('In Sanet Ylem') or uo.InJournal('missed you.') or uo.InJournal('An Ex Por') then
         uo.Exec('terminate Lumberjacking')
         Enemy=uo.JournalSerial(uo.InJournal('attacking you')-1)
         ##uo.PlayWav(LumberSound)
         if CastAtAttack==1 then         
            uo.Cast('Magic Arrow',Enemy)
         end if
         uo.DeleteJournal()
         RecallAtAttack()
      end if
      wait(1000)
   until false
end sub

вот эта тема работает если из инвиза касты идут а как там переделать не догоняю